Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Zoom

Scalekit connector
Open markdown

The Zoom connector lets your AI agent act in each user's Zoom account. Each user signs in to Zoom once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 58 tools.

Tools
58
What they doRead · write · destructive
30 · 21 · 730 read21 write7 destructive
Users sign in with
OAuth app
Your own Zoom app

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    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. Create the Zoom connection

    In AgentKit > Connections, create a Zoom connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register an OAuth app

    Zoom connections use your own OAuth app. Register one with Zoom and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the Zoom connection.

    Console steps with screenshots

    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.

  5. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_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)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'zoom_chat_channels_list',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • zoom_chat_channel_getGet details of a specific Team Chat channel.Read-only

    Get Chat Channel

    Get details of a specific Team Chat channel.

    Inputs

    channel_idstringrequired
    The channel ID
  • zoom_chat_channel_members_listList members of a Team Chat channel.Read-only

    List Chat Channel Members

    List members of a Team Chat channel.

    Inputs

    channel_idstringrequired
    The channel ID
    next_page_tokenstring
    Token for next page of results
    page_sizeinteger
    Number of members per page (max 50)
  • zoom_chat_channel_messages_listList messages in a Zoom Team Chat channel.Read-only

    List Chat Channel Messages

    List messages in a Zoom Team Chat channel.

    Inputs

    channel_idstringrequired
    The channel ID to list messages from
    user_idstringrequired
    The user ID or 'me' for the authenticated user
    datestring
    Date to retrieve messages for (yyyy-MM-dd). Defaults to today.
    next_page_tokenstring
    Token for next page
    page_sizeinteger
    Number of messages per page (max 50)
  • zoom_chat_channels_listList all Zoom Team Chat channels the authenticated user belongs to.Read-only

    List Chat Channels

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

    Inputs

    next_page_tokenstring
    Token for next page
    page_sizeinteger
    Number of channels per page (max 50)
  • zoom_group_getGet the details of a specific Zoom group.Read-only

    Get Group

    Get the details of a specific Zoom group.

    Inputs

    group_idstringrequired
    The group ID
  • zoom_groups_listList all groups in the Zoom account.Read-only

    List Groups

    List all groups in the Zoom account.

    Inputs

    This tool takes no inputs.

  • zoom_meeting_getRetrieve details of a specific Zoom meeting.Read-only

    Get Meeting

    Retrieve details of a specific Zoom meeting.

    Inputs

    meeting_idstringrequired
    The meeting ID
  • zoom_meeting_invitation_getRetrieve the invitation text for a Zoom meeting.Read-only

    Get Meeting Invitation

    Retrieve the invitation text for a Zoom meeting.

    Inputs

    meeting_idstringrequired
    The meeting ID

Workflows

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_users_list',
toolInput: {},
});
console.log(result);