Skip to main content

Zoom Custom OAuth App Setup

Configuring a custom Zoom OAuth app for use with Caddi

Most teams should use Caddi's standard Zoom connection, covered in the Zoom Integration Guide — each person connects their own Zoom account and there's nothing to configure. This guide is for organizations that require their own Zoom app registration for security or policy reasons.

A custom Zoom app has to be published to the Zoom App Marketplace to serve your whole organization. Unpublished private apps are capped at 10 installs for account-managed apps and 100 installs for user-managed apps, and can only be installed by members of the Zoom account that created them.

Publishing requires a Zoom security and functional review. If you don't have a specific policy reason to run your own app, the standard Caddi Zoom connection is simpler and does the same job.

Before you start

You'll need:

  • A Zoom account with developer permissions on the Zoom App Marketplace — your Zoom account admin may need to grant the Marketplace developer role

  • Owner or Admin access to your Caddi organization

  • Zoom Phone or Zoom Team Chat add-ons if your loops need phone, SMS, voicemail, or chat features

Step 1: Create the app in the Zoom App Marketplace

The User-managed vs Admin-managed choice is difficult to change later. Pick deliberately.

  1. Open Develop → Build an app, choose General app, and click Create. General app is Zoom's current name for the OAuth app type.

  2. On Basic Information, choose User-managed. This means each person authorizes their own Zoom account and Caddi sees only that person's data — the right choice unless you specifically want account-wide access.

Step 2: Configure OAuth and copy the credentials

Development and production credentials are different pairs, with separate redirect URL configurations. Configuring one and using the other is a common and confusing setup failure.

  1. Still on Basic Information, find OAuth Information.

  2. OAuth Redirect URL — enter https://app.trycaddi.com/oauth-callback.

  3. Add the same URL to the OAuth allow lists.

  4. Copy the Client ID and Client Secret.

Step 3: Select features and scopes

  1. Open the Features or Surface tab and select the products your loops need — Meetings, Webinars, Cloud Recording, Zoom Phone, Team Chat.

  2. Open the Scopes tab and add scopes from the checklist. Zoom uses a granular format like meeting:read:meeting and cloud_recording:read:recording.

  3. For a user-managed app, choose the non-:admin variant of each scope.

  4. Request only what your loops actually need — Zoom's reviewers reject over-broad scope requests and that delays publication.

The Scopes tab is the authoritative list of what your Zoom account can request, so build your final set from the checklist rather than from a document.

Step 4: Test, then publish

  1. Use Local Test to generate an authorization URL and install the app for yourself.

  2. Verify the connection works end to end.

  3. Click Submit for review to publish. Once published, switch to the production Client ID and Secret.

Publishing invalidates any beta authorization URLs you shared with testers, so plan that transition.

Step 5: Configure Zoom in Caddi

This step must be completed by a Caddi organization owner or admin.

  1. In Caddi, open Integrations in the left sidebar, then click the Integration Setup tab at the top of the page. This tab is only visible to organization owners and admins.

  2. Find Zoom in the list and click Configure.

Enter the following values:

  • Client ID — from your Zoom app's App Credentials. Use the production value once the app is published.

  • Client Secret — from the same section, matching the same environment.

  • OAuth Scopes — space-separated list matching what you configured on the Zoom app. Leave blank to use Caddi's defaults. Scopes must also be enabled on the app itself — entering one here that isn't enabled in Zoom will fail.

Click Save Configuration. Caddi validates the credentials immediately — if something is wrong you'll see an error right away, and nothing is stored until validation passes.

Step 6: Connect your account

  1. Go back to the My Connections tab and find Zoom.

  2. Click Connect + and sign in to Zoom.

  3. Click Allow. You can enable or disable optional permissions depending on what your loops need.

  4. You'll be returned to Caddi with the connection active.

How the connection behaves

  • Each user connects their own Zoom account with a user-managed app. Caddi accesses only that user's meetings, recordings, and communications.

  • Access tokens last one hour; refresh tokens last 90 days. Every refresh returns a new refresh token and the previous one goes stale. Caddi handles this, but a connection idle past 90 days needs the user to reauthorize from scratch.

  • Zoom Marketplace pre-approval is on by default for multi-user accounts. Your Zoom admin may need to allow the app before members can install it — separately for publicly listed and unlisted apps.

  • A custom connection replaces the standard one. Members of your organization will only see the option to connect through your app.

  • Zoom Phone and Team Chat capabilities depend on your Zoom add-ons, and on the matching scopes being enabled on the app.

  • Revoking access. Remove the app from your Zoom account, or delete it in the Marketplace developer portal.

Troubleshooting

Only a handful of people can install the app

Unpublished private apps are capped at 10 installs (account-managed) or 100 (user-managed), and only members of the creating Zoom account can install. Publish the app, or use Caddi's standard Zoom connection instead.

Authentication fails with credentials that look right

You're likely mixing development and production credentials. They are separate pairs with separate redirect URL lists — check which set you copied, and confirm the redirect URL is configured for that environment.

A scope error even though the scope is entered in Caddi

Scopes must be enabled on the Zoom app's Scopes tab as well. Add it there, then have users reconnect.

Users can't install because Zoom blocks it

Marketplace pre-approval is enabled on your Zoom account. Your Zoom admin needs to allow the app — check both the listed and unlisted app settings.

Phone or chat loops fail

Either the Zoom Phone / Team Chat add-on isn't on the account, or the corresponding scopes aren't enabled on the app.

Still stuck? Contact Caddi support with the exact error message you're seeing and the time it occurred.

Automation ideas

Law Firms

Meeting → time entry

Caddi reads the meeting duration and participants, drafts a billing narrative, and creates the time entry in Clio, Elite 3E, or Neos.

Voicemail → follow-up task

When a client leaves a Zoom Phone voicemail, Caddi transcribes it and creates the follow-up task against the right matter and attorney.

SMS log → matter communication record

Caddi reads Zoom Phone SMS sessions and logs client communications into your DMS or CRM, keeping a complete record.

RIAs

Client meeting → CRM update

After each advisor call, Caddi pulls the Zoom meeting summary and updates the contact record with topics, next steps, and follow-up dates.

Meeting recording → compliance documentation

Caddi downloads the recording and transcript, generates a compliant summary, and files it to your document management system or compliance archive.

Did this answer your question?