preloader

How to Connect Power BI to Zoom Phone

diagram showing Zoom Phone data flowing into Power BI

Zoom Phone has become a mainstay for enterprise voice, but extracting its data for Microsoft Power BI requires a technical understanding of Zoom's REST API architecture and JSON data structures.

Unlike traditional on-premises systems that use SQL exports, Zoom Phone is cloud-native. To build a reliable dashboard, you must navigate API rate limits, OAuth2 authentication, and the transformation of nested JSON records into a usable data model.

Looking for more details on building Power ? Read our guide, Using Power BI for Unified Communications (UC): How to Build it and When to Buy It.

The Architecture of Connecting Zoom to Power BI

The connection lifecycle involves moving data from the Zoom Cloud into the Power BI service. Because Zoom data is highly dynamic, most organizations use an **Import** model, where data is refreshed via API calls or staged in a middle-tier database like SQL Server to preserve historical records.

Setting Up Zoom API Credentials

To pull data into Power BI, you must create a Server-to-Server OAuth App in the Zoom App Marketplace. This is the modern replacement for legacy JWT tokens.

  • Log in to the Zoom App Marketplace.

  • Navigate to Develop > Build App and select Server-to-Server OAuth.

  • In the Scopes section, add phone:read:admin and dashboard_phone:read:admin.

  • Collect your Account ID, Client ID, and Client Secret for the Power BI Web Connector.

Extracting Zoom Phone Metrics

The most valuable data for Power BI resides in the Zoom Phone Dashboard API endpoints. These provide call logs, MOS (Mean Opinion Score) values, and queue metrics.

Primary API Endpoint: https://api.zoom.us/v2/phone/metrics/call_logs

Key Challenge: Rate Limiting. Zoom enforces "Rate Limits" (typically Tier 1 or Tier 2) on API requests. If your Power BI report attempts to pull millions of rows in a single refresh, Zoom may throttle the connection. Implementation of a "paged" request strategy in Power Query is essential.

Zoom Phone Data Schema for Power BI

To ensure your reports are fast and interactive, flatten the Zoom JSON response into a Star Schema.

Zoom Object Property Data Type Analytics Use Case
callee_number / caller_number String Filtering inbound vs. internal calls.
mos (Mean Opinion Score) Decimal Tracking voice quality and packet loss.
call_type Integer Decoding (e.g., PSTN, Extension, Emergency).
result String Analyzing Connected vs. Missed vs. Cancelled calls.

Power Query Transformation (ETL)

The raw data from Zoom arrives as a "List" of "Records." In Power BI, you must:

  • Convert Timestamps: Zoom uses ISO 8601 UTC. You must shift these to your corporate time zone using DateTimeZone.ToLocal.
  • Flatten Results: Use Table.ExpandRecordColumn to extract the nested caller and callee details.
  • Decode Call Types: Create a lookup table to translate Zoom's numeric call types into human-readable labels.

Essential Zoom Phone Measures (DAX)

Average Call Quality (MOS):

Avg Quality = AVERAGE(Zoom_Calls[mos])

Missed Call Rate (%):

Missed Rate = DIVIDE(COUNTROWS(FILTER(Zoom_Calls, [result]="Missed")), COUNTROWS(Zoom_Calls))

Need Easier Zoom Analytics?

Don't waste weeks writing pagination logic and managing OAuth tokens. MetroLink UC Connector Tool automates the Zoom Phone API connection, delivering a clean, relational SQL feed directly to Power BI.

Frequently Asked Questions

Can Power BI connect directly to Zoom Phone?

No native "Zoom Connector" exists in the standard Power BI library. You must use the Web Connector to call Zoom’s REST APIs or use a specialized data bridge like MetroLink.

How do I handle Zoom API pagination?

Zoom returns a next_page_token if there is more data. In Power BI, you must create a recursive M function to loop through these tokens until all records are retrieved.

Can I report on Zoom Phone Quality of Service (QoS)?

Yes. By targeting the /phone/metrics/ endpoints, you can pull Jitter, Latency, and MOS scores into Power BI to visualize network performance by location or device type.

Why is my historical data limited in Zoom?

Zoom's API generally provides a rolling window of data (e.g., 6 months). For long-term year-over-year analysis, organizations use Expo XT UC Analytics for Zoom to warehouse and archive historical records.

CTA for Expo XT Zoom Phone Analytics