Zoom connector setup
Operator·3 minutes to read
This page is the setup half — creating the OAuth app Zoom needs in its own developer console and getting its client id and secret into this deployment. Authorising a connection afterwards is the Authenticate control on the plugin sheet, which is what actually sends you to Zoom.
This connector reads meetings, recordings and transcripts the vendor already holds. A bot does not join a call.
1. Create the OAuth app in the Zoom developer console
-
Open the Zoom App Marketplace and create a General app, kept private — this is your own app, not Botseon's. Private and beta apps need no Zoom review, so bring-your-own-app is fully supported for a single business.
-
Under Redirect URL for OAuth, paste the redirect URL from
docs/connectors/README.md— with the quickstart's defaultBOTSEON_PUBLIC_URL, that is:http://127.0.0.1:3000/api/oauth/zoom/callback -
Save. The console shows you a Client ID and a Client secret — copy both now.
2. Scopes
Request exactly these four granular scopes (this connector is read-only, so it requests no write
scope). The older, coarse meeting:read/recording:read scopes survive as macro scopes;
this connector never requests them, because changing an app's scopes later forces every
connected member to re-consent:
meeting:read:meeting— read one meeting's details.meeting:read:list_meetings— list a member's scheduled and past meetings.cloud_recording:read:list_recording_files— list a meeting's cloud recording files ("Get meeting recordings"), which is also where the transcript file is found.cloud_recording:read:meeting_transcript— read a recording's transcript.
3. Enter the app
One command, with the client secret on standard input — there is no flag that takes it and no
environment variable that holds it (see
docs/connectors/README.md):
printf %s "$CLIENT_SECRET" | botseon oauth-app set \
--org <organisation id> --slug zoom \
--client-id <the client ID from step 1> \
--auth-url https://zoom.us/oauth/authorize \
--token-url https://zoom.us/oauth/token \
--configured-by <your user id>
It stores the secret encrypted and prints the redirect URL from step 1 back, so you can check the
two match. botseon oauth-app show --org <organisation id> --slug zoom says whether an app is
configured and under which client id; nothing prints the secret back.
Never put either value in a bot's description, a memory, or anywhere else a model reads as ordinary text.
4. What this connector does and does not do
This connector is read-only: it has no write tool and raises no approval card.
zoom.list_meetings— a member's scheduled and past meetings.zoom.get_meeting— one meeting's details.zoom.list_recordings— the cloud recordings of a meeting.zoom.get_recording_transcript— a recording's transcript.
Cloud recording — and with it every transcript endpoint — needs a Pro or higher plan with
cloud recording enabled. On a Basic or free account, list_recordings and
get_recording_transcript return nothing rather than erroring; list_meetings and get_meeting
work on any account.
Zoom's EU option is media routing for eligible paid accounts, not data residency: account, user
and diagnostic data still sit in the US, so this connector calls api.zoom.us regardless.
The Zoom tile is in every member's Connect apps on every deployment, as one of the built-in plugins:
there is no setting that shows or hides it, and your organisation's
plugin policy can still block it. Until you enter the app (section 3), a member who adds Zoom has
nothing to sign in with, and the composer's @ menu does not offer it.
If you created the Zoom app before 2026-10-22, add cloud_recording:read:list_recording_files
to it: the recordings list this connector reads is GET /meetings/{meetingId}/recordings, and that
is the scope Zoom documents for it. The earlier cloud_recording:read:list_user_recordings covers
GET /users/{userId}/recordings, which this connector never calls, and can be removed. Sources,
read 2026-10-22:
docs/research/connectors/zoom-catalogue-2026-10-22.md.
Before telling members it works, run the connector-live Zoom case once
(docs/operations/connector-live-setup/zoom.md).
Last verified against build 3f515ac.