Zendesk

Connect your ElevenLabs agents with Zendesk Support

Overview

Connect your ElevenLabs AI agents with Zendesk to manage support tickets, users, and organizations. This integration enables your agents to create and update tickets, search for existing records, manage users, and respond to incoming ticket comments.

Setup

This integration supports two authentication methods: API token and OAuth client.

1

Enable API token access

In Zendesk Admin Center, go to Apps and integrations > APIs > Zendesk API and enable Token Access.

2

Generate an API token

Go to Apps and integrations > APIs > API tokens and click Add API token. Copy the token immediately — it is not shown again after closing the dialog.

3

Find your subdomain

Your Zendesk subdomain is the first part of your Zendesk URL (e.g., mycompany from mycompany.zendesk.com).

4

Connect in ElevenLabs

In the ElevenLabs integration setup, enter your email, API token, and subdomain.

Zendesk tools

Add Zendesk tools to your agent to manage tickets, users, and organizations during conversations. Once the integration is connected, you can enable individual tools on your agent’s configuration page.

Available tools

The integration provides over 30 tools organized into the following categories:

  • Tickets — create, update, delete, list, and search tickets. Bulk operations (create many, update many, delete many) are also available.
  • Comments & tags — add public or internal comments to tickets, and add or remove tags.
  • Users — look up, create, update, and delete users. Bulk create-or-update is supported for syncing user data.
  • Organizations — retrieve organization details and list an organization’s tickets.
  • Search — run Zendesk search queries across tickets, users, and organizations (e.g., type:ticket status:open).

Example tools

Creates a new support ticket. The agent collects details from the caller and opens a ticket on their behalf.

ParameterTypeDescription
ticket.subjectstringShort subject line for the ticket
ticket.comment.bodystringDetailed description of the issue
ticket.requester.emailstringRequester’s email address
ticket.requester.namestringRequester’s full name
ticket.prioritystringurgent, high, normal, or low
ticket.statusstringnew, open, pending, hold, solved, or closed
ticket.assignee_idintegerAgent ID to assign the ticket to
ticket.group_idintegerGroup ID to route the ticket to
ticket.custom_fieldsarrayArray of {id, value} objects for custom fields

Configuring tools

1

Add an integration tool

On your agent’s configuration page, click Add tool and select Add integration tool.

Add integration tool
2

Select Zendesk tools

Choose your Zendesk connection and toggle the tools you want the agent to use. You can enable as many or as few as needed — for example, a read-only triage agent might only need search and list tools, while a full-service agent might also create and update tickets.

Select Zendesk tools
3

(Optional) Provide parameters

Each tool’s parameters are filled by the agent during the conversation based on what the caller says. You do not need to hard-code parameter values. However, you can optionally pre-fill or constrain specific parameters — for example, setting a default priority or group_id — to guide the agent’s behavior.

If you use the native Zendesk integration, tools are configured automatically. The steps below apply only to manual webhook setup.

Zendesk Integration Demo (legacy webhook tools)

The legacy integration uses three webhook tools to create the support agent. Review each tool’s configuration in the tabs below.

Name: zendesk_get_ticket_comments Description: Retrieves the comments of a ticket. Method: GET URL: https://acmecorp.zendesk.com/api/v2/tickets/{ticket_id}/comments.json

Headers:

  • Content-Type: application/json
  • Authorization: (Secret: zendesk_key)

Path Parameters:

  • ticket_id: Extract the value from the id field in the get_resolved_tickets results.

Tool JSON:

1{
2 "type": "webhook",
3 "name": "zendesk_get_ticket_comments",
4 "description": "Retrieves the comments of a ticket.",
5 "api_schema": {
6 "url": "https://acmecorp.zendesk.com/api/v2/tickets/{ticket_id}/comments.json",
7 "method": "GET",
8 "path_params_schema": [
9 {
10 "id": "ticket_id",
11 "type": "string",
12 "description": "Extract the value from the id field in the get_resolved_tickets results.",
13 "dynamic_variable": "",
14 "constant_value": "",
15 "required": false,
16 "value_type": "llm_prompt"
17 }
18 ],
19 "query_params_schema": [],
20 "request_body_schema": null,
21 "request_headers": [
22 {
23 "type": "secret",
24 "name": "Authorization",
25 "secret_id": "zendesk_api_token"
26 },
27 {
28 "type": "value",
29 "name": "Content-Type",
30 "value": "application/json"
31 }
32 ]
33 },
34 "response_timeout_secs": 20,
35 "dynamic_variables": {
36 "dynamic_variable_placeholders": {}
37 }
38}
Ensure that you add your workspace’s Zendesk secret to the agent’s secrets.

Zendesk triggers

Configure Zendesk triggers to have your agent monitor and react to incoming ticket comments, providing first-line support.

Setup

1

Create a trigger in Zendesk

In Zendesk Admin Center, go to Objects and rules > Business rules > Triggers and click Add trigger. Configure the conditions that determine which ticket events the agent should respond to (e.g., new tickets in a specific group, ticket comments with a certain tag). Note the trigger name — you will need it in the next step.

If you cannot save the trigger because an action is missing, add a simple action like adding an “agent is processing” tag to the ticket.

2

Connect the trigger in ElevenLabs

On your agent’s configuration page, add a new trigger and select Zendesk Trigger. Configure the fields:

  • Agent: the agent that handles incoming conversations.
  • Trigger Rule Name: the name of the Zendesk trigger you created in the previous step.
  • Daily Ticket Limit (optional): maximum number of tickets the agent handles per day. Leave empty for unlimited.

When you activate the trigger, ElevenLabs creates a webhook in your Zendesk account and adds it as an action to the trigger you specified. Deactivating the trigger removes the webhook and action.

3

(Optional) Check your trigger in Zendesk

In Zendesk Admin Center, go to Objects and rules > Business rules > Triggers and view your previously created trigger. You should see a new action added to it.

If you created another action previously, you can now remove it again.

Shadow mode

Enable shadow mode on a Zendesk trigger to let the agent observe and draft responses without replying to customers directly. When shadow mode is active, the agent writes its responses as internal comments on the ticket instead of public replies. Only Zendesk agents and admins can see internal comments — the end user is not notified.

Shadow mode only affects how the agent posts its responses. If the agent uses tools that modify the ticket (e.g., changing status, adding tags, or assigning the ticket), those changes still apply. To prevent unintended modifications, use a separate branch of the agent with modifying tool calls removed.

Shadow mode is useful for evaluating agent quality before going live. Review the internal comments alongside the actual support responses to compare accuracy and tone, then promote the agent to active mode once you are confident in its output.

Avoiding loops

When the agent responds to a ticket comment via the Zendesk API, that response is itself a new comment — which can re-trigger the agent and create an infinite loop. Add either of the following conditions to your Zendesk trigger to prevent this.

Exclude the service account from the trigger. Create a separate Zendesk user for the integration (e.g., ai-agent@yourcompany.com) and use this account’s credentials when connecting in ElevenLabs. Then add this condition to your Zendesk trigger:

  • Current User, Is Not, <your service account>

Exclude API updates from the trigger. This filters out all updates made through the Zendesk API, regardless of which user made them:

  • Ticket > Update Via, Is Not, Web Service (API)