Skip to content
Scalekit Docs
Talk to an EngineerDashboard

Zoom connector

OAuth 2.0CommunicationCalendar

Connect to Zoom. Schedule meetings, manage recordings, and handle video conferencing workflows

Zoom connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Register your Zoom credentials with Scalekit so it handles the token lifecycle. You do this once per environment.

    Dashboard setup steps

    Register your Scalekit environment with the Zoom connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. You’ll need your app credentials from the Zoom App Marketplace.

    1. Set up auth redirects

      • In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Zoom and click Create. Copy the redirect URI. It looks like https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.

        Copy redirect URI from Scalekit dashboard

      • In the Zoom App Marketplace, open your app and go to App Credentials.

      • Paste the copied URI into the Redirect URL for OAuth field and also add it to the OAuth allow list.

        Add redirect URL in Zoom App Marketplace

    2. Get client credentials

      • In the Zoom App Marketplace, open your app and go to App Credentials:
        • Client ID — listed under Client ID
        • Client Secret — listed under Client Secret
    3. Add credentials in Scalekit

      • In Scalekit dashboard, go to AgentKit > Connections and open the connection you created.

      • Enter your credentials:

        • Client ID (from your Zoom app)
        • Client Secret (from your Zoom app)
        • Permissions — select the scopes your app needs

        Add credentials in Scalekit dashboard

      • Click Save.

  4. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'zoom'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Zoom:', link)
    process.stdout.write('Press Enter after authorizing...')
    await new Promise(r => process.stdin.once('data', r))
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'zoom_chat_channels_list',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • List webinars, webinar registrants, tracking fields — List all scheduled webinars for a Zoom user
  • Update webinar, webinar registrant status, tracking field — Update an existing Zoom webinar’s topic, schedule, or agenda
  • Add webinar registrant, webinar panelist, meeting registrant — Register a new attendee for a Zoom webinar
  • Get webinar, tracking field, meeting poll — Retrieve details of a scheduled Zoom webinar, including its settings, agenda, and occurrence information
  • Delete webinar, tracking field, group — Permanently delete a scheduled Zoom webinar
  • Create webinar, tracking field, meeting poll — Schedule a new Zoom webinar for a user
Proxy API call
const result = await actions.request({
connectionName: 'zoom',
identifier: 'user_123',
path: '/v2/users/me',
method: 'GET',
});
console.log(result);
Execute a tool
const result = await actions.executeTool({
connector: 'zoom',
identifier: 'user_123',
toolName: 'zoom_list',
toolInput: {},
});
console.log(result);

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

zoom_chat_channel_create#Create a new Team Chat channel.3 params

Create a new Team Chat channel.

NameTypeRequiredDescription
namestringrequiredName of the channel
membersarrayoptionalList of member objects with email field to add to the channel
typeintegeroptionalChannel type: 1=private, 2=private with external users, 3=public, 4=new external
zoom_chat_channel_delete#Delete a Team Chat channel.1 param

Delete a Team Chat channel.

NameTypeRequiredDescription
channel_idstringrequiredThe channel ID
zoom_chat_channel_get#Get details of a specific Team Chat channel.1 param

Get details of a specific Team Chat channel.

NameTypeRequiredDescription
channel_idstringrequiredThe channel ID
zoom_chat_channel_member_invite#Invite one or more members to a Team Chat channel.2 params

Invite one or more members to a Team Chat channel.

NameTypeRequiredDescription
channel_idstringrequiredThe channel ID
membersarrayrequiredArray of member objects with email field
zoom_chat_channel_member_remove#Remove a member from a Team Chat channel.2 params

Remove a member from a Team Chat channel.

NameTypeRequiredDescription
channel_idstringrequiredThe channel ID
member_idstringrequiredThe member ID or email to remove
zoom_chat_channel_members_list#List members of a Team Chat channel.3 params

List members of a Team Chat channel.

