# Zendesk
URL: /reference/blocks/zendesk
Type: reference
Description: Work with Zendesk tickets, users, organizations, macros, custom objects, and conversations
Keywords: zendesk, integrations, block, workflow builder
`zendesk` — Work with Zendesk tickets, users, organizations, macros, custom objects, and conversations.

Where it appears [#where-it-appears]

The **Zendesk** block lives in the **Integrations** group of the Workflow Builder. Connect the Zendesk integration before adding it.

Fields [#fields]

| Field             | Type                                   | Required | Default  | Description                                                                                                                                                                                      |
| ----------------- | -------------------------------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `resource`        | select                                 | Yes      | `ticket` | Which Zendesk resource to work with. Options: `ticket`, `comment`, `user`, `organization`, `group`, `agent`, `tag`, `macro`, `custom-object`, `custom-object-record`, `conversation`.            |
| `operation`       | select                                 | Yes      | —        | Which action to perform on the selected resource.                                                                                                                                                |
| `ticketId`        | text (supports references)             | Yes      | —        | Numeric Zendesk ticket ID. Use a literal number or \<StepName.field> to reference an ID from a previous step.                                                                                    |
| `limit`           | number                                 | No       | `50`     | Maximum number of comments to return, most recent first. Defaults to 50.                                                                                                                         |
| `subject`         | text (supports references)             | Yes      | —        | Subject line for the new Zendesk ticket. Use literal text or \<StepName.field> to reference a value from a previous step.                                                                        |
| `description`     | text (multi-line, supports references) | Yes      | —        | Body of the new ticket, used as the first comment. Use literal text or \<StepName.field> to reference a value from a previous step.                                                              |
| `actions`         | actions                                | No       | —        | Optional ticket fields to set when creating the ticket. Each action sets one property; requester, priority, type, and tags can each be added once.                                               |
| `addComment`      | text (multi-line, supports references) | No       | —        | Markdown is rendered to Zendesk HTML: **bold**, lists (`- `), blockquotes (`&gt; `), links (`[label](url)`). Single newlines preserved.                                                          |
| `isPublic`        | select                                 | No       | `true`   | Whether the closing message is posted as a public reply visible to the customer or as an internal note visible to agents only. Options: `true`, `false`.                                         |
| `priority`        | select                                 | Yes      | —        | Priority level to apply. Urgent triggers SLA breach notifications; use it for customer-impacting issues requiring immediate attention. Options: `low`, `normal`, `high`, `urgent`.               |
| `ticketType`      | select                                 | Yes      | —        | Zendesk ticket type to apply. Incidents can be linked to a Problem; question and task are standalone classifications. Options: `problem`, `incident`, `question`, `task`.                        |
| `query`           | text (supports references)             | Yes      | —        | Zendesk search query using the Search API syntax (e.g. `status:open assignee:me`). Use literal text or \<StepName.field> to inject a value from a previous step.                                 |
| `sortBy`          | select                                 | No       | —        | Field used to sort the matching tickets. Options: `created_at`, `updated_at`, `priority`, `status`.                                                                                              |
| `sortOrder`       | select                                 | No       | —        | Direction to sort results: ascending or descending by the selected sort field. Options: `asc`, `desc`.                                                                                           |
| `assigneeId`      | text (supports references)             | No       | —        | Numeric Zendesk user ID of the agent to assign the ticket to. Use a literal ID or \<StepName.field> from a previous step.                                                                        |
| `groupId`         | text (supports references)             | No       | —        | Numeric Zendesk group ID to route the ticket to. Use a literal ID or \<StepName.field> from a previous step.                                                                                     |
| `comment`         | text (multi-line, supports references) | Yes      | —        | Markdown is rendered to Zendesk HTML: **bold**, lists (`- `), blockquotes (`&gt; `), links (`[label](url)`). Single newlines preserved as line breaks. Avoid `#` headers — use **bold** instead. |
| `public`          | select                                 | No       | `true`   | Whether the comment is sent as a public reply visible to the customer or as an internal note visible to agents only. Options: `true`, `false`.                                                   |
| `authorId`        | select                                 | No       | —        | Pick a Zendesk agent/admin, choose Current User (assist workflows only), or reference an upstream variable. Leave blank to inherit the brand or organization default.                            |
| `userId`          | text (supports references)             | Yes      | —        | Numeric Zendesk user ID to fetch. Use a literal number or \<StepName.field> to reference an ID from a previous step (e.g. a ticket's requester\_id).                                             |
| `name`            | text (supports references)             | Yes      | —        | Display name for the new Zendesk user. Use literal text or \<StepName.field> to reference a value from a previous step.                                                                          |
| `email`           | text (supports references)             | Yes      | —        | Primary email address for the new user; used as the identity for matching. Accepts literal text or \<StepName.field>.                                                                            |
| `phone`           | text (supports references)             | No       | —        | Optional phone number to attach to the user. Accepts literal text or \<StepName.field>.                                                                                                          |
| `role`            | select                                 | No       | —        | Zendesk role for the new user. End users are customers; agents and admins are staff with access to the agent interface. Options: `end-user`, `agent`, `admin`.                                   |
| `tags`            | text (supports references)             | No       | —        | Optional comma-separated tags to apply to the new user. Accepts literal text or \<StepName.field>.                                                                                               |
| `organizationId`  | text (supports references)             | Yes      | —        | Numeric Zendesk organization ID to fetch. Use a literal number or \<StepName.field> to reference an ID from a previous step (e.g. a user's organization\_id).                                    |
| `macroId`         | text (supports references)             | Yes      | —        | Numeric Zendesk macro ID whose actions should be applied to the ticket. Use a literal ID or \<StepName.field>.                                                                                   |
| `customObjectKey` | text (supports references)             | Yes      | —        | The key of the Zendesk custom object type to read from (e.g. `home_delivery_order`). Accepts literal text or \<StepName.field>.                                                                  |
| `recordId`        | text (supports references)             | Yes      | —        | ID of the custom object record to fetch. Use a literal ID or \<StepName.field> to reference an ID from a previous step.                                                                          |
| `sort`            | text (supports references)             | No       | —        | Optional sort field; prefix with `-` for descending order (e.g. `-updated_at`). Accepts literal text or \<StepName.field>.                                                                       |
| `pageSize`        | text (supports references)             | No       | —        | Optional number of records to return per page. Accepts a literal number or \<StepName.field>.                                                                                                    |
| `externalId`      | text (supports references)             | No       | —        | Optional external identifier to associate with the record for cross-system matching. Accepts literal text or \<StepName.field>.                                                                  |
| `customFields`    | code                                   | No       | —        | JSON object of custom object field keys to values for the new record (e.g. `&#123; "field_key": "value" &#125;`).                                                                                |
| `fieldId`         | text (supports references)             | Yes      | —        | Numeric ID of the lookup-relationship ticket field to set. Use a literal ID or \<StepName.field>.                                                                                                |
| `lookupValue`     | text (supports references)             | Yes      | —        | Identifies the custom object record to link: a record ID, or `name:VALUE` / `external_id:VALUE` to match by name or external ID. Accepts literal text or \<StepName.field>.                      |
| `conversationId`  | text (supports references)             | Yes      | —        | Sunshine Conversations conversation ID to post the message to. Use a literal ID or \<StepName.field> from a previous step.                                                                       |
| `text`            | text (multi-line, supports references) | Yes      | —        | Business-authored message text delivered to the customer on the messaging channel. Use literal text or \<StepName.field> to reference upstream content.                                          |
| `metadata`        | code                                   | No       | —        | Optional metadata to attach to the passControl event.                                                                                                                                            |

Inputs and outputs [#inputs-and-outputs]

Inputs are the configurable fields above. The block produces these outputs:

**Outputs**

Reference an output downstream with `<Zendesk.field>`.

| Name            | Type    | Description                                                                                                                                                                                           |
| --------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `success`       | boolean | Success status                                                                                                                                                                                        |
| `ticket`        | json    | Zendesk ticket object (object — fields: `id`, `subject`, `description`, `status`, `priority`, `type`, `tags`, `requester_id`, `assignee_id`, `group_id`, `custom_fields`, `created_at`, `updated_at`) |
| `error`         | string  | Error message if failed                                                                                                                                                                               |
| `context`       | json    | Complete ticket context (object — fields: `ticket`, `conversation`, `customer`, `assignee`, `organization`)                                                                                           |
| `comments`      | array   | Comments array                                                                                                                                                                                        |
| `count`         | number  | Number of comments                                                                                                                                                                                    |
| `tickets`       | array   | Array of matching tickets                                                                                                                                                                             |
| `user`          | json    | User object                                                                                                                                                                                           |
| `organization`  | json    | Organization object                                                                                                                                                                                   |
| `groups`        | array   | Array of groups                                                                                                                                                                                       |
| `agents`        | array   | Array of agents                                                                                                                                                                                       |
| `macros`        | array   | Array of macros                                                                                                                                                                                       |
| `customObjects` | array   | List of custom object definitions                                                                                                                                                                     |
| `record`        | json    | Custom object record (object — fields: `id`, `name`, `external_id`, `custom_object_key`, `custom_object_fields`, `created_at`, `updated_at`)                                                          |
| `records`       | array   | Matching custom object records                                                                                                                                                                        |
| `message`       | json    | Posted message object returned by the API                                                                                                                                                             |
| `conversation`  | json    | Conversation object (object — fields: `id`, `type`, `activeSwitchboardIntegration`)                                                                                                                   |

Example [#example]

A minimal configuration for this block:

```json
{
  "type": "zendesk",
  "config": {
    "resource": "ticket",
    "operation": "...",
    "ticketId": "<PreviousStep.field>",
    "limit": 50,
    "subject": "<PreviousStep.field>",
    "description": "<PreviousStep.field>",
    "isPublic": "true",
    "priority": "low",
    "ticketType": "problem",
    "query": "<PreviousStep.field>",
    "comment": "<PreviousStep.field>",
    "public": "true",
    "userId": "<PreviousStep.field>",
    "name": "<PreviousStep.field>",
    "email": "<PreviousStep.field>",
    "organizationId": "<PreviousStep.field>",
    "macroId": "<PreviousStep.field>",
    "customObjectKey": "<PreviousStep.field>",
    "recordId": "<PreviousStep.field>",
    "fieldId": "<PreviousStep.field>",
    "lookupValue": "<PreviousStep.field>",
    "conversationId": "<PreviousStep.field>",
    "text": "<PreviousStep.field>"
  }
}
```

Limits and failure modes [#limits-and-failure-modes]

* Requires a connected Zendesk integration. Calls fail if that integration is disconnected or its authorization has expired.
* Required fields (`resource`, `operation`, `ticketId`, `subject`, `description`, `priority`, `ticketType`, `query`, `comment`, `userId`, `name`, `email`, `organizationId`, `macroId`, `customObjectKey`, `recordId`, `fieldId`, `lookupValue`, `conversationId`, `text`) must be set, or the block fails validation before it runs.
* On failure the `error` output is populated; downstream blocks that reference other outputs may not receive values.

Related [#related]

* [All workflow blocks](/reference/blocks)
* [Workflow Builder overview](/workflow-builder-overview)
* [Integrations](/integrations)