Reference · Tools
Zoom
Manage meetings, meeting registrants, and webinars via the Zoom API v2
The Zoom node manages meetings, meeting registrants and webinars — creating, retrieving, updating, deleting and listing them through API v2. A typical build is creating a meeting when a booking is confirmed and registering the attendee automatically.
- Node type
- Action
- Parameters
- 39
- Outputs
- Output, Error
- Credentials
- Zoom OAuth2
Zoom
Manage Zoom meetings, registrants, and webinars
Overview
Zoom is a video conferencing platform. This tool provides operations for managing meetings (create, get, get many, update, delete), meeting registrants (create, get many, update status), and webinars (create, get, get many, update, delete) via the Zoom REST API v2. Supports OAuth2 authentication with automatic token refresh.
Category: Communication
Tool Name: zoom
Version: 1
Appearance: Icon: si-zoom | Color: #2D8CFF
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Zoom OAuth2 credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Meeting | meeting |
| Meeting Registrant | meetingRegistrant |
| Webinar | webinar |
Operations
| Operation | Value | Description |
|---|---|---|
| Create | create | Create a meeting |
| Delete | delete | Delete a meeting |
| Get | get | Retrieve a meeting |
| Get Many | getAll | Retrieve many meetings |
| Update | update | Update a meeting |
Meeting Registrant offers create, getAll and update (which changes the registrant’s status). Webinar offers the same five values as Meeting, against webinars.
Parameters
Meeting: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Topic | string | No | — | Topic of the meeting. Supports expressions. |
| Additional Fields | collection | No | {} | Optional meeting settings. |
| — Agenda | string | No | — | Meeting agenda. |
| — Duration | number | No | 0 | Meeting duration in minutes. |
| — Password | string | No | — | Password to join the meeting, maximum 10 characters. |
| — Schedule For | string | No | — | Schedule meeting for someone else from your account. Provide their email ID. |
| — Settings | collection | No | {} | In-meeting behaviour. |
| — — Audio | options | No | both | How participants can join the audio portion of the meeting. |
Options: both (telephony and VoIP), telephony, voip | ||||
| — — Alternative Hosts | string | No | — | Alternative hosts email IDs (comma-separated). |
| — — Auto Recording | options | No | none | Automatic recording setting. |
Options: local, cloud, none (disabled) | ||||
| — — Host Meeting in China | boolean | No | false | Whether to host the meeting in China. |
| — — Host Meeting in India | boolean | No | false | Whether to host the meeting in India. |
| — — Host Video | boolean | No | false | Whether to start video when host joins the meeting. |
| — — Join Before Host | boolean | No | false | Whether to allow participants to join before host starts the meeting. |
| — — Mute Upon Entry | boolean | No | false | Whether to mute participants upon entry. |
| — — Participant Video | boolean | No | false | Whether to start video when participant joins the meeting. |
| — — Registration Type | options | No | 1 | Registration type. Used for recurring meetings with fixed time only. |
Options: 1 (register once, attend any occurrence), 2 (register for each occurrence), 3 (register once, choose occurrences) | ||||
| — — Watermark | boolean | No | false | Whether to add a watermark when viewing shared screen. |
| — Start Time | dateTime | No | — | Meeting start time (ISO 8601). Used for scheduled or recurring meetings with fixed time. |
| — Timezone | string | No | — | IANA timezone identifier (e.g. America/New_York, Europe/London). Find your timezone at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones |
| — Type | options | No | 2 | Meeting type. |
Options: 1 (instant meeting), 2 (scheduled meeting), 3 (recurring meeting with no fixed time), 8 (recurring meeting with fixed time) |
Meeting: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Meeting ID | string | Yes | — | The meeting ID. Supports expressions. |
| Additional Fields | collection | No | {} | Optional lookup settings. |
| — Occurrence ID | string | No | — | To view meeting details of a particular occurrence of a recurring meeting. |
| — Show Previous Occurrences | boolean | No | false | Whether to show details of all previous occurrences of a recurring meeting. |
Meeting: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 30 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrows the meeting list. |
| — Type | options | No | live | Meeting type filter. |
Options: scheduled (all valid past, live and upcoming scheduled meetings), live (all ongoing meetings), upcoming (all upcoming meetings including live ones) |
Meeting: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Meeting ID | string | Yes | — | The meeting ID. Supports expressions. |
| Update Fields | collection | No | {} | Values to change on the meeting. |
| — Agenda | string | No | — | Meeting agenda. |
| — Duration | number | No | 0 | Meeting duration in minutes. |
| — Password | string | No | — | Password to join the meeting, maximum 10 characters. |
| — Schedule For | string | No | — | Schedule meeting for someone else. Provide their email ID. |
| — Settings | collection | No | {} | In-meeting behaviour. |
| — — Audio | options | No | both | How participants can join the audio portion of the meeting. |
Options: both (telephony and VoIP), telephony, voip | ||||
| — — Alternative Hosts | string | No | — | Alternative hosts email IDs (comma-separated). |
| — — Auto Recording | options | No | none | Automatic recording setting. |
Options: local, cloud, none (disabled) | ||||
| — — Host Meeting in China | boolean | No | false | Whether to host the meeting in China. |
| — — Host Meeting in India | boolean | No | false | Whether to host the meeting in India. |
| — — Host Video | boolean | No | false | Whether to start video when host joins the meeting. |
| — — Join Before Host | boolean | No | false | Whether to allow participants to join before host starts the meeting. |
| — — Mute Upon Entry | boolean | No | false | Whether to mute participants upon entry. |
| — — Participant Video | boolean | No | false | Whether to start video when participant joins the meeting. |
| — — Registration Type | options | No | 1 | Registration type. Used for recurring meetings with fixed time only. |
Options: 1 (register once, attend any occurrence), 2 (register for each occurrence), 3 (register once, choose occurrences) | ||||
| — — Watermark | boolean | No | false | Whether to add a watermark when viewing shared screen. |
| — Start Time | dateTime | No | — | Meeting start time (ISO 8601). |
| — Timezone | string | No | — | IANA timezone identifier (e.g. America/New_York). |
| — Topic | string | No | — | Meeting topic. |
| — Type | options | No | 2 | Meeting type. |
Options: 1 (instant meeting), 2 (scheduled meeting), 3 (recurring meeting with no fixed time), 8 (recurring meeting with fixed time) |
Meeting: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Meeting ID | string | Yes | — | The meeting ID. Supports expressions. |
| Additional Fields | collection | No | {} | Optional deletion settings. |
| — Occurrence ID | string | No | — | Meeting occurrence ID. |
| — Schedule Reminder | boolean | No | false | Whether to notify hosts and alternative hosts about meeting cancellation via email. |
Meeting Registrant: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Meeting ID | string | Yes | — | The meeting ID. Supports expressions. |
string | Yes | — | Valid email address of the registrant. Supports expressions. | |
| First Name | string | Yes | — | First name of the registrant. Supports expressions. |
| Additional Fields | collection | No | {} | Optional registrant details. |
| — Address | string | No | — | Address of registrant. |
| — City | string | No | — | City of registrant. |
| — Comments | string | No | — | Allows registrants to provide any questions they have. |
| — Country | string | No | — | Country of registrant. |
| — Job Title | string | No | — | Job title of registrant. |
| — Last Name | string | No | — | Last name of registrant. |
| — Occurrence IDs | string | No | — | Occurrence IDs, separated by comma. |
| — Organization | string | No | — | Organization of registrant. |
| — Phone Number | string | No | — | Phone number of registrant. |
| — Purchasing Time Frame | options | No | — | Purchasing time frame. |
Options: Within a month, 1-3 months, 4-6 months, More than 6 months, No timeframe | ||||
| — Role in Purchase Process | options | No | — | Role in purchase process. |
Options: Decision Maker, Evaluator/Recommender, Influencer, Not Involved | ||||
| — State | string | No | — | State of registrant. |
| — Zip Code | string | No | — | Zip code of registrant. |
Meeting Registrant: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Meeting ID | string | Yes | — | The meeting ID. Supports expressions. |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 30 | Max number of results to return. (shown when Return All is false) |
| Additional Fields | collection | No | {} | Narrows the registrant list. |
| — Occurrence ID | string | No | — | Meeting occurrence ID. |
| — Status | options | No | approved | Registrant status filter. |
Options: pending, approved, denied |
Meeting Registrant: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Meeting ID | string | Yes | — | The meeting ID. Supports expressions. |
| Action | options | Yes | — | Action to perform on the registrant status. |
Options: approve, cancel, deny | ||||
| Additional Fields | collection | No | {} | Optional targeting for recurring meetings. |
| — Occurrence ID | string | No | — | Meeting occurrence ID. |
Webinar: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | User ID or email address. Supports expressions. |
| Additional Fields | collection | No | {} | Webinar settings. |
| — Agenda | string | No | — | Webinar agenda. |
| — Alternative Hosts | string | No | — | Alternative hosts email IDs (comma-separated). |
| — Approval Type | options | No | 2 | Registration approval type. |
Options: 0 (automatically approve), 1 (manually approve), 2 (no registration required) | ||||
| — Audio | options | No | both | How participants can join the audio portion. |
Options: both (telephony and VoIP), telephony, voip | ||||
| — Auto Recording | options | No | none | Automatic recording setting. |
Options: local, cloud, none (disabled) | ||||
| — Duration | number | No | 0 | Webinar duration in minutes. |
| — Host Video | boolean | No | false | Whether to start video when host joins the webinar. |
| — Panelists Video | boolean | No | false | Whether to start video when panelists join the webinar. |
| — Password | string | No | — | Password to join the webinar, maximum 10 characters. |
| — Practice Session | boolean | No | false | Whether to enable practice session. |
| — Registration Type | options | No | 1 | Registration type. Used for recurring webinars with fixed time only. |
Options: 1 (register once, attend any occurrence), 2 (register for each occurrence), 3 (register once, choose occurrences) | ||||
| — Start Time | dateTime | No | — | Webinar start time (ISO 8601). |
| — Timezone | string | No | — | IANA timezone identifier (e.g. America/New_York). |
| — Topic | string | No | — | Webinar topic. |
| — Type | options | No | 5 | Webinar type. |
Options: 5 (webinar), 6 (recurring webinar with no fixed time), 9 (recurring webinar with fixed time) |
Webinar: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Webinar ID | string | Yes | — | The webinar ID. Supports expressions. |
| Additional Fields | collection | No | {} | Optional lookup settings. |
| — Occurrence ID | string | No | — | To view webinar details of a particular occurrence of a recurring webinar. |
| — Show Previous Occurrences | boolean | No | false | Whether to show details of all previous occurrences of a recurring webinar. |
Webinar: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | User ID or email address. Supports expressions. |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 30 | Max number of results to return. (shown when Return All is false) |
Webinar: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Webinar ID | string | Yes | — | The webinar ID. Supports expressions. |
| Additional Fields | collection | No | {} | Values to change on the webinar. |
| — Agenda | string | No | — | Webinar agenda. |
| — Alternative Hosts | string | No | — | Alternative hosts email IDs (comma-separated). |
| — Approval Type | options | No | 2 | Registration approval type. |
Options: 0 (automatically approve), 1 (manually approve), 2 (no registration required) | ||||
| — Audio | options | No | both | How participants can join the audio portion. |
Options: both (telephony and VoIP), telephony, voip | ||||
| — Auto Recording | options | No | none | Automatic recording setting. |
Options: local, cloud, none (disabled) | ||||
| — Duration | number | No | 0 | Webinar duration in minutes. |
| — Host Video | boolean | No | false | Whether to start video when host joins the webinar. |
| — Occurrence ID | string | No | — | Webinar occurrence ID. |
| — Panelists Video | boolean | No | false | Whether to start video when panelists join the webinar. |
| — Password | string | No | — | Password to join the webinar, maximum 10 characters. |
| — Practice Session | boolean | No | false | Whether to enable practice session. |
| — Registration Type | options | No | 1 | Registration type. Used for recurring webinars with fixed time only. |
Options: 1 (register once, attend any occurrence), 2 (register for each occurrence), 3 (register once, choose occurrences) | ||||
| — Start Time | dateTime | No | — | Webinar start time (ISO 8601). |
| — Timezone | string | No | — | IANA timezone identifier (e.g. America/New_York). |
| — Topic | string | No | — | Webinar topic. |
| — Type | options | No | 5 | Webinar type. |
Options: 5 (webinar), 6 (recurring webinar with no fixed time), 9 (recurring webinar with fixed time) |
Webinar: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Webinar ID | string | Yes | — | The webinar ID. Supports expressions. |
| Additional Fields | collection | No | {} | Optional targeting for recurring webinars. |
| — Occurrence ID | string | No | — | Webinar occurrence ID. |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Zoom Account | credential | No | — | Connect your Zoom account via OAuth2. |
| Max Concurrency | number | No | 5 | Maximum number of items to process concurrently. Keep low due to Zoom rate limits (free plan: 1 req/sec). |
Output Data
The Zoom API response is merged onto the top level of the item JSON; anything already on the item passes through, and binary data is forwarded unchanged.
- One output item per input item for
create,getandupdateon every resource — the item carries the meeting, registrant or webinar object Zoom returned. getAllfans out: Meeting → one item per meeting, Meeting Registrant → one item per registrant, Webinar → one item per webinar. With Return All on, the node walks Zoom’s page numbers until the last page.deletereturns no body, so the item carriessuccess: true.- Endpoints that answer 204 with an empty body leave the item unchanged apart from what was already on it.
Usage Examples
- Create a scheduled Zoom meeting
- List all upcoming meetings
- Delete a meeting by ID
- Register someone for a meeting
- Create a webinar for a user
- Update meeting settings
Example Configuration
Create a scheduled meeting:
{
"type": "zoom",
"parameters": {
"resource": "meeting",
"operation": "create",
"topic": "Weekly Team Standup",
"additionalFields": {
"agenda": "Review progress and blockers",
"duration": 60,
"password": "secure123",
"startTime": "2026-01-15T10:00:00Z",
"timeZone": "America/New_York",
"type": 2,
"settings": {
"audio": "both",
"hostVideo": true,
"participantVideo": false,
"joinBeforeHost": true,
"muteUponEntry": true,
"autoRecording": "cloud"
}
}
}
}
Read a meeting, including its past occurrences:
{
"type": "zoom",
"parameters": {
"resource": "meeting",
"operation": "get",
"meetingId": "123456789",
"additionalFields": {
"showPreviousOccurrences": true
}
}
}
List live meetings — one output item per meeting:
{
"type": "zoom",
"parameters": {
"resource": "meeting",
"operation": "getAll",
"returnAll": false,
"limit": 50,
"filters": {
"type": "live"
}
}
}
Update a meeting:
{
"type": "zoom",
"parameters": {
"resource": "meeting",
"operation": "update",
"meetingId": "123456789",
"updateFields": {
"topic": "Updated Meeting Topic",
"duration": 90,
"agenda": "Updated agenda with new items",
"settings": {
"hostVideo": true,
"participantVideo": true,
"muteUponEntry": false
}
}
}
}
Cancel a meeting and notify the hosts:
{
"type": "zoom",
"parameters": {
"resource": "meeting",
"operation": "delete",
"meetingId": "123456789",
"additionalFields": {
"scheduleForReminder": true
}
}
}
Register an attendee, taking their details from the item:
{
"type": "zoom",
"parameters": {
"resource": "meetingRegistrant",
"operation": "create",
"meetingId": "123456789",
"email": "{{ $json.email }}",
"firstName": "{{ $json.firstName }}",
"additionalFields": {
"lastName": "{{ $json.lastName }}",
"org": "Acme Corp",
"jobTitle": "Software Engineer",
"phone": "+1-555-123-4567",
"city": "New York",
"state": "NY",
"zip": "10001",
"country": "US",
"purchasingTimeFrame": "Within a month",
"roleInPurchaseProcess": "Decision Maker",
"comments": "Looking forward to the session"
}
}
}
List approved registrants:
{
"type": "zoom",
"parameters": {
"resource": "meetingRegistrant",
"operation": "getAll",
"meetingId": "123456789",
"returnAll": true,
"additionalFields": {
"status": "approved"
}
}
}
Approve a pending registrant:
{
"type": "zoom",
"parameters": {
"resource": "meetingRegistrant",
"operation": "update",
"meetingId": "123456789",
"action": "approve",
"additionalFields": {
"occurrenceId": "1234567890"
}
}
}
Create a webinar:
{
"type": "zoom",
"parameters": {
"resource": "webinar",
"operation": "create",
"userId": "user@company.com",
"additionalFields": {
"topic": "Product Launch Webinar",
"agenda": "Introducing our new product features",
"duration": 120,
"startTime": "2026-01-20T14:00:00Z",
"timeZone": "America/Los_Angeles",
"type": 5,
"password": "webinar123",
"registrationType": 1,
"approvalType": 2,
"audio": "both",
"autoRecording": "cloud",
"hostVideo": true,
"panelistsVideo": true,
"practiceSession": true,
"alternativeHosts": "backup@company.com"
}
}
}
Read a webinar:
{
"type": "zoom",
"parameters": {
"resource": "webinar",
"operation": "get",
"webinarId": "987654321",
"additionalFields": {
"showPreviousOccurrences": false
}
}
}
List a user’s webinars:
{
"type": "zoom",
"parameters": {
"resource": "webinar",
"operation": "getAll",
"userId": "user@company.com",
"returnAll": false,
"limit": 25
}
}
Update a webinar:
{
"type": "zoom",
"parameters": {
"resource": "webinar",
"operation": "update",
"webinarId": "987654321",
"additionalFields": {
"topic": "Updated Webinar Topic",
"agenda": "Updated agenda with latest information",
"duration": 150,
"password": "newpassword123",
"hostVideo": false,
"panelistsVideo": false,
"registrationType": 2
}
}
}
Delete a single occurrence of a recurring webinar:
{
"type": "zoom",
"parameters": {
"resource": "webinar",
"operation": "delete",
"webinarId": "987654321",
"additionalFields": {
"occurrenceId": "1234567890"
}
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Use Zoom to create, retrieve, update, delete, and list meetings, meeting registrants, and webinars via the Zoom API.
Key Relationships
- Resource determines available operations: each resource type has its own set of valid operations
- Operation determines required parameters: different operations require different mandatory fields
- Collection parameters use a flat structure: Additional Fields, Update Fields and Filters are plain objects, never arrays
- Rate limiting: keep Max Concurrency low (default 5) because of Zoom API rate limits, especially on free accounts
Meeting Settings
Meeting Create and Meeting Update nest their in-meeting behaviour under Settings inside the collection. Webinar Create and Webinar Update put the equivalent fields (Audio, Auto Recording, Host Video, Registration Type, …) directly in Additional Fields instead, with no Settings level.
Frequently asked questions
Why do the required fields keep changing?
Resource determines which operations are available, and each operation requires different mandatory fields — so choose resource and operation before filling anything in.
How should collection parameters be structured?
As a flat structure rather than nested wrappers.
Can it manage webinar registration?
Meeting registrants are supported alongside meetings and webinars, so attendee handling can be automated rather than done in the Zoom UI.
Which credential does it need?
A Zoom OAuth2 credential.
Build with the Zoom node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Zoom OAuth2 credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.