NameTypeRequiredDescription
channel_idstringrequiredThe channel ID
next_page_tokenstringoptionalToken for next page of results
page_sizeintegeroptionalNumber of members per page (max 50)
zoom_chat_channel_messages_list#List messages in a Zoom Team Chat channel.5 params

List messages in a Zoom Team Chat channel.

NameTypeRequiredDescription
channel_idstringrequiredThe channel ID to list messages from
user_idstringrequiredThe user ID or 'me' for the authenticated user
datestringoptionalDate to retrieve messages for (yyyy-MM-dd). Defaults to today.
next_page_tokenstringoptionalToken for next page
page_sizeintegeroptionalNumber of messages per page (max 50)
zoom_chat_channel_update#Update the name or settings of a Team Chat channel.2 params

Update the name or settings of a Team Chat channel.

NameTypeRequiredDescription
channel_idstringrequiredThe channel ID
namestringoptionalNew name for the channel
zoom_chat_channels_list#List all Zoom Team Chat channels the authenticated user belongs to.2 params

List all Zoom Team Chat channels the authenticated user belongs to.

NameTypeRequiredDescription
next_page_tokenstringoptionalToken for next page
page_sizeintegeroptionalNumber of channels per page (max 50)
zoom_chat_message_send#Send a message in a Zoom Team Chat channel or to a user.4 params

Send a message in a Zoom Team Chat channel or to a user.

NameTypeRequiredDescription
messagestringrequiredThe message text to send
user_idstringrequiredSender's user ID or 'me'
to_channelstringoptionalChannel ID to send the message to
to_jidstringoptionalJID of the user to send a direct message to
zoom_group_create#Create a new user group in the Zoom account.1 param

Create a new user group in the Zoom account.

NameTypeRequiredDescription
namestringrequiredName of the group
zoom_group_delete#Delete a Zoom group.1 param

Delete a Zoom group.

NameTypeRequiredDescription
group_idstringrequiredThe group ID to delete
zoom_group_get#Get the details of a specific Zoom group.1 param

Get the details of a specific Zoom group.

NameTypeRequiredDescription
group_idstringrequiredThe group ID
zoom_group_update#Rename an existing Zoom group.2 params

Rename an existing Zoom group.

NameTypeRequiredDescription
group_idstringrequiredThe group ID to update
namestringrequiredNew name for the group
zoom_groups_list#List all groups in the Zoom account.0 params

List all groups in the Zoom account.

zoom_meeting_create#Schedule a new Zoom meeting for a user.8 params

Schedule a new Zoom meeting for a user.

NameTypeRequiredDescription
topicstringrequiredMeeting topic/title
user_idstringrequiredUser ID or 'me' for the authenticated user
agendastringoptionalMeeting description or agenda
durationintegeroptionalMeeting duration in minutes
passwordstringoptionalMeeting passcode (max 10 chars)
start_timestringoptionalMeeting start time in ISO 8601 UTC format
timezonestringoptionalTimezone for the meeting (e.g. America/New_York)
typeintegeroptional1=Instant, 2=Scheduled, 3=Recurring no fixed time, 8=Recurring fixed time
zoom_meeting_delete#Delete a Zoom meeting.2 params

Delete a Zoom meeting.

NameTypeRequiredDescription
meeting_idstringrequiredThe meeting ID to delete
occurrence_idstringoptionalOccurrence ID for recurring meeting instances
zoom_meeting_get#Retrieve details of a specific Zoom meeting.1 param

Retrieve details of a specific Zoom meeting.

NameTypeRequiredDescription
meeting_idstringrequiredThe meeting ID
zoom_meeting_invitation_get#Retrieve the invitation text for a Zoom meeting.1 param

Retrieve the invitation text for a Zoom meeting.

NameTypeRequiredDescription
meeting_idstringrequiredThe meeting ID
zoom_meeting_poll_create#Create a poll for a scheduled Zoom meeting.5 params

