Search all guides

Reference · Tools

Zoom integration

Manage video conferencing meetings, their registrants, and webinars through the Zoom platform.

Action Communication v1

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.

Works as
Action
Tool name
zoom
Operations
5 — Create , Delete , Get , Get Many , Update
Parameters
39
Outputs
Output, Error
Credentials
Zoom OAuth2
Official docs
Zoom docs developers.zoom.us

What you can build with Zoom

  • 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.

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.

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Zoom OAuth2 credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Meetingmeeting
Meeting RegistrantmeetingRegistrant
Webinarwebinar

Operations

OperationValueDescription
CreatecreateCreate a meeting
DeletedeleteDelete a meeting
GetgetRetrieve a meeting
Get ManygetAllRetrieve many meetings
UpdateupdateUpdate 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

ParameterTypeRequiredDefaultDescription
TopicstringNo—Topic of the meeting. Supports expressions.
Additional FieldscollectionNo{}Optional meeting settings.
— AgendastringNo—Meeting agenda.
— DurationnumberNo0Meeting duration in minutes.
— PasswordstringNo—Password to join the meeting, maximum 10 characters.
— Schedule ForstringNo—Schedule meeting for someone else from your account. Provide their email ID.
— SettingscollectionNo{}In-meeting behaviour.
— — AudiooptionsNobothHow participants can join the audio portion of the meeting.
Options: both (telephony and VoIP), telephony, voip
— — Alternative HostsstringNo—Alternative hosts email IDs (comma-separated).
— — Auto RecordingoptionsNononeAutomatic recording setting.
Options: local, cloud, none (disabled)
— — Host Meeting in ChinabooleanNofalseWhether to host the meeting in China.
— — Host Meeting in IndiabooleanNofalseWhether to host the meeting in India.
— — Host VideobooleanNofalseWhether to start video when host joins the meeting.
— — Join Before HostbooleanNofalseWhether to allow participants to join before host starts the meeting.
— — Mute Upon EntrybooleanNofalseWhether to mute participants upon entry.
— — Participant VideobooleanNofalseWhether to start video when participant joins the meeting.
— — Registration TypeoptionsNo1Registration 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)
— — WatermarkbooleanNofalseWhether to add a watermark when viewing shared screen.
— Start TimedateTimeNo—Meeting start time (ISO 8601). Used for scheduled or recurring meetings with fixed time.
— TimezonestringNo—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
— TypeoptionsNo2Meeting type.
Options: 1 (instant meeting), 2 (scheduled meeting), 3 (recurring meeting with no fixed time), 8 (recurring meeting with fixed time)

Meeting: Get

ParameterTypeRequiredDefaultDescription
Meeting IDstringYes—The meeting ID. Supports expressions.
Additional FieldscollectionNo{}Optional lookup settings.
— Occurrence IDstringNo—To view meeting details of a particular occurrence of a recurring meeting.
— Show Previous OccurrencesbooleanNofalseWhether to show details of all previous occurrences of a recurring meeting.

Meeting: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo30Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrows the meeting list.
— TypeoptionsNoliveMeeting 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

