Overview
Zoom is the video conferencing and online meeting platform used by teams for calls, webinars, and collaborative sessions. The Zoom connector brings your organizationโs meeting history โ who attended, recording links, and AI Companion transcripts โ into PipesHub, so everything said in a meeting is searchable alongside your other knowledge sources.What Gets Synced
Configuration Guide
Prerequisite: Admin-managed app + admin access
Step 1: Create a Zoom General App
Zoom replaced the standalone โOAuth Appโ type with the General App type, which supports the same 3-legged OAuth flow.- Sign in to the Zoom App Marketplace with an account that has admin privileges.
- Click Develop in the top-right corner, then Build App.
- Select General App and click Create.

Step 2: Choose App Type โ Admin-managed
In the app creation dialog, choose:
Step 3: Get the Redirect URL from PipesHub
Before filling in the Zoom form, copy the Redirect URL from PipesHub so the values match exactly.- In PipesHub, go to Workspace Settings โ Connectors, find Zoom, and click + Setup for a new instance.
- The connector panel opens as a right-side drawer. On the Authenticate Instance tab, copy the Redirect URL.

Step 4: Configure OAuth information in Zoom
In the Zoom app builder, open Basic Information and scroll to OAuth Information:- Paste the PipesHub Redirect URL into the OAuth Redirect URL field.
- Add the same URL to the OAuth Allow List below.
- Click Save.

Step 5: Add required scopes
Open the Scopes section in the app builder and add the following admin-scoped scopes:
All scopes are admin-scoped (
*:admin). Only Admin-managed apps can request these; User-managed apps cannot. If you chose User-managed in Step 2, you will not see these scopes in the list โ delete the app and create a new Admin-managed one.Step 6: Copy Client ID and Client Secret
- Go to Basic Information โ App Credentials in the Zoom app builder.
- Copy:
- Client ID โ used as Client ID in PipesHub.
- Client Secret โ used as Client Secret in PipesHub.

Step 7: Authenticate Instance tab โ enter credentials
Return to the PipesHub connector drawer. On the Authenticate Instance tab:- Confirm the Redirect URL matches the OAuth Redirect URL you saved in Zoom in Step 4.
- Enter:
- Client ID โ from Step 6
- Client Secret โ from Step 6
- Click Next to move to the Authorize tab.

Step 8: Authorize tab โ complete the OAuth flow
On the Authorize tab, all the OAuth authorization work happens. The tab shows an Authenticate button to kick off the OAuth handshake.
- Click Authenticate to start the OAuth flow. A popup opens to Zoomโs authorization page.
- Sign in as a Zoom admin (Admin-managed apps can only be authorized by admins).
- Review the requested scopes and click Allow.

- The popup closes and returns you to PipesHub. The connector tile shows an Authenticated badge with a Reauthenticate option.
- Click Next to move to the Configure Records tab.
Step 9: Configure Records tab โ sync settings and indexing
On the Configure Records tab, control how the connector syncs and what gets indexed. Sync settings โ configure your synchronization preferences first:- Sync Strategy โ
ScheduledorManual. - Sync Interval โ how often to sync (default: 60 minutes).

Scheduled sync runs automatically at the specified intervals. Manual sync requires you to trigger synchronization on-demand.

- Index Meeting Transcripts (default: enabled) โ include AI Companion meeting transcripts in search. Disable if you want to sync meetings without indexing transcript content.