Create a poll for a scheduled Zoom meeting.

NameTypeRequiredDescription
meeting_idstringrequiredThe meeting ID
questionsarrayrequiredArray of poll question objects
titlestringrequiredTitle of the poll
anonymousbooleanoptionalWhether to keep the poll anonymous
poll_typeintegeroptional1 = classic Poll, 2 = Advanced Poll (enables rating/matching/rank order/short-long answer question types)
zoom_meeting_poll_get#Get the details of a specific Zoom meeting poll.2 params

Get the details of a specific Zoom meeting poll.

NameTypeRequiredDescription
meeting_idstringrequiredThe meeting ID
poll_idstringrequiredThe poll ID
zoom_meeting_polls_list#List all polls created for a Zoom meeting.1 param

List all polls created for a Zoom meeting.

NameTypeRequiredDescription
meeting_idstringrequiredThe meeting ID
zoom_meeting_recordings_delete#Delete all cloud recordings for a specific meeting.2 params

Delete all cloud recordings for a specific meeting.

NameTypeRequiredDescription
meeting_idstringrequiredThe meeting ID or UUID
actionstringoptionaltrash (move to trash, default) or delete (permanent)
zoom_meeting_recordings_get#Retrieve all cloud recordings for a specific meeting.1 param

Retrieve all cloud recordings for a specific meeting.

NameTypeRequiredDescription
meeting_idstringrequiredThe meeting ID or UUID
zoom_meeting_registrant_add#Register a participant for a Zoom meeting.5 params

Register a participant for a Zoom meeting.

NameTypeRequiredDescription
emailstringrequiredRegistrant's email address
first_namestringrequiredRegistrant's first name
meeting_idstringrequiredThe meeting ID
last_namestringoptionalRegistrant's last name
occurrence_idsstringoptionalComma-separated occurrence IDs for recurring meetings
zoom_meeting_registrant_status_update#Approve, deny, or cancel one or more registrants for a Zoom meeting.4 params

Approve, deny, or cancel one or more registrants for a Zoom meeting.

NameTypeRequiredDescription
actionstringrequiredAction to take on the given registrants
meeting_idstringrequiredThe meeting ID
registrantsarrayrequiredArray of registrant objects to update, each with id and/or email
occurrence_idstringoptionalOccurrence ID for recurring meetings
zoom_meeting_registrants_list#List all registrants for a Zoom meeting.5 params

List all registrants for a Zoom meeting.

NameTypeRequiredDescription
meeting_idstringrequiredThe meeting ID
next_page_tokenstringoptionalToken for next page
occurrence_idstringoptionalOccurrence ID for recurring meetings
page_sizeintegeroptionalNumber of records per page (max 300)
statusstringoptionalFilter by status: pending, approved, denied
zoom_meeting_status_update#Update the status of a Zoom meeting (e.g., end a meeting in progress).2 params

Update the status of a Zoom meeting (e.g., end a meeting in progress).

NameTypeRequiredDescription
actionstringrequiredAction to perform: 'end' to end the meeting
meeting_idstringrequiredThe meeting ID
zoom_meeting_update#Update an existing Zoom meeting's details.7 params

Update an existing Zoom meeting's details.

NameTypeRequiredDescription
meeting_idstringrequiredThe meeting ID to update
agendastringoptionalNew meeting agenda
durationintegeroptionalNew duration in minutes
passwordstringoptionalNew meeting passcode
start_timestringoptionalNew start time in ISO 8601 UTC format
timezonestringoptionalTimezone for the meeting
topicstringoptionalNew meeting topic
zoom_meetings_list#List all meetings scheduled by a user.4 params

List all meetings scheduled by a user.

NameTypeRequiredDescription
user_idstringrequiredUser ID or 'me' for the authenticated user
next_page_tokenstringoptionalToken for next page of results
page_sizeintegeroptionalNumber of records per page (max 300)
typestringoptionalFilter: scheduled, live, upcoming, upcoming_meetings, previous_meetings
zoom_past_meeting_get#Retrieve details of an ended Zoom meeting.1 param

