Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

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:

  • Add meeting registrant — Register a participant for a Zoom meeting
  • Update meeting, chat channel, user — Update an existing Zoom meeting’s details
  • Delete meeting recordings, user, meeting — Delete all cloud recordings for a specific meeting
  • List chat channel members, meeting registrants, chat channels — List members of a Team Chat channel
  • Get meeting, user, chat channel — Retrieve details of a specific Zoom meeting
  • Create meeting, chat channel — Schedule a new Zoom meeting 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_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_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_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_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_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