Supported Features
The Zoom connector syncs the following from your Zoom account:- Users โ all active users in the account (used for host identity)
- Meetings โ details, subject, timing, alt-hosts, settings
- Participants โ attendance per meeting via the Report API
- Cloud Recording Link โ Zoom share URL to the recording (when available); recording files are not downloaded
- AI Companion Transcripts โ timestamped transcripts streamed on demand
- Permissions โ host = Owner; alt-hosts, participants, invitees = Read
Useful Links
- Zoom App Marketplace: marketplace.zoom.us
- Zoom OAuth (3-legged) docs: developers.zoom.us/docs/integrations/oauth/
- Zoom scopes reference: developers.zoom.us/docs/api/rest/using-zoom-apis/#scopes
- Zoom Report API: developers.zoom.us/docs/api/reports/
Troubleshooting
Troubleshooting
Troubleshooting
Common issues
Invalid client credentials error:- Verify Client ID and Client Secret are correct โ no extra spaces
- Check that the OAuth app is still active in the Zoom Marketplace
- Regenerate the secret if necessary and update PipesHub
- The Redirect URL in PipesHub must match the OAuth Redirect URL saved in Zoom exactly โ protocol, host, path, and trailing slash
- Also ensure the same URL is on the OAuth Allow List in Zoom
- If admin scopes are not shown when authorizing, the app was likely created as User-managed instead of Admin-managed. Delete the app and create a new Admin-managed one.
- Confirm all six scopes are added in the Scopes section of the app builder before authorizing.
- Only a Zoom admin can authorize an Admin-managed app. Sign out and sign back in as an admin, then retry Authenticate on the Authorize tab.
- Confirm the authorizing admin can see the accountโs users (e.g., via Zoom Admin โ User Management)
- If users show up but no meetings, check that Report API access is enabled for your plan โ Report APIs require Pro or higher
- Initial sync only covers the last 180 days; older meetings are intentionally excluded
- Only AI Companion transcripts are indexed. Meetings without AI Companion enabled will not have a transcript.
- Verify
cloud_recording:read:meeting_transcript:adminis granted - If transcripts fail with Zoom error
3322, the meeting simply has no transcript โ this is expected, not an error
- The Report API
GET /v2/report/meetings/{id}/participantsis a Heavy-rate endpoint (~10โ20 req/s). For accounts with thousands of meetings, the initial 180-day backfill can take an hour or more. - The connector processes meetings with a concurrency cap to stay under rate limits โ this is intentional.
Data Sync Behavior
Synchronization Process
Synchronization Process
Sync overview
Every sync runs in this order:- Fetch active users โ
GET /v2/users?status=activelists users in the account. - Create user groups โ one
USER_GROUPper host; permissions anchored to the host email. - Per-user meeting history โ for each user,
GET /v2/report/users/{userId}/meetingsreturns meetings in 30-day chunks, driven by a per-user checkpoint (zoom_report_last_sync/{user_id}). - Per-meeting enrichment โ for each meeting:
GET /v2/meetings/{meetingId}โ meeting detailGET /v2/meetings/{meetingId}/recordingsโ recording share URL only (silently skipped if the meeting has no recording)GET /v2/report/meetings/{meetingId}/participantsโ attendee listGET /v2/meetings/{meetingId}/transcriptโ AI Companion transcript (if enabled)
- Build permissions โ host โ Owner; alt-hosts / participants / invitees โ Read.
- Persist records โ meeting records and permissions are written per chunk.
Full sync vs incremental sync
- First sync runs from
max(user.created_at, today - 180 days)forward. - Subsequent syncs start from the per-user checkpoint minus one day (safety overlap) and advance to today, in 30-day chunks.
- Lookback cap: 180 days. Older meetings are never synced.
- Chunk size: 30 days per API call (Zoom Report API constraint).
Rate-limit awareness
GET /v2/report/meetings/{id}/participantsis Zoomโs rate-limit bottleneck (Heavy-rate tier, ~10โ20 req/s).- The connector processes meetings with a concurrency cap to stay safely under the limit.
- Throttled responses trigger exponential backoff; long-running syncs will continue across scheduled intervals.
Transcripts
- Transcripts are not pre-cached โ they are fetched live when the record is opened in PipesHub.
- Zoom error
3322means the meeting has no transcript (expected for meetings without AI Companion). - Zoom errors
3001/3301mean the meeting/transcript expired โ silently skipped.
FAQ
What's the difference between Zoom Connector and Zoom Toolset?
What's the difference between Zoom Connector and Zoom Toolset?
Example: Use Zoom Connector to search past meeting transcripts across your organization. Use Zoom Toolset to let agents schedule meetings, reschedule a specific occurrence, or pull a transcript on demand.
Why does the connector need an Admin-managed app with admin scopes?
Why does the connector need an Admin-managed app with admin scopes?
The connector syncs meeting history for every user in the account, not just the authorizing user. That requires admin-scoped APIs โ specifically:
- List all users in the account โ
user:read:list_users:admin - Read meeting history per user via the Report API โ
report:read:user:admin - Fetch meeting participants โ
report:read:list_meeting_participants:admin - Meeting details and recording share URLs across the account โ
meeting:read:meeting:admin,cloud_recording:read:list_recording_files:admin,cloud_recording:read:meeting_transcript:admin
*:admin) are only available to Admin-managed apps. A User-managed app cannot request them and would only return data the authorizing user personally hosted โ which defeats the purpose of an organization-wide knowledge connector. Admin-managed also means a single authorization covers the entire account, so users donโt need to individually connect their Zoom to PipesHub.Ready to Get Started?
Connect your Zoom account to PipesHub in just a few minutes. Follow the step-by-step guide above to enable organization-wide meeting and transcript search.
