Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Webex

Scalekit connector
Open markdown

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

Tools
49
What they doRead · write · destructive
31 · 18 · 031 read18 write0 destructive
Users sign in with
OAuth app
Your own Webex 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 Webex connection

    In AgentKit > Connections, create a Webex 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

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

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

  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 = 'webex'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Webex:', 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: 'webex_direct_messages_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
  • webex_attachment_action_getGet the data a person submitted from an Adaptive Card (an attachment action), by its ID.Read-only

    Get Card Submission

    Get the data a person submitted from an Adaptive Card (an attachment action), by its ID. Returns id, type, messageId, personId, roomId, inputs (the submitted form values) and created. Use webex_attachment_action_get to read a card response; the ID arrives in an attachmentActions webhook event.

    Inputs

    attachment_action_idstringrequired
    ID of the attachment action (card submission). Example: Y2lzY29zcGFyazovL3VzL0FUVEFDSE1FTlRfQUNUSU9OLzU0MUFFMzBFLUUyQzUtNERENi04NTM4LTgzOTRDODYzM0I3MQ
  • webex_direct_messages_listList the messages in the 1:1 (direct) conversation between the connected user and one person, newest first.Read-only

    List Direct Messages

    List the messages in the 1:1 (direct) conversation between the connected user and one person, newest first. Returns an items array of messages with id, roomId, text, markdown, files, attachments, personEmail, parentId and created. Use webex_direct_messages_list when you know the other person but not the space ID. Use webex_messages_list for group spaces. Pass person_id or person_email.

    Inputs

    parent_idstring
    Only list replies to this parent message (one thread). Example: Y2lzY29zcGFyazovL3VzL01FU1NBR0UvZWM1ZTIzZjAtN2RhMS0xMWU5LTg2NTgtZTkzYzNiODZjZmFm
    person_emailstring
    Email of the other person in the 1:1 conversation. Provide this or person_id. Example: john.andersen@example.com
    person_idstring
    ID of the other person in the 1:1 conversation. Provide this or person_email. Get it from webex_people_list or webex_me_get. Example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY
  • webex_me_getGet the Webex profile of the connected user.Read-only

    Get My Profile

    Get the Webex profile of the connected user. Returns the user's id, emails, displayName, firstName, lastName, avatar, orgId, created and status. Use webex_me_get to learn who is connected, for example to get their person ID. Use webex_person_get for anyone else.

    Inputs

    This tool takes no inputs.

  • webex_meeting_getGet one Webex meeting series, scheduled meeting or meeting instance by its ID.Read-only

    Get Meeting

    Get one Webex meeting series, scheduled meeting or meeting instance by its ID. Returns the meeting's id, meetingNumber, title, agenda, start, end, timezone, recurrence, state, meetingType, hostEmail, webLink, sipAddress and dial-in details. Use webex_meeting_get when you have the meeting ID. Use webex_meetings_list to find meetings.

    Inputs

    meeting_idstringrequired
    ID of the meeting series, scheduled meeting or meeting instance. Get it from webex_meetings_list. Example: 870f51ff287b41be84648412901e0402
    currentboolean
    For a meeting series: true returns the current scheduled occurrence, false or empty returns the whole series. Example: true
    host_emailstring
    Email of the meeting host to act on behalf of. Only works when the connected user is a Webex site admin with admin-level meeting scopes; leave empty for the connected user's own meetings. Example: john.andersen@example.com
    passwordstring
    Meeting password, sent as the password request header. Needed only when the meeting is password protected and the connected user is not its host, cohost or invitee. Example: BgJep@4323
    timezonestring
    IANA time zone used for the timestamps in the response, sent as the timezone request header. Defaults to UTC when empty. Example: America/Los_Angeles
  • webex_meeting_invitee_getGet one meeting invitee by ID.Read-only

    Get Meeting Invitee

    Get one meeting invitee by ID. Returns id, email, displayName, coHost, meetingId and panelist. Use webex_meeting_invitee_get when you have the invitee ID. Use webex_meeting_invitees_list to find it.

    Inputs

    meeting_invitee_idstringrequired
    ID of the meeting invitee. Get it from webex_meeting_invitees_list. Example: 870f51ff287b41be84648412901e0402_2628962
    host_emailstring
    Email of the meeting host to act on behalf of. Only works when the connected user is a Webex site admin with admin-level meeting scopes; leave empty for the connected user's own meetings. Example: john.andersen@example.com
  • webex_meeting_invitees_listList the invitees of a Webex meeting series, scheduled meeting or meeting instance.Read-only

    List Meeting Invitees

    List the invitees of a Webex meeting series, scheduled meeting or meeting instance. Returns an items array of invitees with id, email, displayName, coHost, meetingId and panelist. Use webex_meeting_invitees_list to see who is invited or to find an invitee ID. Use webex_meeting_participants_list for who actually joined.

    Inputs

    meeting_idstringrequired
    ID of the meeting. Get it from webex_meetings_list. Example: 870f51ff287b41be84648412901e0402
    host_emailstring
    Email of the meeting host to act on behalf of. Only works when the connected user is a Webex site admin with admin-level meeting scopes; leave empty for the connected user's own meetings. Example: john.andersen@example.com
    maxinteger
    Maximum number of results to return in one response. Up to 100; Webex returns 10 when empty. Example: 50
    paneliststring
    Webinars only: true lists panelists, false lists attendees; empty lists both. Example: trueone of truefalse
  • webex_meeting_participant_getGet one participant of a live or ended Webex meeting.Read-only

    Get Meeting Participant

    Get one participant of a live or ended Webex meeting. Returns id, email, displayName, host, coHost, state, joinedTime, leftTime, video, muted and devices. Use webex_meeting_participant_get when you have the participant ID from webex_meeting_participants_list.

    Inputs

    participant_idstringrequired
    ID of the participant; it combines the meeting ID and the participant. Example: 560d7b784f5143e3be2fc3064a5c4999_3c2e2338-e950-43bf-b588-573773ee43d1
    host_emailstring
    Email of the meeting host to act on behalf of. Only works when the connected user is a Webex site admin with admin-level meeting scopes; leave empty for the connected user's own meetings. Example: john.andersen@example.com
  • webex_meeting_participants_listList the people who joined an in-progress or ended Webex meeting the connected user hosts.Read-only

    List Meeting Participants

    List the people who joined an in-progress or ended Webex meeting the connected user hosts. Returns an items array of participants with id, email, displayName, host, coHost, state, joinedTime, leftTime and devices. Use webex_meeting_participants_list for attendance. Use webex_meeting_invitees_list for who was invited. Requires the meeting host or an admin.

    Inputs

    meeting_idstringrequired
    ID of the meeting. For a series, the last instance is used. Personal room meeting IDs are not supported. Example: 0ed74a1c0551494fb7a04e2881bf50ae_I_166022169160077044
    breakout_session_idstring
    Ended meetings only: list who joined this breakout session. Example: c84ba778-2f46-4dc6-9459-398694732d70
    host_emailstring
    Email of the meeting host to act on behalf of. Only works when the connected user is a Webex site admin with admin-level meeting scopes; leave empty for the connected user's own meetings. Example: john.andersen@example.com
    join_time_fromstring
    Only participants who joined at or after this ISO 8601 time. The join window can be at most 7 days. Example: 2026-10-22T09:30:00Z
    join_time_tostring
    Only participants who joined before this ISO 8601 time. Example: 2026-10-25T09:30:00Z
    maxinteger
    Maximum number of results to return in one response. Up to 100; Webex returns 10 when empty. Example: 50
    meeting_start_time_fromstring
    Only instances that started after this ISO 8601 time (exclusive). Example: 2026-10-01T00:00:00Z
    meeting_start_time_tostring
    Only instances that started before this ISO 8601 time (exclusive). Example: 2026-10-31T00:00:00Z
    timezonestring
    IANA time zone used for the timestamps in the response, sent as the timezone request header. Defaults to UTC when empty. Example: America/Los_Angeles