๐Ÿ”Œ Integrations & Telephony

Connecting Voice Agents to Zendesk

Zendesk is the dominant ticketing and support platform for mid-market and enterprise customer service, and it's where most voice agent-handled support interactions need to land.

Tyler Weitzman
Tyler Weitzman
March 24, 2026 ยท 6 min read
Speechify

Zendesk is the dominant ticketing and support platform for mid-market and enterprise customer service, and it's where most voice agent-handled support interactions need to land. Tickets created, updated, and routed through Zendesk with clean context from the voice agent turn into real operational leverage โ€” human agents pick up where the AI left off, reporting aggregates across channels, and the whole support function operates coherently. Miss the integration and you've got an AI siloed from the rest of support.

This piece covers the Zendesk integration patterns for voice AI, auth, ticket modeling, and the operational considerations.

TL;DR

  • Zendesk's REST API is well-documented; integration is less complex than Salesforce.
  • OAuth 2.0 or API Token auth depending on deployment model.
  • Model voice agent calls as Tickets with Call macros, or as separate Voice objects if using Zendesk Talk.
  • Use Triggers and Automations to route AI-created tickets to the right team.
  • Zendesk Talk is Zendesk's own voice channel; voice AI integrates with or alongside it.

The integration options

Ticket-based integration. Voice agent creates a Zendesk Ticket for each call that needs follow-up. Rich context in the ticket body, proper requester mapping, relevant tags. Works without Zendesk Talk.

