Skip to content
Talk to an Engineer Dashboard

Zendesk

Connect to Zendesk. Manage customer support tickets, users, organizations, and help desk operations

Connect to Zendesk. Manage customer support tickets, users, organizations, and help desk operations

Zendesk logo

Supports authentication: API KEY

Register your Zendesk API credentials with Scalekit so it can authenticate requests on your behalf. You’ll need your Zendesk subdomain, email address, and an API token from your Zendesk Admin Center.

  1. Generate an API token

    • In your Zendesk Admin Center, go to Apps and integrationsAPIsZendesk API.

    • Under Settings, enable Token access.

      Zendesk API configuration page with Allow API token access enabled

    • Click Add API token, enter a description, and click Create.

    • Copy the token — it is only shown once.

  2. Create a connection

    In Scalekit dashboard, go to Agent AuthCreate Connection. Find Zendesk and click Create.

  3. Create a connected account

    Go to Connected Accounts for your Zendesk connection and click Add account. Fill in the required fields:

    • Your User’s ID — a unique identifier for the user in your system

    • Zendesk Domain — your full Zendesk domain (e.g., yourcompany.zendesk.com)

    • Email Address — the Zendesk account email address

    • API Token — the token you copied in step 1

    • Click Save.

      Add connected account form for Zendesk in Scalekit dashboard

Connect a user’s Zendesk account and make API calls on their behalf — Scalekit handles OAuth and token management automatically.

Don’t worry about your Zendesk domain in the path. Scalekit automatically resolves {{domain}} from the connected account’s configuration. For example, a request with path="/v2/users/me" will be sent to https://mycompany.zendesk.com/api/v2/users/me automatically.

You can interact with Zendesk in two ways — via direct proxy API calls or via Scalekit optimized tool calls. Scroll down to see the list of available Scalekit tools.

Proxy API Calls

import { ScalekitClient } from '@scalekit-sdk/node';
import 'dotenv/config';
const connectionName = 'zendesk'; // get your connection name from connection configurations
const identifier = 'user_123'; // your unique user identifier
// Get your credentials from app.scalekit.com → Developers → Settings → API Credentials
const scalekit = new ScalekitClient(
process.env.SCALEKIT_ENV_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET
);
const actions = scalekit.actions;
// Authenticate the user
const { link } = await actions.getAuthorizationLink({
connectionName,
identifier,
});
console.log('🔗 Authorize Zendesk:', link); // present this link to your user for authorization, or click it yourself for testing
process.stdout.write('Press Enter after authorizing...');
await new Promise(r => process.stdin.once('data', r));
// Make a request via Scalekit proxy
const result = await actions.request({
connectionName,
identifier,
path: '/v2/users/me',
method: 'GET',
});
console.log(result);

Scalekit Tools

List all groups in Zendesk. Groups are used to organize agents and route tickets.

NameTypeRequiredDescription
pagenumberNoPage number for pagination
per_pagenumberNoNumber of groups per page (max 100)

Retrieve details of a specific Zendesk organization by ID. Returns organization name, domain names, tags, notes, shared ticket settings, and custom fields.

NameTypeRequiredDescription
includestringNoAdditional related data to include (e.g., lookup_relationship_fields)
organization_idnumberYesThe ID of the organization to retrieve

List all organizations in Zendesk with pagination support.

NameTypeRequiredDescription
pagenumberNoPage number for pagination
per_pagenumberNoNumber of organizations per page (max 100)

Search Zendesk tickets using a query string. Supports Zendesk’s search syntax (e.g., ‘type:ticket status:open’). Zendesk limits search results to 1,000 total — the maximum valid page is floor(1000 / per_page) (e.g., per_page=100 → max page 10, per_page=25 → max page 40). Stop paginating when next_page is null or you reach the max page; requesting beyond the limit returns a 400 error.

NameTypeRequiredDescription
pagenumberNoPage number for pagination. Max valid page = floor(1000 / per_page). Do not exceed this — Zendesk returns a 400 error beyond the 1,000 result limit.
per_pagenumberNoNumber of results per page (max 100). Determines the max page ceiling: floor(1000 / per_page). Higher values mean fewer pages but a lower max page number.
querystringYesSearch query string using Zendesk search syntax (e.g., ‘type:ticket status:open assignee:me’)
sort_bystringNoField to sort results by (updated_at, created_at, priority, status, ticket_type)
sort_orderstringNoSort direction: asc or desc (default: desc)

Retrieve a specific side conversation on a Zendesk ticket by its ID. Returns the side conversation’s state, subject, participants, preview text, and timestamps. Requires the Collaboration add-on.

