Reference · Tools
Zendesk
Manage Zendesk Support tickets, ticket fields, users, and organizations
The Zendesk node manages Support tickets, ticket fields, users and organizations. A typical build is creating a ticket from an inbound channel, setting the right fields, and updating it as the conversation moves through the queue.
- Node type
- Action
- Parameters
- 47
- Outputs
- Output, Error
- Credentials
- Zendesk
Zendesk
Manage Zendesk Support tickets, ticket fields, users, and organizations.
Overview
Zendesk is a customer service platform. This tool provides full CRUD operations for tickets (including suspended tickets), ticket fields, users, and organizations. It supports search, filtering, pagination, custom fields, internal notes, and public replies. Authentication is via Zendesk API token using Basic Auth with email/token credentials.
Category: Communication
Tool Name: zendesk
Version: 1
Appearance: Icon: si-zendesk | Color: #03363D
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Zendesk credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Ticket | ticket |
| Ticket Field | ticketField |
| User | user |
| Organization | organization |
Tickets are the means through which your end users communicate with agents in Zendesk Support. Ticket Field manages system and custom ticket fields. User and Organization manage those records.
Operations
| Operation | Value | Description |
|---|---|---|
| Create | create | Create a ticket |
| Delete | delete | Delete a ticket |
| Get | get | Get a ticket |
| Get Many | getAll | Get many tickets |
| Recover | recover | Recover a suspended ticket |
| Update | update | Update a ticket |
| Get Organizations | getOrganizations | Get a user’s organizations |
| Get Related Data | getRelatedData | Get data related to the user |
| Search | search | Search users |
| Count | count | Count organizations |
recover is Ticket-only. search, getOrganizations and the user form of getRelatedData are User-only. count and the organization form of getRelatedData are Organization-only. Ticket Field offers only get and getAll; User and Organization also offer create, delete, get, getAll and update against their own records.
Parameters
Organization: Count takes no parameters of its own — see All Operations.
Ticket: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Description | string | Yes | — | The first comment on the ticket. Supports expressions like {{ $json.body }}. |
| JSON Parameters | boolean | No | false | Whether to provide additional fields as raw JSON. |
| Additional Fields | collection | No | {} | Structured fields to set on the new ticket. (shown when JSON Parameters is false) |
| — Brand ID | number | No | 0 | Brand ID (for multi-brand Zendesk). Leave 0 to use default brand. |
| — Custom Fields | fixedCollection | No | {} | Values for custom ticket fields. |
| — — Field ID | options | No | — | Custom field ID. Find in Zendesk Admin > Manage > Ticket Fields. Loaded from your Zendesk instance. |
| — — Value | string | No | — | Custom field value. |
| — External ID | string | No | — | An ID you can use to link Zendesk Support tickets to local records. |
| — Group ID | string | No | — | The group this ticket is assigned to. Provide the group ID. Find in Zendesk Admin > People > Groups. |
| — Recipient | string | No | — | The original recipient email address of the ticket. |
| — Status | options | No | — | The state of the ticket. |
Options: closed, new, hold (on-hold), open, pending, solved | ||||
| — Subject | string | No | — | The value of the subject field for this ticket. |
| — Tags | string | No | — | Comma-separated list of tags applied to this ticket. |
| — Type | options | No | — | The type of this ticket. |
Options: question, incident, problem, task | ||||
| Additional Fields (JSON) | json | No | — | Raw JSON object of additional fields to set on the ticket. See https://developer.zendesk.com/rest_api/docs/support/tickets (shown when JSON Parameters is true) |
Ticket: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Ticket ID | string | Yes | — | The ID of the ticket to update. Supports expressions. |
| JSON Parameters | boolean | No | false | Whether to provide update fields as raw JSON. |
| Update Fields | collection | No | {} | Structured fields to change on the ticket. (shown when JSON Parameters is false) |
| — Assignee Email | string | No | — | The email address of the assignee. |
| — Brand ID | number | No | 0 | Brand ID (for multi-brand Zendesk). Leave 0 to use default brand. |
| — Custom Fields | fixedCollection | No | {} | Values for custom ticket fields. |
| — — Field ID | options | No | — | Custom field ID. Loaded from your Zendesk instance. |
| — — Value | string | No | — | Custom field value. |
| — External ID | string | No | — | An ID you can use to link Zendesk Support tickets to local records. |
| — Group ID | string | No | — | The group this ticket is assigned to. Provide the group ID. |
| — Internal Note | string | No | — | Internal ticket note (accepts HTML). Creates a private comment. |
| — Public Reply | string | No | — | Public ticket reply. Creates a public comment. |
| — Recipient | string | No | — | The original recipient email address of the ticket. |
| — Status | options | No | — | The state of the ticket. |
Options: closed, new, hold (on-hold), open, pending, solved | ||||
| — Subject | string | No | — | The value of the subject field for this ticket. |
| — Tags | string | No | — | Comma-separated list of tags applied to this ticket. |
| — Type | options | No | — | The type of this ticket. |
Options: question, incident, problem, task | ||||
| Update Fields (JSON) | json | No | — | Raw JSON object of fields to update on the ticket. (shown when JSON Parameters is true) |
Ticket: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Ticket Type | options | Yes | regular | Whether to operate on regular or suspended tickets. |
Options: regular, suspended | ||||
| Ticket ID | string | Yes | — | The ID of the ticket to retrieve. Supports expressions. |
Ticket: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Ticket Type | options | Yes | regular | Whether to operate on regular or suspended tickets. |
Options: regular, suspended | ||||
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 100 | Max number of results to return. (shown when Return All is false) |
| Options | collection | No | {} | Filtering and sorting for the ticket list. (hidden when Ticket Type is suspended) |
| — Group | string | No | — | Filter by group name or ID. Only for regular tickets. |
| — Query | string | No | — | Zendesk search query syntax to filter tickets. Only for regular tickets. |
| — Sort By | options | No | updated_at | Sort results by this field. |
Options: created_at, priority, status, ticket_type, updated_at | ||||
| — Sort Order | options | No | asc | Sort direction. |
Options: asc, desc | ||||
| — Status | options | No | — | Filter tickets by status. Only for regular tickets. |
Options: closed, new, hold (on-hold), open, pending, solved |
Ticket: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Ticket Type | options | Yes | regular | Whether to operate on regular or suspended tickets. |
Options: regular, suspended | ||||
| Ticket ID | string | Yes | — | The ID of the ticket to delete. Supports expressions. |
Ticket: Recover
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Suspended Ticket ID | string | Yes | — | The ID of the suspended ticket to recover. Supports expressions. |
Ticket Field: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Ticket Field ID | string | Yes | — | The ID of the ticket field to retrieve. Supports expressions. |
Ticket Field: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 100 | Max number of results to return. (shown when Return All is false) |
User: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Name | string | Yes | — | The user’s name. Supports expressions. |
| Additional Fields | collection | No | {} | Optional profile values for the new user. |
| — Alias | string | No | — | An alias displayed to end users. |
| — Custom Role ID | number | No | 0 | A custom role if the user is an agent on the Enterprise plan. |
| — Details | string | No | — | Any details you want to store about the user, such as an address. |
string | No | — | The user’s primary email address. | |
| — External ID | string | No | — | A unique identifier from another system. |
| — Locale | string | No | — | The user’s locale (e.g. en-us). Find available locales via Zendesk API: GET /api/v2/locales. |
| — Moderator | boolean | No | false | Whether the user has forum moderation capabilities. |
| — Notes | string | No | — | Any notes you want to store about the user. |
| — Only Private Comments | boolean | No | false | Whether the user can only create private comments. |
| — Organization ID | string | No | — | The ID of the user’s organization. Find via Zendesk Admin > People > Organizations. |
| — Phone | string | No | — | The user’s primary phone number. |
| — Report CSV | boolean | No | false | Whether the user can access the CSV report. |
| — Restricted Agent | boolean | No | false | Whether the agent has any restrictions. |
| — Role | options | No | — | The user’s role. |
Options: end-user, agent, admin | ||||
| — Signature | string | No | — | The user’s signature. Only agents and admins can have signatures. |
| — Suspended | boolean | No | false | Whether the agent is suspended. |
| — Tags | string | No | — | Comma-separated list of tags applied to this user. |
| — Ticket Restriction | options | No | — | Specifies which tickets the user has access to. |
Options: organization, groups, assigned, requested | ||||
| — Timezone | string | No | — | The user’s time zone. |
| — User Fields | fixedCollection | No | {} | Values of custom fields in the user’s profile. |
| — — Field Key | options | No | — | Custom user field key. Find in Zendesk Admin > Manage > User Fields. Loaded from your Zendesk instance. |
| — — Value | string | No | — | Value of the field. |
| — Verified | boolean | No | false | Whether the user’s primary identity is verified. |
User: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | The ID of the user to update. Supports expressions. |
| Update Fields | collection | No | {} | Values to change on the user. |
| — Alias | string | No | — | An alias displayed to end users. |
| — Custom Role ID | number | No | 0 | A custom role if the user is an agent on the Enterprise plan. |
| — Details | string | No | — | Any details you want to store about the user. |
string | No | — | The user’s primary email address. | |
| — External ID | string | No | — | A unique identifier from another system. |
| — Locale | string | No | — | The user’s locale (e.g. en-us). |
| — Moderator | boolean | No | false | Whether the user has forum moderation capabilities. |
| — Name | string | No | — | The user’s name. |
| — Notes | string | No | — | Any notes you want to store about the user. |
| — Only Private Comments | boolean | No | false | Whether the user can only create private comments. |
| — Organization ID | string | No | — | The ID of the user’s organization. |
| — Phone | string | No | — | The user’s primary phone number. |
| — Report CSV | boolean | No | false | Whether the user can access the CSV report. |
| — Restricted Agent | boolean | No | false | Whether the agent has any restrictions. |
| — Role | options | No | — | The user’s role. |
Options: end-user, agent, admin | ||||
| — Signature | string | No | — | The user’s signature. |
| — Suspended | boolean | No | false | Whether the agent is suspended. |
| — Tags | string | No | — | Comma-separated list of tags applied to this user. |
| — Ticket Restriction | options | No | — | Specifies which tickets the user has access to. |
Options: organization, groups, assigned, requested | ||||
| — Timezone | string | No | — | The user’s time zone. |
| — User Fields | fixedCollection | No | {} | Values of custom fields in the user’s profile. |
| — — Field Key | options | No | — | Custom user field key. Loaded from your Zendesk instance. |
| — — Value | string | No | — | Value of the field. |
| — Verified | boolean | No | false | Whether the user’s primary identity is verified. |
User: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | The ID of the user to retrieve. Supports expressions. |
User: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 100 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrows the user list. |
| — Roles | multiOptions | No | [] | Filter users by role. |
Options: end-user, agent, admin |
User: Search
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 100 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | What to search for. |
| — Query | string | No | — | Search query string. |
| — External ID | string | No | — | Search by external ID. |
User: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | The ID of the user to delete. Supports expressions. |
User: Get Related Data
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | The ID of the user to get related data for. Supports expressions. |
User: Get Organizations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | The ID of the user to get organizations for. Supports expressions. |
Organization: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Name | string | Yes | — | The name of the organization. Supports expressions. |
| Additional Fields | collection | No | {} | Optional values for the new organization. |
| — Details | string | No | — | Details about the organization, such as the address. |
| — Domain Names | string | No | — | Comma-separated domain names associated with this organization. |
| — Notes | string | No | — | Notes about the organization. |
| — Organization Fields | fixedCollection | No | {} | Values of custom fields in the organization’s profile. |
| — — Field Key | options | No | — | Organization field key. Find in Zendesk Admin > Manage > Organization Fields. Loaded from your Zendesk instance. |
| — — Value | string | No | — | Value of the field. |
| — Tags | string | No | — | Comma-separated list of tags applied to this organization. |
Organization: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Organization ID | string | Yes | — | The ID of the organization to update. Supports expressions. |
| Update Fields | collection | No | {} | Values to change on the organization. |
| — Details | string | No | — | Details about the organization. |
| — Domain Names | string | No | — | Comma-separated domain names associated with this organization. |
| — Name | string | No | — | The name of the organization. |
| — Notes | string | No | — | Notes about the organization. |
| — Organization Fields | fixedCollection | No | {} | Values of custom fields in the organization’s profile. |
| — — Field Key | options | No | — | Organization field key. Loaded from your Zendesk instance. |
| — — Value | string | No | — | Value of the field. |
| — Tags | string | No | — | Comma-separated list of tags applied to this organization. |
Organization: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Organization ID | string | Yes | — | The ID of the organization to retrieve. Supports expressions. |
Organization: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 100 | Max number of results to return. (shown when Return All is false) |
Organization: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Organization ID | string | Yes | — | The ID of the organization to delete. Supports expressions. |
Organization: Get Related Data
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Organization ID | string | Yes | — | The ID of the organization to get related data for. Supports expressions. |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. |
Output Data
Zendesk wraps each record in a named envelope (ticket, user, organization, …). The node unwraps it, so the record’s own fields land on the top level of the item JSON. Anything already on the item passes through, and binary data is forwarded unchanged.
| Operation | Output |
|---|---|
Ticket create, get, update | One item carrying the ticket. get on a suspended ticket falls back to the suspended-ticket record |
Ticket recover | One item carrying the recovered ticket |
Ticket delete, User delete, Organization delete | One item carrying success: true |
Ticket getAll, Ticket Field getAll, User getAll, User search, Organization getAll | Fans out — one output item per record |
Ticket Field get | One item carrying the ticket field |
User create, get, update | One item carrying the user |
User getRelatedData | One item carrying the user_related counts |
User getOrganizations | Fans out — one item per organization the user belongs to |
Organization create, get, update | One item carrying the organization |
Organization getRelatedData | One item carrying the organization_related counts |
Organization count | One item carrying the count object |
With Return All on, the node follows Zendesk’s next_page links until the list is exhausted.
Usage Examples
- Create a Zendesk support ticket
- Update ticket status to solved
- List all open tickets
- Create a new user in Zendesk
- Search users by email
- Create an organization
- Get organization related data
- Get all ticket fields
Example Configuration
Create a ticket with a subject, status and custom field:
{
"type": "zendesk",
"parameters": {
"resource": "ticket",
"operation": "create",
"description": "Customer is experiencing login issues",
"jsonParameters": false,
"additionalFields": {
"subject": "Login Problem - Urgent",
"status": "open",
"type": "problem",
"tags": "login,urgent,customer-support",
"customFieldsUi": {
"customFieldsValues": [
{ "id": "12345", "value": "High Priority" }
]
}
}
}
}
Solve a ticket with a public reply:
{
"type": "zendesk",
"parameters": {
"resource": "ticket",
"operation": "update",
"id": "67890",
"jsonParameters": false,
"updateFields": {
"status": "solved",
"publicReply": "Issue has been resolved. Please let us know if you experience any further problems.",
"assigneeEmail": "agent@company.com"
}
}
}
Use raw JSON for a complex update:
{
"type": "zendesk",
"parameters": {
"resource": "ticket",
"operation": "update",
"id": "12345",
"jsonParameters": true,
"updateFieldsJson": "{\"status\":\"solved\",\"custom_fields\":[{\"id\":123,\"value\":\"resolved\"}],\"comment\":{\"body\":\"Ticket resolved via API\",\"public\":false}}"
}
}
List open tickets, newest first:
{
"type": "zendesk",
"parameters": {
"resource": "ticket",
"operation": "getAll",
"ticketType": "regular",
"returnAll": false,
"limit": 50,
"options": {
"status": "open",
"sortBy": "updated_at",
"sortOrder": "desc",
"query": "priority:high"
}
}
}
Create a user with a custom user field:
{
"type": "zendesk",
"parameters": {
"resource": "user",
"operation": "create",
"name": "John Doe",
"additionalFields": {
"email": "john.doe@example.com",
"role": "end-user",
"organization_id": "12345",
"phone": "+1-555-0123",
"time_zone": "America/New_York",
"verified": true,
"userFieldsUi": {
"userFieldValues": [
{ "field": "department", "value": "Engineering" }
]
}
}
}
}
Search users:
{
"type": "zendesk",
"parameters": {
"resource": "user",
"operation": "search",
"returnAll": false,
"limit": 25,
"filters": {
"query": "role:agent status:active",
"external_id": "EMP001"
}
}
}
Create an organization:
{
"type": "zendesk",
"parameters": {
"resource": "organization",
"operation": "create",
"name": "Acme Corporation",
"additionalFields": {
"domain_names": "acme.com,acme.org",
"details": "Large enterprise customer",
"notes": "VIP customer - priority support",
"tags": "enterprise,vip,priority",
"organizationFieldsUi": {
"organizationFieldValues": [
{ "field": "industry", "value": "Technology" }
]
}
}
}
}
Read an organization’s related counts:
{
"type": "zendesk",
"parameters": {
"resource": "organization",
"operation": "getRelatedData",
"id": "98765"
}
}
Fetch every pending ticket for downstream processing — this node emits one item per ticket:
{
"type": "zendesk",
"parameters": {
"resource": "ticket",
"operation": "getAll",
"ticketType": "regular",
"returnAll": true,
"options": {
"status": "pending",
"sortBy": "created_at",
"sortOrder": "asc"
}
}
}
Update a ticket from the item flowing in:
{
"type": "zendesk",
"parameters": {
"resource": "ticket",
"operation": "update",
"id": "{{ $json.id }}",
"jsonParameters": false,
"updateFields": {
"internalNote": "Automated triage note for {{ $json.subject }}"
}
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Manage Zendesk Support tickets, ticket fields, users, and organizations via the Zendesk API. Use for customer service workflow automation.
Record IDs
Every resource’s record ID is written as id in a JSON config — Ticket ID, Suspended Ticket ID, User ID and Organization ID all map to the same id parameter. The exception is Ticket Field ID, which is written as ticketFieldId.
JSON vs Structured Parameters
Turn JSON Parameters on for complex or dynamic ticket updates — raw JSON reaches parts of the ticket payload the structured fields do not, such as nested comment objects and arrays of custom_fields. Leave it off for everyday field-by-field edits.
Error Handling Considerations
- Always validate ticket/user/organization IDs exist before update/delete operations
- Use the appropriate Ticket Type when working with suspended tickets — the Options collection is hidden for suspended tickets because those filters apply to regular tickets only
- Consider pagination with Return All off for large datasets
- Custom fields require proper field IDs from your Zendesk instance
Rate Limits
When Zendesk answers 429 or 503, the node waits and retries up to three times, honouring the Retry-After header (seconds or HTTP-date) and capping the wait at 60 seconds; without a header it backs off 1s, 2s, then 4s.
Frequently asked questions
Which parameter holds a record's ID?
Every resource's record ID is written as `id` in a JSON config — Ticket ID, Suspended Ticket ID, User ID and Organization ID all map to it. The exception is Ticket Field ID, which is `ticketFieldId`.
What can it manage besides tickets?
Ticket fields, users and organizations, so both the cases and the structures around them are reachable.
How do I react to ticket activity?
Use the Zendesk Trigger, which fires on ticket events matching conditions you define.
Which credential does it need?
A Zendesk credential.
Build with the Zendesk node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Zendesk credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.