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 uses Zendesk API token authentication (email + API token).

1

Enable API token access

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

2

Generate an API token

Go to Apps and integrations > APIs > API tokens and click Add API token. Copy the token immediately — it will not be shown again after you close 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.

How it works

1

Ticket management

The agent creates, updates, and searches tickets during a conversation — adding comments, changing status, assigning tickets, and managing tags. Bulk operations on up to 100 tickets at a time are supported.

2

Customer lookup

The agent searches for users by email or phone, retrieves their ticket history, and creates new user records when needed.

3

Call logging

For voice-based interactions, the agent logs call activity directly in Zendesk and checks agent availability.

Example system prompt

You are a helpful support agent responsible for gathering information
from users and creating support tickets. Be friendly, precise, and
concise.
Begin by asking for a detailed description of the problem. Then, ask
relevant support questions to gather additional details, one question
at a time, and wait for the user's response before proceeding.
Once you have a description of the issue, say you will check if there
are similar issues and any known resolutions. Search for resolved
tickets with similar issues and review their comments to find
relevant learnings.
After this, tell the customer the recommended resolution from a
previous similar issue. If they have already tried it or still want
to move forward, proceed to ticket creation. Only provide resolution
advice derived from previous ticket comments.
After capturing the support issue, gather the following contact
details:
- The user's name
- A valid email address (note: the email may be transcribed from
voice, so ensure it is formatted correctly)
- Read the email back to the caller to confirm accuracy
Once the email is confirmed, explain that you will create the ticket.
Create the ticket with all relevant issue details in the comment body.
Thank the customer and say support will be in touch.
Clarifications:
- Do not inform the user that you are formatting the email; simply
do it.
- If the caller asks you to move forward with creating the ticket,
do so with the existing information.
Guardrails:
- Do not speak about topics outside of support issues.

Legacy webhook setup

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 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.

Evaluation configuration

Configure evaluation criteria and data collection parameters in the Analysis tab to monitor customer interactions.

Evaluation criteria for support interactions
Track how well the AI agent performs against key evaluation criteria like issue relevance, sentiment, and resolution success.

Monitoring results

After setting up the integration, review conversation summaries and evaluation data in the ElevenLabs dashboard to track agent performance.

Support agent conversation summary
Get a high-level overview of each conversation and listen to the conversation's audio recording.
Evaluation criteria for support interactions
Track how well the AI agent performs against key evaluation criteria like issue relevance, sentiment, and resolution success.
Data collection parameters from conversation transcripts
Monitor the data collected during each interaction, including tools used, issue details, and customer information.
Detailed conversation transcript example
Review detailed transcripts of conversations to understand agent performance, tool usage and customer interactions.

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 the you cannot save the trigger because an action is missing, add a simple action like adding a “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 you 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.

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)