CIIFragments Studio is CII-accredited: recover up to 20% of your software development spendLearn more

Integrator for Zendesk

Integrating the Zendesk API into your system

We wire Zendesk into your business application: tickets, users and organizations both ways, with product context on every case.

  • Senior product team
  • support connectors in production
  • from scoping to monitoring
In short

Why work with a Zendesk integrator and what can be connected to Zendesk?

Zendesk is one of the most widely used customer support platforms by growing companies for centralising client requests. A Zendesk integrator connects Zendesk to your application, CRM or data warehouse so tickets are automatically created with the full account context, updates in Zendesk are reflected in your software, and support data feeds your reporting. The work involves maintaining identifier consistency between Zendesk and your other systems, and preventing internal automations from overwriting each other.

Use cases

What a Zendesk integrator unlocks

01

Application incident, named ticket

Created from your product, external_id = incident id, organization = customer account. The agent and the user talk about the same file.

02

Status mirror in the portal

Requests API for the end-user, Tickets API for the internal agent. open, pending, solved: the customer sees state without opening Zendesk.

03

Support analytics warehouse

Incremental Tickets + Users, cursor, without burning the agent's quota. SLA, queues, CSAT in your BI, not in a Friday CSV export.

04

Users aligned with the CRM

Zendesk records follow the CRM without creating duplicates. Agent and sales talk about the same account.

For you

What this changes in your support

Engineering in service of a measurable outcome: a ticket without collision, product context, BI without CSV.

No more agent overwrites

When a Zendesk rule and your connector touch the same ticket, neither overwrites the other. The case stays coherent.

Support BI without Friday exports

Tickets and users feed your warehouse as they change. SLAs, queues and CSAT live in your BI.

The customer portal stays smooth

Updates are batched. You avoid saturating Zendesk during an escalation and blocking agents.

The Zendesk plan is scoped in the quote

Call volume depends on the Suite tier. We size the connector on your real plan, not an unlimited demo.

Method

How we ship your Zendesk connector

01

Scoping

Which flows, Tickets or Requests, real Suite plan, High Volume or not, GDPR (user = person). We list edge cases before writing a line of code.

02

Development

HMAC TIMESTAMP + raw body, Incremental cursor, per-user queue at 5 / min, aggregated ticket updates. Token bucket aligned on the plan.

03

Testing

Automation vs connector collision, SCRUBBED ticket, time-based duplicates, documented test secret. We replay the 429 on ticket update.

04

Monitoring

X-Rate-Limit, Retry-After, TooManyJobs, webhook invocations. You know a flow is broken before your agents do.

What the API allows

What the Zendesk API allows

Tickets and Requests
CRUD, create_many, merge, CCs, followers, custom fields, external_id. Statuses new, open, pending, hold, solved, closed. Types problem, incident, question, task.
Users and organizations
End-users, agents, admins. POST /api/v2/users/create_or_update at 5 / min / user. Incremental user export, same discipline as tickets.
Incremental Export
Cursor recommended for tickets and users. Time-based: expected duplicates, no gaps, last minute excluded. Deleted tickets stay exported, then SCRUBBED, then drop around 120 days.
Signed webhooks
CRUD, invocation monitoring. X-Zendesk-Webhook-Signature = base64(HMACSHA256(TIMESTAMP + BODY)). Trial: 10 webhooks, 60 invocations / min.
Glossary

Zendesk API vocabulary

Tickets vs Requests
Tickets: agent view, private comments included. Requests: end-user view, public comments only. A connector that mixes the two leaks internal notes.
safe_update
Conditional update with updated_stamp. Without it, an automation and your connector overwrite each other. That is the detail that separates a PoC from a multi-agent connector.
Incremental Export
Cursor-based recommended. Time-based: filter id+updated_at (duplicates), resume from end_time (no gaps), last-minute data excluded. This is not a paginated list.
X-Zendesk-Webhook-Signature
base64(HMACSHA256(TIMESTAMP + BODY)), plus X-Zendesk-Webhook-Signature-Timestamp. Public test secret: dGhpc19zZWNyZXRfaXNfZm9yX3Rlc3Rpbmdfb25seQ==.
external_id
Link between the Zendesk ticket and the business object (order, job site, serial number). Idempotency key at create time.
High Volume API
Add-on that raises the cap to 2,500 / min (Growth+ / Support Professional+, 10 seats min). It is not a bonus stacked on the Suite quota.
Good to know

