Documentation Index
Fetch the complete documentation index at: https://docs.pipeshub.com/llms.txt
Use this file to discover all available pages before exploring further.
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
| Entity | Description |
|---|---|
| Users | Active Zoom users in the account |
| Meetings | Meeting subject, start/end times, host, alt-hosts, settings |
| Participants | Attendees per meeting |
| Cloud Recording Link | Zoom share URL to the recording (when available) — recording video/audio files are not downloaded |
| AI Companion Transcripts | Timestamped transcripts from Zoom AI Companion |
| Permissions | Host = Owner; alt-hosts, participants, invitees = Read |
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:| Field | Value |
|---|---|
| Select how the app is managed | Admin-managed app |
| Would you like to publish this app on Zoom App Marketplace? | No (keep private) |

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:| Scope | Purpose |
|---|---|
user:read:list_users:admin | List all users in the Zoom account |
report:read:user:admin | Read per-user activity reports (meeting history) |
report:read:list_meeting_participants:admin | List meeting participants via Report API |
meeting:read:meeting:admin | Read meeting details (subject, settings, alt-hosts) |
cloud_recording:read:meeting_transcript:admin | Read AI Companion meeting transcripts |
cloud_recording:read:list_recording_files:admin | List cloud recording files for each meeting |

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?
| Aspect | Zoom Connector | Zoom Toolset |
|---|---|---|
| Purpose | Sync and index Zoom meetings, participants, recordings, and transcripts for search | Enable agents to schedule meetings, update recurring series, fetch transcripts on demand |
| Data Flow | One-way (import data into PipesHub) | Two-way (read and write via API) |
| Zoom app type | Admin-managed (single admin authorization) | User-managed (each user authorizes individually) |
| Scopes | Admin-scoped (*:admin) | User-scoped |
| When to Use | Query/search past meetings, find transcripts | Book meetings, cancel occurrences, pull transcripts in-conversation |
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.



















