Zendesk Support
The Zendesk Support connector reads and writes help desk records through the Zendesk Support REST API: tickets, the people who raise them, and their organizations. It connects to Zendesk Support, not Zendesk Sell.
When to use it
- You read tickets into a warehouse or a file to join them with billing, product or account data.
- You create or update tickets from another system, or mirror users and organizations from a system of record into Zendesk.
- You move users and organizations into Zendesk, or take records out.
What you need
- Your Zendesk subdomain.
- A Zendesk API token, and the email of the user it belongs to.
Zendesk Support offers an API token only.
The email is half the credential
Zendesk matches the email against the token's owner and signs every request with the pair. A token from a different user, or the right token with the wrong email, is rejected. If that user is deactivated in Zendesk, the connection stops working.
Find your subdomain
Sign in to Zendesk and look at the browser address bar. The label between
https:// and .zendesk.com is your subdomain. For
https://acme.zendesk.com/agent/dashboard that is acme. Enter the label alone.
A value with a dot, a slash, a colon or an at sign is refused.
Set up in Zendesk
- Sign in to Zendesk and note the subdomain in the address bar.
- In Zendesk, go to Admin Center > Apps and integrations > APIs and create an API token. Note which user it belongs to.
- In DataLug, add a Zendesk Support connection.
- Paste the API token, enter that user's email, and enter the subdomain.
- Click Test connection.
Connect
The connection form lists its steps on the left. Open any step from that list. The Environments step holds the values that differ per environment.
Test connection is in the form footer. Beside it, Test against picks Base, the connection as saved, or an environment, whose values are applied first.
| Field | Step | What to enter |
|---|---|---|
| Auth Type | Authentication | API Token. Zendesk Support offers an API token only. |
| Authentication | The email of the user the API token belongs to. | |
| API Token | Authentication | From Admin Center > Apps and integrations > APIs in Zendesk. |
| Subdomain | Connection | The label alone, such as acme. |
Stored secrets are never sent back to the browser. To change one, use Replace.
The subdomain and email stay readable.
Supported operations
| Action | Node | Operations |
|---|---|---|
| Query (Source) | Source node | Query, with an optional Filter and Limit |
| Load (Target) | Load node | Insert, Update, Delete |
Read and write. Ticket, User, Organization.
Read only. Group, Brand, Tag, Ticket Field, Ticket Form, Macro, View, Satisfaction Rating, Ticket Comment, and the Help Center objects Article, Category and Section.
- View lists the saved views your agents see. It does not filter other objects.
- Tag is a tag name and a usage count, keyed on the name.
- Writes go one record per request.
- Nested values are flattened to text. Lists become semicolon-separated values, HTML becomes its text, and other objects become JSON.
- Paging follows the next-page address Zendesk returns. An address on a host other than your subdomain is refused.
Not supported: Upsert, Batch write mode, incremental export, Sunshine custom objects, writing comments directly.
Filter a source
A Zendesk Source node shows a Filter box. Leave it blank to read everything. A filter uses Zendesk's search syntax, the same as the Zendesk search bar.
| Filter | What it reads |
|---|---|
created>2026-01-01 | Records created since that date |
updated>2026-09-01 status:open | Open records changed since September |
status<solved | Records not solved or closed |
tags:vip | Records with that tag |
- Ticket, User and Organization can be filtered. A filter on any other object stops the run with a message.
- A filtered read goes through Zendesk's search, which returns up to 1,000 results per query. To read everything, leave the box blank.
- DataLug does not track what a previous run read. Two runs with the same filter read the same records. Move the filter date to read only recent records.
Ticket comments
A comment exists only under its ticket, so DataLug reads the tickets first and then reads each ticket's comments.
- A Source node reading Ticket Comment needs a Filter or a Limit. The filter narrows the tickets, not the comments.
- Each comment row carries a
ticket_idcolumn. - A ticket whose comments cannot be read becomes a row with its id and a
dl_errorcolumn that says why. - Preview is not available for Ticket Comment.
- To add a comment, use Update on Ticket.
Limits
Zendesk limits Support API requests per minute by plan: for example 200 on Team, 400 on Professional and 700 on Enterprise, and 2,500 with the High Volume API add-on. The search endpoint has its own limit, which counts toward the account limit. See Zendesk's rate limits.
The API limits card has no default throttle for Zendesk Support. Set Requests per period to your plan's figure. Page size is at most 100.
The API limits card on the connection form is collapsed by default. Every field on it is optional, and a blank field uses the default shown below it.
| Setting | What it does | Default |
|---|---|---|
| Requests per period, Period | Paces outgoing calls. Set both to throttle. | No throttle, or the rate shown on the card. |
| Page size | Rows per request. A larger value is reduced to the provider's maximum. | The maximum shown on the card, or set by the provider. |
| Max attempts | Tries per call, including the first. | 3 |
| Cool-off (ms) | The first wait after a 429. Later waits grow from it. | 500 ms |
| Requests at once | Requests open at the same time within one run. | No limit |
A Retry-After header from the provider overrides the cool-off. The pace
applies per connection and is shared by every run on it. See
Run performance.
DataLug retries a call that the provider refused with 429, and a call that
could not connect. A read is also retried after a 408, a 5xx or a dropped
connection. A write is retried only after a 429 or a failed connection.
A Retry-After delay of up to one minute is honoured. A longer one fails the
call with the 429.
Troubleshooting
| What you see | What it means | What to try |
|---|---|---|
Add the subdomain to this Zendesk Support connection and save before testing. | Subdomain is blank or not a plain label. | Enter the label alone, such as acme. |
| The form reports Email as missing | Email is blank. It is required with the token. | Enter the email of the user the token belongs to. |
401 on test or on a run | The token is wrong, the email does not match its owner, or that user was deactivated. | Check the token in Zendesk under Admin Center > Apps and integrations > APIs. |
403 on one object but not others | The token's user lacks that role. | Tickets and users need agent access. Brands and groups need admin access. |
| A run returns no rows on an object you can see in Zendesk | The filter is narrower than expected. | Check the Filter box in Configure Action. |
Zendesk Support cannot filter ... | Zendesk's search does not cover that object. | Clear the filter, or pick Ticket, User or Organization. |
| A run on Ticket Comment asks for a filter or a row limit | Comments are read one ticket at a time. | Set a Filter, a Limit, or both. |
Some comment rows carry dl_error | Those tickets could not be read. | Read the message. It is often a permission on that ticket. |
| Article, Category or Section returns nothing | Help Center is not on the plan, or nothing is published. | Check Guide in Zendesk. |
429 Too Many Requests | Past your plan's per-minute limit. | The run backs off and retries. If it recurs, set Requests per period to your plan's figure. |
| A refusal about a next-page address on a different host | The response pointed outside your subdomain. | The read stopped. If it recurs, the account Owner emails DataLug support at support@datalug.io. |
| A ticket field maps but arrives empty, or a date arrives as text | The field type is not recognised and is read as text. | The account Owner emails DataLug support at support@datalug.io with the field name. |
Related
- Source node and Load node.
- Connections for environments and sharing.
- Jira Cloud.