The real constraints of the Zendesk API

01

30 updates / 10 minutes / ticket / agent

Plus 100 / min / account (300 with High Volume). A naive escalation workflow saturates this cap. We aggregate patches. This is the most misdiagnosed 429.

02

List all tickets is not the sync tool

Past page 500: 50 / min. The Tickets docs point to Incremental Export. A daily job on GET /tickets?page= is a documented anti-pattern.

03

create_or_update: 5 / min / user

Update User and create_or_update share this bucket. A CRM backfill is queued per user. Incremental users: 10 / min (30 with High Volume).

04

tags replaces the whole set

A naive PUT wipes tags set by agents. We re-read before write, or we send tags only when that is the intent. description is read-only; comment writes the first message.

Zendesk or Freshdesk

Zendesk API or Freshdesk API?

Two enterprise helpdesks. Zendesk weighs on export, safe_update and webhooks; Freshdesk on simpler CRUD and automations.

CriterionZendeskThis pageFreshdeskFreshworks helpdesk
Ticketsnew/open/pending/hold/solved/closedNumeric statuses 2/3/4/5
Stock syncIncremental Export (cursor)Paginated list, include billed
WebhooksAPI + HMAC SHA-256Automations, no dedicated v2 bus
Quota200 to 2,500 / min by Suite planRead from X-RateLimit-Total
IdentityUsers, create_or_update 5 / min / userContacts + Agents, 409 duplicate
Anti-collisionsafe_update + updated_stampBusiness idempotency
The right caseEnterprise support, warehouse, multi-agentFreshworks helpdesk already in place

The three (Zendesk, Freshdesk, Intercom) are not the same connector. Zendesk requires incremental export and safe_update. Freshdesk bills include. Intercom splits conversation and ticket. This is a scoping trade-off.

Our expertise

What we measure on a Zendesk integration

15 d
first ticket flow in production
0
list job past page 500
30/10
ticket updates aggregated under the cap
4
senior developers on the project
Compare

The other support APIs

If Zendesk is not the right foundation, these options are discussed at scoping.

We combine Zendesk with

The stack around Zendesk on our projects.

  • Salesforce
  • Slack
  • n8n
  • PostgreSQL
  • Node.js
FAQ

Zendesk integrator: your questions

A Zendesk integrator links Zendesk to your application, CRM and warehouse, rather than pasting a widget. API integration: OAuth Bearer or Basic email/token auth, ticket create with external_id, safe_update on every PATCH shared with automations, Incremental Export cursor for stock, HMAC webhooks for real time. We do not build a job on GET /tickets?page=. The hard part is not CRUD, it is the 30 updates / 10 min / ticket cap and the Suite bucket shared with the UI.

Align the token bucket on the real plan (Team 200, Growth and Professional 400, Enterprise 700, Enterprise Plus or High Volume 2,500 / min). Aggregate ticket updates under 30 / 10 min / agent. Per-user queue at 5 / min on create_or_update. Incremental at 10 / min (30 with High Volume). Read X-Rate-Limit and Retry-After. High Volume raises the cap to 2,500, it is not a stacked bonus. Help Center has a separate bucket.

Because the Tickets documentation points to Incremental Export, and the list past page 500 drops to 50 / min. Cursor-based export is built for stock: filter time-based duplicates (id + updated_at), no gaps if you resume from end_time, last-minute data excluded. Deleted tickets stay exported, then SCRUBBED, then drop around 120 days. A warehouse that ignores SCRUBBED is no longer a KYC source. That is the official page, rarely read end to end.

A first useful flow, typically creating a ticket from an application incident with external_id, ships in two to three weeks. A chain with webhooks, incremental, CRM upsert, Requests portal and automation anti-collision is closer to six to eight weeks: organization mapping and GDPR weigh as much as the code. safe_update is in the first increment, not a later fix. We scope the perimeter up front and give a firm estimate before starting.

Zendesk if enterprise support is already the system of record, and you want a warehouse plus a signed event bus. Freshdesk if the Freshworks helpdesk is in place and ticket + contact CRUD is enough, with automations. Intercom if the product lives in Messenger, Inbox tickets beside conversations, EU region. Treating the three as the same connector is the scoping trap: incremental export, billed include, and SHA-1 webhooks are not interchangeable details.

A Zendesk integrator project?

Let's talk. 30 minutes to scope your tickets, incremental export, and to tell you frankly what is feasible.

Discuss my Zendesk project
Discuss my Zendesk project