NameTypeRequiredDescription
includestringNoSideloads to include alongside the response. Use ‘side_conversation_events’ to include the full event history of the side conversation.
side_conversation_idstringYesThe ID of the side conversation to retrieve
ticket_idnumberYesThe ID of the parent ticket

List all side conversations on a Zendesk ticket. Returns side conversations including their state, subject, participants, and preview text. Requires the Collaboration add-on.

NameTypeRequiredDescription
includestringNoSideloads to include alongside the response. Use ‘side_conversation_events’ to include the full event history for each side conversation.
ticket_idnumberYesThe ID of the ticket whose side conversations to list

Retrieve all comments (public replies and internal notes) for a specific Zendesk ticket. Returns comment body, author, timestamps, and attachments.

NameTypeRequiredDescription
includestringNoSideloads to include. Accepts ‘users’ to list email CCs.
include_inline_imagesbooleanNoWhen true, inline images are listed as attachments (default: false)
sort_orderstringNoSort direction for comments: asc or desc (default: asc)
ticket_idnumberYesThe ID of the ticket whose comments to list

Create a new support ticket in Zendesk. Requires a comment/description and optionally a subject, priority, assignee, and tags.

NameTypeRequiredDescription
assignee_emailstringNoEmail of the agent to assign the ticket to
comment_bodystringYesThe description or first comment of the ticket
prioritystringNoTicket priority: urgent, high, normal, or low
statusstringNoTicket status: new, open, pending, hold, solved, or closed
subjectstringNoThe subject/title of the ticket
tagsarray<string>NoList of tags to apply to the ticket
typestringNoTicket type: problem, incident, question, or task

Retrieve details of a specific Zendesk ticket by ID. Returns ticket properties including status, priority, subject, requester, assignee, and timestamps.

NameTypeRequiredDescription
includestringNoComma-separated list of sideloads to include (e.g., users, groups, organizations)
ticket_idnumberYesThe ID of the ticket to retrieve

Add a public reply or internal note to a Zendesk ticket. Set public to false for internal notes visible only to agents.

NameTypeRequiredDescription
bodystringYesThe reply message content (plain text, markdown supported)
publicbooleanNoWhether the comment is public (true) or an internal note (false). Defaults to true.
ticket_idnumberYesThe ID of the ticket to reply to

Update an existing Zendesk ticket. Change status, priority, assignee, subject, tags, or any other writable ticket field.

NameTypeRequiredDescription
assignee_emailstringNoEmail of the agent to assign the ticket to
assignee_idnumberNoID of the agent to assign the ticket to
group_idnumberNoID of the group to assign the ticket to
prioritystringNoTicket priority: urgent, high, normal, or low
statusstringNoTicket status: new, open, pending, hold, solved, or closed
subjectstringNoNew subject/title for the ticket
tagsarray<string>NoList of tags to set on the ticket (replaces existing tags)
ticket_idnumberYesThe ID of the ticket to update
typestringNoTicket type: problem, incident, question, or task

List tickets in Zendesk with sorting and pagination. Returns tickets for the authenticated agent’s account.

NameTypeRequiredDescription
pagenumberNoPage number for pagination
per_pagenumberNoNumber of tickets per page (max 100)
sort_bystringNoField to sort by: created_at, updated_at, priority, status, ticket_type
sort_orderstringNoSort direction: asc or desc (default: desc)

Create a new user in Zendesk. Can create end-users (customers), agents, or admins. Email is required for end-users.

NameTypeRequiredDescription
emailstringNoPrimary email address of the user
namestringYesFull name of the user
organization_idnumberNoID of the organization to associate the user with
phonestringNoPrimary phone number (E.164 format, e.g. +15551234567)
rolestringNoUser role: end-user, agent, or admin. Defaults to end-user.
verifiedbooleanNoWhether the user’s identity is verified. Defaults to false.

Retrieve details of a specific Zendesk user by ID. Returns user profile including name, email, role, organization, and account status.

NameTypeRequiredDescription
includestringNoComma-separated list of sideloads to include
user_idnumberYesThe ID of the user to retrieve

List users in Zendesk. Filter by role (end-user, agent, admin) with pagination support.

NameTypeRequiredDescription
pagenumberNoPage number for pagination
per_pagenumberNoNumber of users per page (max 100)
rolestringNoFilter by role: end-user, agent, or admin
sortstringNoField to sort by. Prefix with - for descending (e.g. -created_at)

List ticket views in Zendesk. Views are saved filters for organizing tickets by status, assignee, tags, and more.

NameTypeRequiredDescription
accessstringNoFilter by access level: personal, shared, or account
pagenumberNoPage number for pagination
per_pagenumberNoNumber of views per page (max 100)
sort_bystringNoField to sort by: title, updated_at, created_at, or position
sort_orderstringNoSort direction: asc or desc