ParameterTypeRequiredDefaultDescription
Meeting IDstringYes—The meeting ID. Supports expressions.
Update FieldscollectionNo{}Values to change on the meeting.
— AgendastringNo—Meeting agenda.
— DurationnumberNo0Meeting duration in minutes.
— PasswordstringNo—Password to join the meeting, maximum 10 characters.
— Schedule ForstringNo—Schedule meeting for someone else. Provide their email ID.
— SettingscollectionNo{}In-meeting behaviour.
— — AudiooptionsNobothHow participants can join the audio portion of the meeting.
Options: both (telephony and VoIP), telephony, voip
— — Alternative HostsstringNo—Alternative hosts email IDs (comma-separated).
— — Auto RecordingoptionsNononeAutomatic recording setting.
Options: local, cloud, none (disabled)
— — Host Meeting in ChinabooleanNofalseWhether to host the meeting in China.
— — Host Meeting in IndiabooleanNofalseWhether to host the meeting in India.
— — Host VideobooleanNofalseWhether to start video when host joins the meeting.
— — Join Before HostbooleanNofalseWhether to allow participants to join before host starts the meeting.
— — Mute Upon EntrybooleanNofalseWhether to mute participants upon entry.
— — Participant VideobooleanNofalseWhether to start video when participant joins the meeting.
— — Registration TypeoptionsNo1Registration 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)
— — WatermarkbooleanNofalseWhether to add a watermark when viewing shared screen.
— Start TimedateTimeNo—Meeting start time (ISO 8601).
— TimezonestringNo—IANA timezone identifier (e.g. America/New_York).
— TopicstringNo—Meeting topic.
— TypeoptionsNo2Meeting type.
Options: 1 (instant meeting), 2 (scheduled meeting), 3 (recurring meeting with no fixed time), 8 (recurring meeting with fixed time)

Meeting: Delete

ParameterTypeRequiredDefaultDescription
Meeting IDstringYes—The meeting ID. Supports expressions.
Additional FieldscollectionNo{}Optional deletion settings.
— Occurrence IDstringNo—Meeting occurrence ID.
— Schedule ReminderbooleanNofalseWhether to notify hosts and alternative hosts about meeting cancellation via email.

Meeting Registrant: Create

ParameterTypeRequiredDefaultDescription
Meeting IDstringYes—The meeting ID. Supports expressions.
EmailstringYes—Valid email address of the registrant. Supports expressions.
First NamestringYes—First name of the registrant. Supports expressions.
Additional FieldscollectionNo{}Optional registrant details.
— AddressstringNo—Address of registrant.
— CitystringNo—City of registrant.
— CommentsstringNo—Allows registrants to provide any questions they have.
— CountrystringNo—Country of registrant.
— Job TitlestringNo—Job title of registrant.
— Last NamestringNo—Last name of registrant.
— Occurrence IDsstringNo—Occurrence IDs, separated by comma.
— OrganizationstringNo—Organization of registrant.
— Phone NumberstringNo—Phone number of registrant.
— Purchasing Time FrameoptionsNo—Purchasing time frame.
Options: Within a month, 1-3 months, 4-6 months, More than 6 months, No timeframe
— Role in Purchase ProcessoptionsNo—Role in purchase process.
Options: Decision Maker, Evaluator/Recommender, Influencer, Not Involved
— StatestringNo—State of registrant.
— Zip CodestringNo—Zip code of registrant.

Meeting Registrant: Get Many

ParameterTypeRequiredDefaultDescription
Meeting IDstringYes—The meeting ID. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo30Max number of results to return. (shown when Return All is false)
Additional FieldscollectionNo{}Narrows the registrant list.
— Occurrence IDstringNo—Meeting occurrence ID.
— StatusoptionsNoapprovedRegistrant status filter.
Options: pending, approved, denied

Meeting Registrant: Update

ParameterTypeRequiredDefaultDescription
Meeting IDstringYes—The meeting ID. Supports expressions.
ActionoptionsYes—Action to perform on the registrant status.
Options: approve, cancel, deny
Additional FieldscollectionNo{}Optional targeting for recurring meetings.
— Occurrence IDstringNo—Meeting occurrence ID.

Webinar: Create

