Unified.to
All articles

How to Connect Zoom and Zoom Phone


July 2, 2026

This guide walks you through creating a Zoom OAuth app, configuring the right permissions, and connecting your Zoom account. You will need a Zoom account with admin access for some features (user directory, call logs, and recordings).


What you need

  • Zoom Marketplace developer account
  • Zoom account admin access (required for directory, group, and Zoom Phone admin scopes)
  • A Zoom Phone license if you plan to use the Zoom Phone integration
  • Your Unified workspace (to store credentials and start the connection)

Note: Zoom and Zoom Phone are separate integrations in Unified. You can use one OAuth app for both, as long as that app includes the scopes for every feature you need.


Step 1: Create a Zoom OAuth app

  1. Sign in to the Zoom App Marketplace.
  2. Go to Develop → Build App.
  3. Choose General App and click Create.
  4. Enter an app name and basic details.

On the Basic Information page:

  1. Open App Credentials and note your Development Client ID and Client Secret.
    • Use development credentials while the app is still in testing.
    • After the app is published, switch to Production credentials.
  2. Under OAuth Information, configure:
    • OAuth Redirect URL — use the exact URL for your Unified region (see below).
    • OAuth Allow List — add the same URL (or the base domain if Zoom accepts it).
  3. If Strict Mode URL is enabled, the redirect URL must match character-for-character.

OAuth redirect URL by region

Add the redirect URL that matches where your Unified workspace is hosted:

RegionRedirect URL
UShttps://api.unified.to/oauth/code
EUhttps://api-eu.unified.to/oauth/code
AUhttps://api-au.unified.to/oauth/code

Important: Copy the URL exactly. A trailing slash, wrong subdomain, or http instead of https will cause the connection to fail.


Step 2: Add the required scopes (permissions)

In your Zoom app, open the Scopes page and add the permissions below. Only add scopes for the features you actually use.

For each scope, Zoom may ask you to describe why your app needs it. Keep the explanation tied to your use case (e.g. 'Read call history for CRM logging' or 'List meetings for calendar sync').

Required for sign-in (Zoom and Zoom Phone)

Add these for any connection:

  • user_profile
  • user_info:read
  • user:read

Zoom — users and groups

If you sync users or groups:

FeatureScopes to add
Read usersuser:read:user:adminuser:read:list_users:admin
Write usersuser:write:admin
Read groupsgroup:read:admingroup:read:list_groups:admin
Write groupsgroup:write:admin

Zoom — meetings and webinars

If you work with meetings or webinars:

FeatureScopes to add
Read meetingsmeeting:read:list_meetings
Create / update / delete meetingsmeeting:write:meetingmeeting:update:meetingmeeting:delete:meeting
Read webinarswebinar:read:list_webinars
Manage webinarswebinar:write:webinarwebinar:update:webinarwebinar:delete:webinarwebinar:write:registrantwebinar:update:registrantwebinar:delete:registrantwebinar:write:panelistwebinar:update:panelistwebinar:delete:panelist

Zoom Phone — calls, recordings, and users

If you use the Zoom Phone integration:

FeatureScopes to add
Read Zoom Phone usersphone:read:user:admin
Read call historyphone:read:call_log:admin
Read call recordingsphone:read:recording:admin

Note: Zoom Phone scopes require a Zoom Phone license on the account you connect.


Step 3: Add credentials in Unified

  1. In the Unified dashboard, open Integrations.
  2. Enable Zoom and/or Zoom Phone.
  3. Enter the Client ID and Client Secret from your Zoom app (development credentials while testing; production credentials after publish).
  4. Save the integration.

The Client ID and Client Secret in Unified must match the values shown in the Zoom Marketplace for the same app and environment (Development vs Production).


Step 4: Connect a Zoom account

  1. Start a new connection for Zoom or Zoom Phone (from the dashboard or your app's auth flow).
  2. You will be redirected to Zoom to sign in and approve the requested permissions.
  3. After approval, you are redirected back and the connection is created.

Tip: The Zoom user who authorizes the connection should be an account admin if you use admin-level scopes (users, groups, call logs, recordings).


Testing vs published apps

Zoom apps start in development / testing mode. This affects who can connect.

While the app is in testing

  • Only Zoom accounts added as authorized testers (or users on the same Zoom account as the app owner) can complete OAuth.
  • Use the Development Client ID and Client Secret in Unified.
  • For each customer Zoom account that needs to connect before the app is published, that account must be added as a tester in the Zoom Marketplace:
    1. Open your app in the Zoom Marketplace Developer portal.
    2. Find Add app for testing / Local Test / Authorized testers (wording may vary).
    3. Add the customer's Zoom email or account.

If a customer sees an error that the app is not authorized, they are usually not on the tester list yet.

When the app is published

  • Any Zoom customer can connect without being added as a tester.
  • Switch Unified to the Production Client ID and Client Secret from the Zoom app.
  • Existing connections may need to be re-authorized after you switch credentials or publish.

Note: Publishing goes through Zoom's review process. Zoom may require security review for certain scopes and can take several business days. Plan ahead if you need many customers to connect on a fixed timeline.


Checklist before connecting

Use this quick checklist if a connection fails:

  • Client ID and Client Secret in Unified match the Zoom app (same environment: Development or Production).
  • OAuth Redirect URL in Zoom is exactly https://api.unified.to/oauth/code (or the EU/AU URL for your region).
  • The same URL is on the OAuth Allow List.
  • All scopes your product needs are added in the Zoom app.
  • If the app is still in testing, the connecting user's Zoom account is an authorized tester.
  • The authorizing user has admin rights when using admin scopes.
  • For Zoom Phone: the account has Zoom Phone enabled.

Troubleshooting

'Invalid redirect URI' or redirect errors

The redirect URL in Zoom does not match what Unified sends. Confirm the exact URL for your region and that Strict Mode is not blocking a valid redirect.

'App not authorized' or customer cannot sign in

The app is likely still in testing and the customer's Zoom account is not an authorized tester. Add them in the Zoom Marketplace, or publish the app.

Connection works but data is missing

Usually a missing scope. Compare the scopes in your Zoom app with the tables in Step 2 and add any that apply to the features you use.

Zoom Phone returns no calls or recordings

  • Confirm phone:read:call_log:admin and/or phone:read:recording:admin are added.
  • Confirm the connected account has Zoom Phone and admin access to phone data.

After publishing, connections stopped working

Update Unified with the Production Client ID and Client Secret, then ask affected users to connect again.


Unified also supports Zoom Calendar as a separate integration with its own calendar-specific scopes. If you only need Zoom meetings, webinars, users, and Zoom Phone, follow this guide. If you need Zoom's native calendar product, enable the Zoom Calendar integration and add its scopes in the same (or a separate) Zoom OAuth app.

For Zoom developer documentation, see developers.zoom.us.

All articles