Zendesk
Create, update and find Zendesk tickets, reply and add internal notes, apply macros, and manage users and organizations.
Connect Zendesk
- In the sidebar, open Connections and press Add connection.
- Type
zendeskand choose Zendesk. - Choose Sign in with Zendesk.
- Fill in Subdomain.
- Press Sign in with Zendesk at the bottom of the sheet, then choose your account in Zendesk’s window and allow access.
Before you sign in, the sheet asks:
- Subdomain · Required
Your Zendesk subdomain: acme for acme.zendesk.com.
Or choose Paste your API token, fill in Subdomain and API token, and press Test and save. It stays until someone deletes it.
Enter your Zendesk subdomain (the part before .zendesk.com), then sign in with Zendesk, or enter an agent’s email and an API token (Admin Center › Apps and integrations › APIs › API tokens). The connection acts with that agent’s role; managing webhooks needs an admin.
What if it says “Sign-in isn’t set up here yet”?
Signing in with Zendesk needs a Zendesk app on this installation, and it has none yet. Until it is set up, Paste your API token works without it.
On Cloud: The sheet says “It’s set up once for everyone who uses this service, not by an organization.”
Self-hosted: An admin of the installation sees Set up Zendesk sign-in instead, and sets it up once for everyone. Everyone else sees who to ask.
- Create an app in Zendesk’s developer settings (Zendesk’s guide).
- In GoRunner, copy the Redirect address to add in Zendesk’s developer settings, and add it to the app.
- Paste the Client ID and Client secret, then press Save and sign in.
Can I use my own Zendesk app?
Yes. In the sheet, open Use your own Zendesk app and paste its Client ID and Client secret. Add the redirect address it shows to your app first. The connection then signs in through your app instead of the installation’s.
Connections says how to sign in again, rename or delete it. In a product that embeds GoRunner, Add connection can be missing: then your provider makes connections for you.
Start a workflow
Add a trigger and choose Zendesk. The trigger uses the same connection as the steps.
On Ticket Created or Updated
Starts when a Zendesk ticket is created or updated and matches the conditions below, or on the Zendesk events you pick. Publishing the workflow adds a webhook (and, for ticket created/updated, a trigger rule) to your Zendesk account: an admin's connection is needed, and unpublishing removes them. Every delivery's signature (HMAC-SHA256 under the webhook's own secret) is checked and an unsigned one is refused; a signed retry is accepted for up to 24 hours, and Zendesk's retry of a delivery starts no second run. Ticket created/updated gets the ticket's ids, status, priority, type, tags and times (read its subject and comments with Zendesk › Ticket › Get); Zendesk events get the whole ticket, user or organization and the change.
- Trigger on · Required
Which changes start a run. Ticket, user or organization events: the Zendesk events picked below.
Options: Ticket created, Ticket updated, Ticket created or updated, Ticket, user or organization events.
Default: Ticket created.
- Zendesk events · Required
Which Zendesk events start a run. The filters below narrow ticket events.
Options: Ticket: created to Organization: external id changed (70 options).
Shows when Trigger on is Ticket, user or organization events.
- Status · Optional
Only tickets with this status (after the change).
Options: New, Open, Pending, On-hold, Solved, Closed.
- Priority · Optional
Only tickets with this priority.
Options: Urgent, High, Normal, Low.
- Type · Optional
Only tickets of this type.
Options: Problem, Incident, Question, Task.
- Tag · Optional
Only tickets that carry this tag.
- Group · Optional
Only tickets assigned to this group.
A later step can use its data, such as {{trigger.change}}, {{trigger.current_user}}, {{trigger.event}} and 4 more. See Use data from earlier steps.
Do things in Zendesk
Add a Zendesk step, choose a Resource, then an Operation. Choose a row to see its fields.
- TicketCreate · Get · Get Many · Update · Delete · Recover Suspended · Add Tags · Remove Tags
- Ticket CommentAdd · Get Many
- AttachmentUpload · Get
- Ticket FieldGet · Get Many
- UserCreate · Create or Update · Get · Get Many · Search · Update · Delete · Get Organizations · Get Related Data
- OrganizationCreate · Get · Get Many · Update · Delete · Count · Get Related Data
- MacroGet Many · Get · Apply to Ticket
- ViewGet Many · Get Tickets · Count Tickets
- SearchSearch
Later steps read a step’s output by its name: see Use data from earlier steps.
Limits
- A reply from Zendesk can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When Zendesk says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.
Not in your list? See When an app isn’t here.
For developers
In the API, which calls apps pieces, Zendesk is pieceId: "zendesk" with actionId: "zendesk", set by resource and an operation_… field, such as operation_attachment. Its trigger is zendesktrigger / zendesk_ticket. Get an app returns every field.
It can change something outside the run (writes_external). See How versions and side effects work.
Zendesk › Ticket
Create
- Description · Required
The ticket's first comment: what the requester asks.
- Subject · Optional
The ticket's subject line.
- Status · Optional
Empty: Zendesk's default (new) on create, unchanged on update.
Options: New, Open, Pending, On-hold, Solved, Closed.
- Priority · Optional
Options: Urgent, High, Normal, Low.
- Type · Optional
A task can have a due date; an incident can be linked to a problem.
Options: Problem, Incident, Question, Task.
- Requester Email · Optional
Who asks. Zendesk adds the person as an end user when the email is new. Empty on create: the connection's agent.
- Requester Name · Optional
The name for a requester Zendesk adds by email.
- Assignee ID · Optional
The agent the ticket is assigned to.
- Assignee Email · Optional
Or the assigned agent's email.
- Group · Optional
The group the ticket is assigned to.
- Organization ID · Optional
The organization the ticket belongs to (the requester must be in it).
- Tags · Optional
Tags, separated by commas. On update these REPLACE the ticket's tags; use Add Tags to keep the others.
- External ID · Optional
An id from another system, to find the ticket by.
- Due At · Optional
A task's due date and time (ISO 8601, such as 2026-11-07T17:00:00Z).
- CC Emails · Optional
Emails to copy on the ticket, separated by commas.
- Custom Fields · Optional
The ticket's custom field values by field id: {"360001234": "gold", "360005678": true} or [{"id": 360001234, "value": "gold"}]. Ticket Field › Get Many lists the ids.
Get and Delete
- Ticket Type · Optional
A ticket, or a suspended ticket (one Zendesk held back as possible spam).
Options: Ticket, Suspended ticket.
Default: Ticket.
- Ticket ID · Required
The ticket's number, or its link in Zendesk.
Get Many
- Ticket Type · Optional
A ticket, or a suspended ticket (one Zendesk held back as possible spam).
Options: Ticket, Suspended ticket.
Default: Ticket.
- Status · Optional
Only tickets with this status.
Options: New, Open, Pending, On-hold, Solved, Closed.
Shows when Ticket Type is Ticket.
- Group · Optional
Only tickets of this group.
Shows when Ticket Type is Ticket.
- Search · Optional
More criteria in Zendesk's search syntax, such as "priority>normal tags:vip requester:ada@example.com". Empty: every ticket.
Shows when Ticket Type is Ticket.
- Sort By · Optional
Return All with a status, group or search reads in the order tickets were created.
Options: Updated, Created, Priority, Status, Type.
Shows when Ticket Type is Ticket.
- Sort Order · Optional
Options: Ascending, Descending.
Shows when Ticket Type is Ticket.
- Return All · Optional
Read every ticket, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many tickets to return (1–2000).
Default: 50.
Shows when Return All is off.
Update
- Ticket ID · Required
The ticket's number, or its link in Zendesk.
- Comment · Optional
A comment to add with the update. Empty adds none.
- Public Comment · Optional
Off: the comment is an internal note only agents see.
On by default.
- Subject · Optional
The ticket's subject line.
- Status · Optional
Empty: Zendesk's default (new) on create, unchanged on update.
Options: New, Open, Pending, On-hold, Solved, Closed.
- Priority · Optional
Options: Urgent, High, Normal, Low.
- Type · Optional
A task can have a due date; an incident can be linked to a problem.
Options: Problem, Incident, Question, Task.
- Requester Email · Optional
Who asks. Zendesk adds the person as an end user when the email is new. Empty on create: the connection's agent.
- Requester Name · Optional
The name for a requester Zendesk adds by email.
- Assignee ID · Optional
The agent the ticket is assigned to.
- Assignee Email · Optional
Or the assigned agent's email.
- Group · Optional
The group the ticket is assigned to.
- Organization ID · Optional
The organization the ticket belongs to (the requester must be in it).
- Tags · Optional
Tags, separated by commas. On update these REPLACE the ticket's tags; use Add Tags to keep the others.
- External ID · Optional
An id from another system, to find the ticket by.
- Due At · Optional
A task's due date and time (ISO 8601, such as 2026-11-07T17:00:00Z).
- CC Emails · Optional
Emails to copy on the ticket, separated by commas.
- Custom Fields · Optional
The ticket's custom field values by field id: {"360001234": "gold", "360005678": true} or [{"id": 360001234, "value": "gold"}]. Ticket Field › Get Many lists the ids.
Recover Suspended
- Ticket ID · Required
The ticket's number, or its link in Zendesk.
Add Tags and Remove Tags
- Ticket ID · Required
The ticket's number, or its link in Zendesk.
- Tags · Required
Tags, separated by commas. Zendesk keeps tags lowercase, with no spaces.
Zendesk › Ticket Comment
Add
- Ticket ID · Required
The ticket's number, or its link in Zendesk.
- Comment · Required
The comment's text.
- Comment Is HTML · Optional
On: the comment is HTML (links, lists, formatting).
Off by default.
- Public · Optional
Off: an internal note only agents see. On: a reply the requester gets.
On by default.
- Author ID · Optional
Who writes it (a user id). Empty: the connection's agent.
- Attachments · Optional
Attach one file per row, or switch the field to an expression to pass a whole list from an earlier step (such as {{steps.unzip.files}}). Each file is uploaded to Zendesk and attached to the comment (Zendesk takes up to 50 MB a file).
- Upload Tokens · Optional
Tokens of files already uploaded (Attachment › Upload), separated by commas.
Get Many
- Ticket ID · Required
The ticket's number, or its link in Zendesk.
- Return All · Optional
Read every comment, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many comments to return (1–2000).
Default: 50.
Shows when Return All is off.
Zendesk › Attachment
Upload
- File · Required
Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). Zendesk keeps an upload for 60 minutes, until a comment uses its token.
- Add to Upload · Optional
An upload token to add this file to, so one token carries several files.
Get
- Attachment ID · Required
The attachment's id (a comment's attachments list it).
Zendesk › Ticket Field
Get
- Ticket Field ID · Required
The field's id.
Get Many
- Return All · Optional
Read every ticket field, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many ticket fields to return (1–2000).
Default: 100.
Shows when Return All is off.
Zendesk › User
Create and Create or Update
- Name · Optional
The person's name. Required to create one.
- Email · Optional
The person's primary email. Create or Update finds the user by it (or by External ID).
- Role · Optional
Empty: end user on create, unchanged on update.
Options: End user, Agent, Admin.
- Phone · Optional
- Organization ID · Optional
The person's (default) organization.
- External ID · Optional
An id from another system, to find the person by.
- Alias · Optional
The name shown to end users instead of an agent's real name.
- Details · Optional
Details about the person, such as an address.
- Notes · Optional
Notes only agents see.
- Tags · Optional
Tags, separated by commas (they replace the user's tags).
- Time Zone · Optional
such as Europe/Berlin.
- Locale · Optional
such as en-US or de.
- Verified · Optional
Mark the identity as verified, so no verification email is sent.
Options: Verified, Not verified.
- User Fields · Optional
Values of the account's custom user fields by key: {"plan": "gold"}.
Get, Delete and Get Related Data
- User ID · Required
The user's id, or their link in Zendesk.
Get Many
- Role · Optional
Only people with this role.
Options: End user, Agent, Admin.
- Return All · Optional
Read every user, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many users to return (1–2000).
Default: 50.
Shows when Return All is off.
Search
- Query · Optional
Text or Zendesk search criteria: a name, an email, or "email:ada@example.com". Empty: search by External ID.
- External ID · Optional
Find the user with this external id instead.
- Return All · Optional
Read every user, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many users to return (1–2000).
Default: 50.
Shows when Return All is off.
Update
- User ID · Required
The user's id, or their link in Zendesk.
- Name · Optional
The person's name. Required to create one.
- Email · Optional
The person's primary email. Create or Update finds the user by it (or by External ID).
- Role · Optional
Empty: end user on create, unchanged on update.
Options: End user, Agent, Admin.
- Phone · Optional
- Organization ID · Optional
The person's (default) organization.
- External ID · Optional
An id from another system, to find the person by.
- Alias · Optional
The name shown to end users instead of an agent's real name.
- Details · Optional
Details about the person, such as an address.
- Notes · Optional
Notes only agents see.
- Tags · Optional
Tags, separated by commas (they replace the user's tags).
- Time Zone · Optional
such as Europe/Berlin.
- Locale · Optional
such as en-US or de.
- Verified · Optional
Mark the identity as verified, so no verification email is sent.
Options: Verified, Not verified.
- User Fields · Optional
Values of the account's custom user fields by key: {"plan": "gold"}.
Get Organizations
- User ID · Required
The user's id, or their link in Zendesk.
- Return All · Optional
Read every user, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many users to return (1–2000).
Default: 50.
Shows when Return All is off.
Zendesk › Organization
Create
- Name · Optional
The organization's name (unique in the account). Required to create one.
- Details · Optional
Details such as an address.
- Notes · Optional
Notes only agents see.
- Domain Names · Optional
Email domains, separated by commas: people with an email there join the organization.
- Tags · Optional
Tags, separated by commas (they replace the organization's tags).
- External ID · Optional
An id from another system.
- Group · Optional
New tickets from its people go to this group.
- Shared Tickets · Optional
Whether its people see each other's tickets.
Options: Shared, Not shared.
- Organization Fields · Optional
Values of the account's custom organization fields by key: {"tier": "gold"}.
Get, Delete and Get Related Data
- Organization ID · Required
The organization's id, or its link in Zendesk.
Get Many
- Return All · Optional
Read every organization, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many organizations to return (1–2000).
Default: 50.
Shows when Return All is off.
Update
- Organization ID · Required
The organization's id, or its link in Zendesk.
- Name · Optional
The organization's name (unique in the account). Required to create one.
- Details · Optional
Details such as an address.
- Notes · Optional
Notes only agents see.
- Domain Names · Optional
Email domains, separated by commas: people with an email there join the organization.
- Tags · Optional
Tags, separated by commas (they replace the organization's tags).
- External ID · Optional
An id from another system.
- Group · Optional
New tickets from its people go to this group.
- Shared Tickets · Optional
Whether its people see each other's tickets.
Options: Shared, Not shared.
- Organization Fields · Optional
Values of the account's custom organization fields by key: {"tier": "gold"}.
Count
Nothing to fill in.
Zendesk › Macro
Get Many
- Active Only · Optional
Only macros that are switched on.
On by default.
- Return All · Optional
Read every macro, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many macros to return (1–2000).
Default: 50.
Shows when Return All is off.
Get
- Macro · Required
The macro.
Apply to Ticket
- Macro · Required
The macro.
- Ticket ID · Required
The ticket to apply the macro to.
Zendesk › View
Get Many
- Return All · Optional
Read every item, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many items to return (1–2000).
Default: 50.
Shows when Return All is off.
Get Tickets
- View · Required
The view.
- Return All · Optional
Read every item, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many items to return (1–2000).
Default: 50.
Shows when Return All is off.
Count Tickets
- View · Required
The view.
Zendesk › Search
Search
- Find · Required
What to search.
Options: Tickets, Users, Organizations, Groups.
Default: Tickets.
- Query · Required
Zendesk search syntax, such as "status<solved assignee:none" or "created>2026-10-01".
- Sort By · Optional
Return All (or a Limit above 1,000) reads in the order things were created.
Options: Updated, Created, Priority, Status, Type.
- Sort Order · Optional
Options: Ascending, Descending.
- Return All · Optional
Read every result, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many results to return (1–2000).
Default: 50.
Shows when Return All is off.