Zendesk Talk integration. If using Zendesk Talk (Zendesk's voice product), voice AI calls can appear as Talk-channel tickets. Native to Zendesk's data model. Requires additional configuration.

Custom Objects. For deployments that need voice-specific data modeling beyond Tickets. Less common.

Most deployments start with Ticket-based and layer in Talk integration if and when it matters.

Authentication

API Token. Simplest. Admin creates an API token tied to a user account. Use token for Basic Auth with [email protected]/token as username and the token as password.

OAuth 2.0. Required for Marketplace apps. More complex; user-consented.

JWT. For SSO-integrated scenarios.

For most voice AI integrations, API Token auth is sufficient and clean.

The REST API basics

Base URL: https://{subdomain}.zendesk.com/api/v2/

Key endpoints:

  • POST /tickets.json โ€” create a ticket.
  • GET /tickets/{id}.json โ€” read a ticket.
  • PUT /tickets/{id}.json โ€” update a ticket.
  • GET /users/search.json?query=phone:+15551234567 โ€” find user by phone.
  • POST /users.json โ€” create a user.
  • POST /tickets/{id}/comments.json โ€” add a comment.

Documentation: Zendesk Developer portal. Version stable; API v2 has been current for years.

Lookup by phone number

Zendesk stores phone in the phone field on users. Search:

GET /users/search.json?query=phone:+15551234567

Returns matching users. Multiple matches possible โ€” most recent wins, or ask caller for email to disambiguate.

If no match, create the user before creating the ticket:

POST /users.json
{
  "user": {
    "name": "Jamie Patel",
    "phone": "+15551234567",
    "email": "[email protected]",
    "verified": false
  }
}

Creating tickets from calls

POST /tickets.json
{
  "ticket": {
    "subject": "Inbound support call โ€” account verification issue",
    "comment": {
      "body": "AI voice agent call at 2026-04-16 14:23 UTC.\n\nCaller: Jamie Patel (+15551234567).\nIssue summary: Can't log in after password reset.\n\nTranscript:\n[Full transcript]\n\nCalled handled by AI; escalated for tier-2 review.",
      "public": false
    },
    "requester_id": "{UserId}",
    "type": "question",
    "priority": "normal",
    "tags": ["voice-ai", "escalation", "login-issue"],
    "custom_fields": [
      {"id": 36000012345, "value": "ai-voice-agent"},
      {"id": 36000067890, "value": "3m 45s"}
    ]
  }
}

public: false makes the comment an internal note (not visible to the customer). Toggle based on use case.

Adding comments to existing tickets

If a caller is following up on an existing ticket:

POST /tickets/{id}/comments.json
{
  "comment": {
    "body": "Follow-up call from AI agent. Caller confirmed issue is resolved.",
    "public": false,
    "author_id": "{AgentUserId}"
  }
}

Escalation and routing

Zendesk uses Triggers and Automations for routing:

  • Triggers run on ticket creation/update. Route based on tags, subject, channel, etc.
  • Automations run on time-based conditions. Escalate after X hours.

Design tags and custom fields that Triggers can act on. Example:

  • Tag voice-ai โ†’ routes to voice-specialist team.
  • Custom field "Requires Human Review" = true โ†’ assigns to tier-2.
  • Priority = "urgent" โ†’ pages on-call.

Work with the Zendesk admin to set up or adjust Triggers for your voice AI workflow.

Zendesk Talk integration

For orgs using Zendesk Talk:

  • Voice AI can be configured as a Talk handler.
  • Inbound calls route through Talk with AI as first-line.
  • Talk tickets carry voice-specific fields (call duration, recording URL, etc.).
  • Reports aggregate voice + chat + email in one view.

Talk integration has more moving parts but native-feels once configured.

Custom fields

Most Zendesk orgs have custom fields:

  • Product area (multi-select).
  • Issue category (dropdown).
  • SLA tier (dropdown).
  • Voice-AI-specific: call duration, transcript URL, AI confidence, etc.

Get the list from the admin. Populate relevant fields on ticket creation.

Rate limits

Zendesk rate limits (2026):

  • Standard: 700 requests/minute per account (varies by plan).
  • Burst: higher briefly.
  • Concurrent: up to 20 parallel requests.

Implement retry with backoff on 429. Use bulk endpoints for large batches.

Macros

Zendesk macros are templated responses. Voice agents can apply macros when creating tickets to pre-fill common responses:

POST /tickets/{id}/macros/{macro_id}/apply.json

Useful for standardized handoffs (e.g., "Voice agent escalation โ€” requires tier-2 review").

Merging and deduplication

Voice agent creates a ticket. Turns out it's a duplicate of one from earlier today. Handling:

  • Check for existing open tickets before creating new.
  • If found and related, add as comment rather than creating new.
  • Merge ticket API if you need to consolidate later.

Duplicates frustrate support teams. Design for it.

Webhooks and real-time events

Zendesk webhooks fire on ticket events:

  • Ticket created.
  • Ticket updated.
  • Comment added.
  • Ticket assigned.

Useful for triggering downstream workflows (e.g., "new AI-created ticket โ†’ notify voice AI QA team in Slack").

Organizations

Zendesk Organizations group users:

  • B2B orgs often use Organization for each customer company.
  • Voice agent lookup can include Organization for context.
  • Permissions and views often filter by Organization.

For B2B voice AI, surface Organization context in the ticket.

Common pitfalls

User mismatching. Phone number match returns wrong person in families or shared phones. Confirm identity.

Tag proliferation. Over time, dozens of voice-AI-specific tags accumulate. Coordinate with admin.

Trigger loops. Bad trigger rules can create infinite update loops between AI writes and Zendesk automations.

Attachment handling. Voice AI might want to attach audio recording or transcript file. Zendesk supports attachments but has size limits.

Public vs private comments. Getting this wrong shows internal notes to customers or hides updates customers should see.

Integration architecture

Pattern:

  • Voice agent โ†’ middleware โ†’ Zendesk API.
  • Middleware handles auth, rate limiting, retries, field mapping.
  • Async batch writes for low-priority data (e.g., call analytics).
  • Sync writes for caller-visible actions.

Testing

  • Zendesk sandbox for development.
  • Test users and tickets not real customer data.
  • Integration user with minimum permissions.
  • Mock error scenarios โ€” rate limits, validation, auth failures.

FAQ

Do we need Zendesk Talk to integrate voice AI? No. Ticket-based integration works without Talk.

Can AI close tickets? Yes, if the call resolved the issue and it's safe to auto-close. Most deployments create with "open" and let humans confirm resolution.

What about Zendesk Sell (CRM)? Separate product with its own API. Integration pattern similar.

Can we route AI tickets to specific groups? Yes, via Triggers matching on tags or custom fields.

How do we handle voice recordings in Zendesk? Store recording URL in a custom field; link rather than attach to avoid size limits.

Tyler Weitzman
Tyler Weitzman
Co-Founder & Head of AI, Speechify

Tyler Weitzman is co-founder and Head of AI at Speechify. He has spent the past decade building the speech-synthesis stack that powers millions of users. Tyler writes about the engineering of real-time conversational systems โ€” text-to-speech, speech recognition, latency budgets, model serving, and the architectural choices that separate prototypes from production-grade voice agents.

More from Tyler Weitzman

View all โ†’

Related reading

Voice AI, twice a month.

Get the best of the SIMBA resources hub โ€” new articles, trend notes, and operator guides. No spam.