ParameterTypeRequiredDefaultDescription
User IDstringYes—User ID or email address. Supports expressions.
Additional FieldscollectionNo{}Webinar settings.
— AgendastringNo—Webinar agenda.
— Alternative HostsstringNo—Alternative hosts email IDs (comma-separated).
— Approval TypeoptionsNo2Registration approval type.
Options: 0 (automatically approve), 1 (manually approve), 2 (no registration required)
— AudiooptionsNobothHow participants can join the audio portion.
Options: both (telephony and VoIP), telephony, voip
— Auto RecordingoptionsNononeAutomatic recording setting.
Options: local, cloud, none (disabled)
— DurationnumberNo0Webinar duration in minutes.
— Host VideobooleanNofalseWhether to start video when host joins the webinar.
— Panelists VideobooleanNofalseWhether to start video when panelists join the webinar.
— PasswordstringNo—Password to join the webinar, maximum 10 characters.
— Practice SessionbooleanNofalseWhether to enable practice session.
— Registration TypeoptionsNo1Registration 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 TimedateTimeNo—Webinar start time (ISO 8601).
— TimezonestringNo—IANA timezone identifier (e.g. America/New_York).
— TopicstringNo—Webinar topic.
— TypeoptionsNo5Webinar type.
Options: 5 (webinar), 6 (recurring webinar with no fixed time), 9 (recurring webinar with fixed time)

Webinar: Get

ParameterTypeRequiredDefaultDescription
Webinar IDstringYes—The webinar ID. Supports expressions.
Additional FieldscollectionNo{}Optional lookup settings.
— Occurrence IDstringNo—To view webinar details of a particular occurrence of a recurring webinar.
— Show Previous OccurrencesbooleanNofalseWhether to show details of all previous occurrences of a recurring webinar.

Webinar: Get Many

ParameterTypeRequiredDefaultDescription
User IDstringYes—User ID or email address. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo30Max number of results to return. (shown when Return All is false)

Webinar: Update

ParameterTypeRequiredDefaultDescription
Webinar IDstringYes—The webinar ID. Supports expressions.
Additional FieldscollectionNo{}Values to change on the webinar.
— AgendastringNo—Webinar agenda.
— Alternative HostsstringNo—Alternative hosts email IDs (comma-separated).
— Approval TypeoptionsNo2Registration approval type.
Options: 0 (automatically approve), 1 (manually approve), 2 (no registration required)
— AudiooptionsNobothHow participants can join the audio portion.
Options: both (telephony and VoIP), telephony, voip
— Auto RecordingoptionsNononeAutomatic recording setting.
Options: local, cloud, none (disabled)
— DurationnumberNo0Webinar duration in minutes.
— Host VideobooleanNofalseWhether to start video when host joins the webinar.
— Occurrence IDstringNo—Webinar occurrence ID.
— Panelists VideobooleanNofalseWhether to start video when panelists join the webinar.
— PasswordstringNo—Password to join the webinar, maximum 10 characters.
— Practice SessionbooleanNofalseWhether to enable practice session.
— Registration TypeoptionsNo1Registration 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 TimedateTimeNo—Webinar start time (ISO 8601).
— TimezonestringNo—IANA timezone identifier (e.g. America/New_York).
— TopicstringNo—Webinar topic.
— TypeoptionsNo5Webinar type.
Options: 5 (webinar), 6 (recurring webinar with no fixed time), 9 (recurring webinar with fixed time)

Webinar: Delete

ParameterTypeRequiredDefaultDescription
Webinar IDstringYes—The webinar ID. Supports expressions.
Additional FieldscollectionNo{}Optional targeting for recurring webinars.
— Occurrence IDstringNo—Webinar occurrence ID.

All Operations

ParameterTypeRequiredDefaultDescription
Zoom AccountcredentialNo—Connect your Zoom account via OAuth2.
Max ConcurrencynumberNo5Maximum 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, get and update on every resource — the item carries the meeting, registrant or webinar object Zoom returned.
  • getAll fans 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.
  • delete returns no body, so the item carries success: true.
  • Endpoints that answer 204 with an empty body leave the item unchanged apart from what was already on it.

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

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

This tool manages Zoom meetings, registrants, and webinars. It is ideal when you need to schedule, modify, or retrieve details about video conferences or their attendees. The tool produces confirmation of created events, updated statuses, or detailed information about requested Zoom resources.

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 Zoom

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Zoom OAuth2 credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.