Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Zendesk (OAuth)

Scalekit connector
Open markdown

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

Tools
137
What they doRead · write · destructive
84 · 39 · 1484 read39 write14 destructive
Users sign in with
OAuth app
Your own Zendesk app

What you can do

  • Manage tickets: create, update, merge, and delete support tickets, and change status, priority, assignee, and tags
  • Reply and search tickets: add public replies or internal notes and find tickets with Zendesk search syntax
  • Manage users and organizations: create, update, search, and delete end users, agents, and organizations and their memberships
  • Manage Help Center articles: create, update, search, and archive articles, sections, and article comments
  • Automate workflows: create and edit macros, triggers, automations, views, and webhooks that act on tickets
  • Track support performance: read satisfaction ratings, ticket metrics, SLA policies, and Talk call activity

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 Zendesk (OAuth) connection

    In AgentKit > Connections, create a Zendesk (OAuth) 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

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

    Then enter the app's Client ID and Client Secret on the Zendesk (OAuth) connection.

    Console steps with screenshots

    Register your Scalekit environment with Zendesk so Scalekit can handle the OAuth flow and token lifecycle for your users.

    1. Copy the redirect URI from Scalekit

      • In the Scalekit dashboard, go to AgentKit > Connections > Create Connection.
      • Search for Zendesk (OAUTH) and click Create.
      • Copy the Redirect URI from the connection details panel. It looks like:
        https://<YOUR_ENV>.scalekit.cloud/sso/v1/oauth/conn_<ID>/callback
    2. Create an OAuth client in Zendesk

      • Sign in to your Zendesk account and open Admin Center.
      • In the left sidebar, go to Apps and integrations > APIs > OAuth clients.

      Zendesk Admin Center showing the OAuth clients list with an Add OAuth client button

      • Click Add OAuth client (top right).
    3. Fill in the client details

      • Enter a Name (shown to users during authorization, for example Agent Connect) and a unique Identifier (used in code — for example, agent_connect_auth).
      • Set Client kind to Confidential — this allows Zendesk to issue a client secret.
      • Under Redirect URLs, paste the Scalekit redirect URI you copied in step 1. Add one URL per line.

      Zendesk OAuth client form showing the Identifier field set to agent_connect_auth, Client kind set to Confidential, and Redirect URLs field

    4. Save and copy your credentials

      • Click Save. Zendesk displays the full Secret immediately after saving.

      Zendesk OAuth client form showing the Redirect URLs saved and the Secret field

      Note both values:

      • Client ID — the Identifier you entered (for example, agent_connect_auth)
      • Client Secret — the value shown in the Secret field
    5. Add credentials in Scalekit

      • Return to Scalekit dashboard and open the Zendesk (OAUTH) connection you created.
      • Enter:
        • Client ID — the Identifier from your Zendesk OAuth client
        • Client Secret — the Secret shown after saving
      • 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 = 'zendeskoauth'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Zendesk (OAuth):', 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: 'zendeskoauth_automations_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
  • zendeskoauth_attachment_getRetrieve attachment details by ID.Read-only

    Get Attachment

    Retrieve attachment details by ID. Obtain the attachment_id from a ticket comment's attachments list.

    Inputs

    attachment_idnumberrequired
    The unique numeric identifier of the attachment
  • zendeskoauth_automation_getRetrieve a single automation by ID, including its conditions and actions.Read-only

    Get Automation

    Retrieve a single automation by ID, including its conditions and actions.

    Inputs

    automation_idnumberrequired
    The unique numeric identifier of the automation
  • zendeskoauth_automations_listList the automations configured for the account.Read-only

    List Automations

    List the automations configured for the account. Automations run business rules on a recurring schedule based on time-based conditions.

    Inputs

    activeboolean
    Filter by active (true) or inactive (false) automations
    pagenumber
    Page number to retrieve
    per_pagenumber
    Results per page (max 100)
  • zendeskoauth_brand_getRetrieve a single brand by ID.Read-only

    Get Brand

    Retrieve a single brand by ID.

    Inputs

    brand_idnumberrequired
    The unique numeric identifier of the brand
  • zendeskoauth_brands_listList the brands configured for the account, sorted by name.Read-only

    List Brands

    List the brands configured for the account, sorted by name.

    Inputs

    include_deletedboolean
    When true, includes soft-deleted brands in the response
  • zendeskoauth_business_hours_schedules_listList all business hours schedules defined in Zendesk.Read-only

    List Business Hours Schedules

    List all business hours schedules defined in Zendesk. Each schedule includes the configured shift windows (days and hours) your support team operates. Use this to retrieve 24/7 coverage windows and shift data without requiring a Zendesk WFM (Tymeshift) subscription.

    Inputs

    This tool takes no inputs.

  • zendeskoauth_group_getRetrieve a single group by ID.Read-only

    Get Group

    Retrieve a single group by ID.

    Inputs

    group_idnumberrequired
    The unique numeric identifier of the group
    includestring
    Comma-separated sideloads to include, e.g. users
  • zendeskoauth_group_memberships_listList agent-to-group membership assignments across the account.Read-only

    List Group Memberships

    List agent-to-group membership assignments across the account.

    Inputs

    includestring
    Comma-separated sideloads: users, groups
    pagenumber
    Page number to retrieve
    per_pagenumber
    Results per page (max 100)