Overview
The Zoom tools let you automate Zoom from your flows: create and update meetings (including recurring series), list a user’s meetings, retrieve meeting reports and participant lists after a meeting ends, and work with cloud recordings. Tools authenticate either with account-level Server-to-Server OAuth credentials or with a connected Zoom user account (user-level OAuth).Key Features
ZOOM_CREATE_MEETING- Create instant, scheduled, or recurring meetings for a host (
user_id: Zoom user ID or email). - Key inputs:
topic(required),type(1: instant, 2: scheduled — default, 3: recurring without fixed time, 8: recurring with fixed time),start_time(ISO 8601),duration(minutes),timezone,agenda,password(max 10 characters),recurrence(required whentypeis 8; JSON string or object),settings(JSON string or object).
- Create instant, scheduled, or recurring meetings for a host (
ZOOM_LIST_MEETINGS- List meetings for a user (
user_id; usemefor the admin account). - Key inputs:
type(scheduled— default,upcoming,live,upcoming_meetings,previous_meetings),page_size(1-300),next_page_token,from/to(YYYY-MM-DD, for past meetings).
- List meetings for a user (
ZOOM_UPDATE_MEETING- Update an existing meeting by
meeting_id(ID or UUID). At least one field must be provided. - Key inputs:
topic,type,start_time,duration,timezone,agenda,password,recurrence,settings(e.g. alternative hosts), andoccurrence_idfor a single occurrence of a recurring meeting.
- Update an existing meeting by
ZOOM_LIST_MEETING_PARTICIPANTS- List participants of a past meeting by
meeting_id. - Key inputs:
page_size(1-300, default 100),next_page_token,dedupe(defaulttrue— collapses duplicate entries by user ID, email, or name).
- List participants of a past meeting by
ZOOM_GET_MEETING_REPORT- Two modes: pass
meeting_idfor a detailed report of one meeting, or omit it to list report summaries for a user and date range. - Key inputs (list mode):
user_id(defaultme),from/to(YYYY-MM-DD),type(past— default,pastJoined,pastOne,live),page_size(1-30),next_page_token.
- Two modes: pass
ZOOM_LIST_CLOUD_RECORDINGS- List cloud recordings for a user, with optional date range and trash filters.
- Key inputs:
user_id(defaultme),from/to(YYYY-MM-DD),page_size(1-300, default 30),next_page_token,trash,trash_type(meeting_recordingsorrecording_file).
ZOOM_GET_CLOUD_RECORDING- Get cloud recording details for a meeting by
meeting_id, includingrecording_files,share_url, andpassword. - Key inputs:
include_fields(optional comma-separated value).
- Get cloud recording details for a meeting by
ZOOM_UPDATE_RECORDING_SETTINGS- Update sharing and viewing settings of a cloud recording by
meeting_id. At least one setting must be provided. - Key inputs:
share_recording(none,internally,publicly),viewer_download,password,on_demand,approval_type, and asettingsJSON object for advanced Zoom fields.
- Update sharing and viewing settings of a cloud recording by
Authentication
Every Zoom tool supports two authentication methods, selected with theauth_type config field:
Server-to-Server OAuth (auth_type: server_to_server, default)
Create a Server-to-Server OAuth app in the Zoom App Marketplace and register the following values as a ZOOM_SERVER_TO_SERVER_OAUTH secret:
- Account ID: Your Zoom account ID.
- Client ID: The OAuth client ID of the app.
- Client Secret: The OAuth client secret of the app.
account_credentials grant, so no user login or token refresh handling is required on your side. These are account-level admin credentials: they can act on any user in the Zoom account.
Connected Zoom account (auth_type: oauth)
Connect a Zoom account from the secrets screen and reference its ZOOM_OAUTH secret in the token config field. The tools then act as that user with Zoom’s granular user-level scopes — they can only reach meetings and recordings the connected user owns, which is the recommended method when flows should not have account-wide admin access.
Connecting Zoom requires an organization-registered Zoom OAuth app (Organization settings → OAuth apps, organization OWNER only): register your own Zoom OAuth app’s client ID/secret and set the per-organization callback URL shown there in the Zoom app’s redirect allow list. Tokens are refreshed automatically before flow runs.
With a connected account, use me as the user_id (the tools operate on the connected user), and note that ZOOM_GET_MEETING_REPORT only supports single-meeting details (meeting_id mode, served from the past-meetings API); the date-range report listing is admin-only in Zoom’s API and needs Server-to-Server credentials.
Note: Treat credentials as sensitive information and never commit them to public repositories.
Example: Create a Scheduled Meeting
Example: Create a Meeting as the Connected User (User OAuth)
Example: Summarize a Past Meeting (Report + Participants)
Notes
- With Server-to-Server OAuth, the host specified in
user_idmust belong to the same Zoom account as the app, andmerefers to the admin account. With a connected account (user OAuth), useme— the tools act as the connected user and Zoom rejects operations on other users’ resources. - To create a recurring meeting series, set
typeto8and supply arecurrenceobject (e.g.{ "type": 2, "repeat_interval": 1, "weekly_days": "2,4", "end_times": 10 });recurrenceis ignored for other meeting types. recurrenceandsettingsinputs accept either a JSON string or a structured object matching Zoom’s API objects.ZOOM_LIST_MEETING_PARTICIPANTSandZOOM_GET_MEETING_REPORTwork on past meetings; run them after the meeting has ended.- List-style tools are paginated: pass the returned
next_page_tokenback in to fetch the next page.page_sizeis capped at 300 (30 for the meeting report list mode). ZOOM_UPDATE_MEETINGandZOOM_UPDATE_RECORDING_SETTINGSfail if no field to update is provided.- Access tokens issued via the
account_credentialsgrant expire after 1 hour; the tools cache and refresh them automatically.