- Documentation
- Integrations
- Apps
- Zendesk integration
Zendesk integration
Triage tickets, sync end users and organizations, and react to support events in your clients' Zendesk accounts, with instant triggers TaskJuice sets up for you.
What it does
The Zendesk integration lets you run support automations for any client whose Zendesk Support account you manage. Connect an account once, then create, update, merge and tag tickets, post replies and internal notes, attach files, sync end users and organizations, and react the moment a ticket is created, changes status or gets a new comment. Every action runs against the client's own Zendesk subdomain, so a workflow you build for one client runs unchanged for the next.
Connect a Zendesk account
- In TaskJuice, add the connection from any Zendesk node in your workflow and choose Connect.
- Enter the client's Zendesk subdomain. This is the part before
.zendesk.comin their help center URL, for exampleacmeforacme.zendesk.com. - Sign in to Zendesk and approve access. To use triggers, sign in as a Zendesk admin. Only admins can manage webhooks, and TaskJuice registers one for you.
- TaskJuice returns you to the workflow with the connection ready to use.
Zendesk OAuth clients are created per Zendesk account. Add the client under Admin Center → Apps and integrations → APIs → OAuth clients in the account you're connecting, then add it to TaskJuice as your own OAuth client. You can revoke access from the same page.
Triggers
Instant triggers
Instant triggers need no setup in Zendesk. When you publish a workflow, TaskJuice registers one Zendesk webhook for the connected account. That webhook subscribes to every event your published Zendesk workflows use. TaskJuice removes it when no published workflow needs it anymore. You'll see it in Admin Center → Apps and integrations → Webhooks under the name TaskJuice.
Every instant trigger gets Zendesk's event envelope:
type: the event, for examplezen:event-type:ticket.status_changed.detail: the record the event is about. Ids arrive as strings, and ticket status and priority arrive in upper case.event: what changed. For a change event,event.currentandevent.previoushold the new and old values.
Tickets
- Ticket Created: a ticket is created on any channel.
- Ticket Status Changed: a ticket's status changes. Set New status to fire on just one target, for example Solved.
- Ticket Priority Changed, Ticket Assignee Changed, Ticket Group Changed
- Ticket Comment Added: a public reply or an internal note is added.
- Ticket Tags Changed: tags are added to or removed from a ticket.
People and organizations
- User Created, User Tags Changed
- Organization Created
Help Center
- Article Published, Article Comment Created
- Community Post Created, Community Post Comment Created
Polling triggers
Zendesk sends no webhook event for these, so TaskJuice checks for changes on the interval you set (every 5 minutes by default). Each check returns everything new as an items list. Add a Loop node to handle the items one at a time.
- Ticket Updated: any ticket that is new or has changed. For one specific change, an instant trigger like Ticket Status Changed is faster.
- New Ticket in View and Updated Ticket in View: pick a view. A ticket fires when it first appears in the view, or each time it changes while in it. In a view with more tickets than Max Per Cycle, a ticket that was already there when you published can fire as new the first time it's updated.
- New Suspended Ticket: email that Zendesk held back as possible spam.
- New Group, New View
Deprecated triggers
Ticket Updated (webhook) and Ticket Solved relied on a Zendesk trigger you built by hand. You can't add them to new workflows, and workflows that already use them no longer receive events. Rebuild those workflows on Ticket Updated (polling), or on Ticket Status Changed with New status set to Solved, then republish. Delete any webhook you created by hand in Zendesk for TaskJuice, because TaskJuice now registers its own.
Actions
Tickets
- Create Ticket, Get Ticket, Update Ticket, List Tickets, Delete Ticket
- Add Ticket Comment: posts a public reply or an internal note. To attach files, first use Upload Attachment and pass the tokens it returns in Uploads.
- List Ticket Comments: set the sort order to newest first to read the latest comment.
- Merge Tickets, List Tickets in View, Search
- Add Ticket Tags and Remove Ticket Tags change only the tags you list. Set Ticket Tags replaces the whole tag list.
- List Deleted Tickets, Restore Deleted Ticket, Permanently Delete Ticket. Permanent deletion can't be undone, so its approval setting can't be lowered.
- List Suspended Tickets, Recover Suspended Ticket
Users and organizations
- Create User, Get User, Update User, Delete User, List Users, Search Users
- Create or Update User: matches by email or external ID, so it works as find-or-create.
- Get User Related Data, List User Organizations
- Create Organization, Get Organization, Update Organization, Delete Organization, List Organizations, Search Organizations, Count Organizations, Get Organization Related Data
- Create or Update Organization: matches by external ID.
Groups, fields and side conversations
- Create Group, Get Group, Update Group, Delete Group, List Groups
- List Ticket Fields, Get Ticket Field, List Ticket Field Options, Create or Update Ticket Field Option, Delete Ticket Field Option
- Create Side Conversation, Reply to Side Conversation, Update Side Conversation, Get Side Conversation, List Side Conversations, List Side Conversation Events. Side conversations need Zendesk's Collaboration add-on.
Known limitations
- Zendesk limits API requests per minute by plan. TaskJuice retries
429responses and honorsRetry-After. See Zendesk rate limits. - Trial accounts can have at most 10 webhooks. TaskJuice uses one per connected account.
- Zendesk has no single "ticket updated" webhook event. That's why Ticket Updated polls, and why the instant ticket triggers each cover one kind of change.
- New Group reads Zendesk search, which can show a new group a few minutes late.
- Each Zendesk subdomain is a separate account and must be connected on its own.