Retrieve details of an ended Zoom meeting.

NameTypeRequiredDescription
meeting_uuidstringrequiredThe meeting UUID (double-encode if contains / or //)
zoom_phone_call_logs_list#Retrieve account-level Zoom Phone call logs within a date range, including caller, callee, duration, and call result. Requires a Zoom Phone license and phone:read:admin scope.5 params

Retrieve account-level Zoom Phone call logs within a date range, including caller, callee, duration, and call result. Requires a Zoom Phone license and phone:read:admin scope.

NameTypeRequiredDescription
fromstringoptionalStart date of the range in yyyy-MM-dd format
next_page_tokenstringoptionalToken for next page
page_sizeintegeroptionalNumber of records per page (max 300)
tostringoptionalEnd date of the range in yyyy-MM-dd format
typestringoptionalFilter by call type
zoom_phone_users_list#List all users enabled with a Zoom Phone license on the account, including their extension and phone numbers. Requires a Zoom Phone license and phone:read:admin scope.3 params

List all users enabled with a Zoom Phone license on the account, including their extension and phone numbers. Requires a Zoom Phone license and phone:read:admin scope.

NameTypeRequiredDescription
next_page_tokenstringoptionalToken for next page
page_sizeintegeroptionalNumber of records per page (max 100)
site_idstringoptionalFilter users by a specific Zoom Phone site
zoom_recordings_list#List all cloud recordings for a user.7 params

List all cloud recordings for a user.

NameTypeRequiredDescription
user_idstringrequiredUser ID or 'me' for the authenticated user
fromstringoptionalStart date in yyyy-MM-dd format (default: current date minus 1 month)
mcstringoptionalSet to true to retrieve recordings from Zoom Room
next_page_tokenstringoptionalToken for next page
page_sizeintegeroptionalNumber of records per page (max 300)
tostringoptionalEnd date in yyyy-MM-dd format (max 1 month range)
trashbooleanoptionalSet to true to list trashed recordings
zoom_report_daily_usage#Retrieve the account-level daily usage report showing new users, meetings, participants, and meeting minutes for each day of a given month. Requires owner or admin privileges and report:read scope.2 params

Retrieve the account-level daily usage report showing new users, meetings, participants, and meeting minutes for each day of a given month. Requires owner or admin privileges and report:read scope.

NameTypeRequiredDescription
monthintegerrequiredMonth to retrieve the report for (1-12)
yearintegerrequiredYear to retrieve the report for
zoom_report_meeting_participants#Retrieve a report of participants who attended a past Zoom meeting, including join/leave times. Requires a Pro or higher plan and report:read scope.3 params

Retrieve a report of participants who attended a past Zoom meeting, including join/leave times. Requires a Pro or higher plan and report:read scope.

NameTypeRequiredDescription
meeting_idstringrequiredThe meeting ID or UUID to retrieve the participants report for
next_page_tokenstringoptionalToken for next page
page_sizeintegeroptionalNumber of records per page (max 300)
zoom_report_user_meetings#Retrieve a report of meetings hosted by a Zoom user within a date range, including duration and participant counts. Requires a Pro or higher plan and report:read scope.6 params

Retrieve a report of meetings hosted by a Zoom user within a date range, including duration and participant counts. Requires a Pro or higher plan and report:read scope.

NameTypeRequiredDescription
fromstringrequiredStart date of the report range in yyyy-MM-dd format
tostringrequiredEnd date of the report range in yyyy-MM-dd format
user_idstringrequiredUser ID or 'me' for the authenticated user
next_page_tokenstringoptionalToken for next page
page_sizeintegeroptionalNumber of records per page (max 300)
typestringoptionalType of meetings to include: past, pastOne, or live
zoom_report_webinar_participants#Retrieve a report of participants who attended a past Zoom webinar, including join/leave times. Requires a Pro or higher plan and report:read scope.3 params

Retrieve a report of participants who attended a past Zoom webinar, including join/leave times. Requires a Pro or higher plan and report:read scope.

NameTypeRequiredDescription
webinar_idstringrequiredThe webinar ID or UUID to retrieve the participants report for
next_page_tokenstringoptionalToken for next page
page_sizeintegeroptionalNumber of records per page (max 300)
zoom_tracking_field_create#Create a custom tracking field for meetings and webinars.4 params

Create a custom tracking field for meetings and webinars.

NameTypeRequiredDescription
fieldstringrequiredName of the tracking field
field_requiredbooleanoptionalWhether this tracking field is required when scheduling a meeting or webinar. Maps to Zoom's 'required' field.
recommended_valuesarrayoptionalSuggested values for this tracking field
visiblebooleanoptionalWhether this tracking field is visible when scheduling a meeting or webinar
zoom_tracking_field_delete#Delete a custom tracking field.1 param

Delete a custom tracking field.

NameTypeRequiredDescription
field_idstringrequiredThe tracking field ID to delete
zoom_tracking_field_get#Get the details of a specific tracking field.1 param

Get the details of a specific tracking field.

NameTypeRequiredDescription
field_idstringrequiredThe tracking field ID
zoom_tracking_field_update#Update a custom tracking field.5 params

Update a custom tracking field.

NameTypeRequiredDescription
field_idstringrequiredThe tracking field ID to update
fieldstringoptionalNew name of the tracking field
field_requiredbooleanoptionalWhether this tracking field is required when scheduling a meeting or webinar. Maps to Zoom's 'required' field.
recommended_valuesarrayoptionalSuggested values for this tracking field
visiblebooleanoptionalWhether this tracking field is visible when scheduling a meeting or webinar
zoom_tracking_fields_list#List the account's custom tracking fields used for meetings and webinars.0 params

List the account's custom tracking fields used for meetings and webinars.

zoom_user_delete#Disassociate or permanently delete a Zoom user.3 params

Disassociate or permanently delete a Zoom user.

NameTypeRequiredDescription
user_idstringrequiredThe user ID to delete
actionstringoptionaldisassociate (default) or delete
transfer_emailstringoptionalEmail to transfer data to before deletion
zoom_user_get#Retrieve details of a specific Zoom user.1 param

Retrieve details of a specific Zoom user.

NameTypeRequiredDescription
user_idstringrequiredUser ID or 'me' for the authenticated user
zoom_user_permissions_get#Retrieve permissions for a Zoom user.1 param

Retrieve permissions for a Zoom user.

NameTypeRequiredDescription
user_idstringrequiredUser ID or 'me' for the authenticated user
zoom_user_settings_get#Retrieve settings for a Zoom user.1 param

Retrieve settings for a Zoom user.

NameTypeRequiredDescription
user_idstringrequiredUser ID or 'me' for the authenticated user
zoom_user_update#Update a Zoom user's profile information.8 params

Update a Zoom user's profile information.

NameTypeRequiredDescription
user_idstringrequiredUser ID or 'me' for the authenticated user
companystringoptionalUser's company name
display_namestringoptionalNew display name
first_namestringoptionalNew first name
job_titlestringoptionalUser's job title
last_namestringoptionalNew last name
locationstringoptionalUser's location
phone_numberstringoptionalUser's phone number
zoom_users_list#List all users on a Zoom account.4 params

List all users on a Zoom account.

NameTypeRequiredDescription
next_page_tokenstringoptionalToken for next page
page_sizeintegeroptionalNumber of records per page (max 300)
role_idstringoptionalFilter users by role ID
statusstringoptionalFilter by status: active, inactive, pending
zoom_webinar_create#Schedule a new Zoom webinar for a user. Requires a Zoom account with a webinar license.7 params

Schedule a new Zoom webinar for a user. Requires a Zoom account with a webinar license.

NameTypeRequiredDescription
topicstringrequiredWebinar topic/title
user_idstringrequiredUser ID or 'me' for the authenticated user who will host the webinar
agendastringoptionalWebinar description or agenda
durationintegeroptionalWebinar duration in minutes
start_timestringoptionalWebinar start time in ISO 8601 UTC format
timezonestringoptionalTimezone for the webinar (e.g. America/New_York)
typeintegeroptionalWebinar type: 5=Webinar, 6=Recurring webinar with no fixed time, 9=Recurring webinar with fixed time
zoom_webinar_delete#Permanently delete a scheduled Zoom webinar. This action is irreversible and cancels the webinar for all registrants.2 params

Permanently delete a scheduled Zoom webinar. This action is irreversible and cancels the webinar for all registrants.

NameTypeRequiredDescription
webinar_idstringrequiredThe webinar ID to delete
occurrence_idstringoptionalOccurrence ID to delete a single occurrence of a recurring webinar
zoom_webinar_get#Retrieve details of a scheduled Zoom webinar, including its settings, agenda, and occurrence information.2 params

Retrieve details of a scheduled Zoom webinar, including its settings, agenda, and occurrence information.

NameTypeRequiredDescription
webinar_idstringrequiredThe webinar ID to retrieve
occurrence_idstringoptionalOccurrence ID for a recurring webinar
zoom_webinar_panelist_add#Add one or more panelists to a Zoom webinar.2 params

Add one or more panelists to a Zoom webinar.

NameTypeRequiredDescription
panelistsarrayrequiredArray of panelist objects, each with name and email
webinar_idstringrequiredThe webinar ID
zoom_webinar_registrant_add#Register a new attendee for a Zoom webinar. Returns a join URL for the registrant.4 params

Register a new attendee for a Zoom webinar. Returns a join URL for the registrant.

NameTypeRequiredDescription
emailstringrequiredRegistrant's email address
first_namestringrequiredRegistrant's first name
webinar_idstringrequiredThe webinar ID to register the attendee for
last_namestringoptionalRegistrant's last name
zoom_webinar_registrant_status_update#Approve, deny, or cancel one or more registrants for a Zoom webinar.4 params

Approve, deny, or cancel one or more registrants for a Zoom webinar.

NameTypeRequiredDescription
actionstringrequiredAction to take on the given registrants
registrantsarrayrequiredArray of registrant objects to update, each with id and/or email
webinar_idstringrequiredThe webinar ID
occurrence_idstringoptionalOccurrence ID for recurring webinars
zoom_webinar_registrants_list#List all registrants for a Zoom webinar.4 params

List all registrants for a Zoom webinar.

NameTypeRequiredDescription
webinar_idstringrequiredThe webinar ID to list registrants for
next_page_tokenstringoptionalToken for next page
page_sizeintegeroptionalNumber of records per page (max 300)
statusstringoptionalFilter by registrant status: pending, approved, denied
zoom_webinar_update#Update an existing Zoom webinar's topic, schedule, or agenda. Only the fields you provide are changed.6 params

Update an existing Zoom webinar's topic, schedule, or agenda. Only the fields you provide are changed.

NameTypeRequiredDescription
webinar_idstringrequiredThe webinar ID to update
agendastringoptionalNew webinar agenda
durationintegeroptionalNew duration in minutes
start_timestringoptionalNew start time in ISO 8601 UTC format
timezonestringoptionalNew timezone for the webinar
topicstringoptionalNew webinar topic
zoom_webinars_list#List all scheduled webinars for a Zoom user.3 params

List all scheduled webinars for a Zoom user.

NameTypeRequiredDescription
user_idstringrequiredUser ID or 'me' for the authenticated user
next_page_tokenstringoptionalToken for next page
page_sizeintegeroptionalNumber of records per page (max 300)