Search all guides

Reference · Tools

Zendesk trigger

Receives webhook notifications from Zendesk Support to start a workflow when ticket conditions are met.

Webhook trigger Communication v1

The Zendesk Trigger fires when a ticket event matches the conditions you configure, using ALL (AND) and ANY (OR) logic across fields such as status, priority, type, group and assignee. A typical build is escalating to a channel whenever an urgent ticket goes unassigned.

Works as
Webhook trigger
Tool name
zendesk_trigger
Parameters
4
Outputs
Output
Credentials
Zendesk
Official docs
Zendesk docs developer.zendesk.com

What you can build with Zendesk

  • Start a workflow when a Zendesk ticket status changes to solved.
  • Trigger an escalation when a ticket priority is set to urgent.
  • When notify a Slack channel when a new ticket is assigned to a specific group.
  • When sync ticket updates to a CRM when the assignee changes.
  • When send a follow-up email when a ticket is closed.

Overview

Receives webhook notifications from Zendesk Support when ticket conditions are met. Zendesk triggers are condition-based: you define conditions on ticket fields (status, priority, type, group, assignee) using operators (is, is_not, changed, not_changed, greater_than, less_than, etc.) with AND/OR logic. When conditions match, Zendesk sends a POST with the configured ticket fields as a JSON payload. The webhook payload is customizable — by default only ticket.id is included, but you can select from 40+ placeholder fields covering ticket, requester, assignee, organization, current user, and satisfaction data. Supports HMAC-SHA256 signature verification via X-Zendesk-Webhook-Signature header. Useful for automating ticket routing, escalation, SLA monitoring, customer notifications, CRM sync, and support analytics workflows.

Node Type

Trigger — webhook (receives incoming HTTP callbacks)

Input / Output

DirectionPort(s)
InputNone (trigger node)
OutputOutput

Credentials

This tool requires Zendesk credentials. See the Credentials Guide for setup instructions.

Parameters

ParameterTypeRequiredDefaultDescription
AuthenticationoptionsNoapiTokenAuthentication method to use for Zendesk API calls.
Options: apiToken
ServiceoptionsYessupportThe Zendesk service to receive events from.
Options: support
ConditionsfixedCollectionNo{}The conditions that must be met for the trigger to fire. Use “All” for AND logic and “Any” for OR logic. Each condition is added under the all key or the any key, and both groups can be used together. (shown when Service is support)
— ResourceoptionsNoticketThe Zendesk resource the condition applies to.
Options: ticket
— FieldoptionsNostatusThe ticket field to evaluate. (shown when Resource is ticket)
Options: assignee, group, priority, status, type
— OperationoptionsNoisThe comparison operation for the condition.
Options: changed, value_previous (changed from), value (changed to), greater_than, is, is_not, less_than, not_changed, not_value_previous (not changed from), not_value (not changed to)
— ValuestringNo—The value to compare against. For status: new, open, pending, solved, closed. For priority: low, normal, high, urgent. For type: question, incident, problem, task. For group/assignee: enter the ID.
OptionscollectionNo{}Additional options for the trigger. (shown when Service is support)
— FieldsmultiOptionsNo[]Which ticket data fields to include in the webhook payload. If none selected, only ticket.id is sent.
Options: ticket.title, ticket.description, ticket.url, ticket.id, ticket.external_id, ticket.via, ticket.status, ticket.priority, ticket.ticket_type, ticket.group.name, ticket.brand.name, ticket.due_date, ticket.account, ticket.assignee.email, ticket.assignee.name, ticket.assignee.first_name, ticket.assignee.last_name, ticket.requester.name, ticket.requester.first_name, ticket.requester.last_name, ticket.requester.email, ticket.requester.language, ticket.requester.phone, ticket.requester.external_id, ticket.requester.requester_field, ticket.requester.details, ticket.organization.name, ticket.organization.external_id, ticket.organization.details, ticket.organization.notes, ticket.ccs, ticket.cc_names, ticket.tags, ticket.current_holiday_name, current_user.name, current_user.first_name, current_user.email, current_user.organization.name, current_user.organization.details, current_user.organization.notes, current_user.language, current_user.external_id, current_user.notes, satisfaction.current_rating, satisfaction.current_comment

Output Data

Each accepted notification produces one output item. Zendesk sends the placeholder fields you selected under Fields as plain key-value pairs, so the item carries one key per selected field — for example ticket.id, ticket.status, ticket.requester.email. With no fields selected, only ticket.id arrives.

These fields are added on top:

  • _trigger — always zendesk_webhook
  • _timestamp — ISO 8601 timestamp of when the notification was received
  • _webhookEvent — always ticket_condition_met

Because the field keys contain dots, address them with bracket notation downstream, e.g. {{ $json["ticket.requester.email"] }}.

Example Configuration

The simplest configuration — fires on every ticket event, sending only ticket.id:

{
  "type": "zendesk_trigger",
  "parameters": {
    "service": "support"
  }
}

A single condition on ticket status:

{
  "id": "zendesk-trigger",
  "type": "zendesk_trigger",
  "typeVersion": 1,
  "position": [0, 0],
  "parameters": {
    "service": "support",
    "authentication": "apiToken",
    "conditions": {
      "all": [
        {
          "resource": "ticket",
          "field": "status",
          "operation": "is",
          "value": "open"
        }
      ]
    }
  }
}

Multiple AND conditions, with a custom payload:

{
  "id": "zendesk-trigger",
  "type": "zendesk_trigger",
  "typeVersion": 1,
  "position": [0, 0],
  "parameters": {
    "service": "support",
    "authentication": "apiToken",
    "conditions": {
      "all": [
        {
          "resource": "ticket",
          "field": "status",
          "operation": "is",
          "value": "new"
        },
        {
          "resource": "ticket",
          "field": "priority",
          "operation": "is",
          "value": "urgent"
        }
      ]
    },
    "options": {
      "fields": ["ticket.id", "ticket.title", "ticket.description"]
    }
  }
}

OR logic — fire when the priority is either urgent or high:

{
  "id": "zendesk-trigger",
  "type": "zendesk_trigger",
  "typeVersion": 1,
  "position": [0, 0],
  "parameters": {
    "service": "support",
    "authentication": "apiToken",
    "conditions": {
      "any": [
        {
          "resource": "ticket",
          "field": "priority",
          "operation": "is",
          "value": "urgent"
        },
        {
          "resource": "ticket",
          "field": "priority",
          "operation": "is",
          "value": "high"
        }
      ]
    }
  }
}

AND and OR combined — new tickets that are urgent or high priority:

{
  "id": "zendesk-trigger",
  "type": "zendesk_trigger",
  "typeVersion": 1,
  "position": [0, 0],
  "parameters": {
    "service": "support",
    "authentication": "apiToken",
    "conditions": {
      "all": [
        {
          "resource": "ticket",
          "field": "status",
          "operation": "is",
          "value": "new"
        }
      ],
      "any": [
        {
          "resource": "ticket",
          "field": "priority",
          "operation": "is",
          "value": "urgent"
        },
        {
          "resource": "ticket",
          "field": "priority",
          "operation": "is",
          "value": "high"
        }
      ]
    },
    "options": {
      "fields": [
        "ticket.id",
        "ticket.title",
        "ticket.requester.email",
        "ticket.assignee.email"
      ]
    }
  }
}

Trigger Behavior

  • Activation: When the workflow is activated, a webhook endpoint is registered with the service.
  • Deactivation: The webhook is automatically unregistered when the workflow is deactivated.
  • Payload: The incoming webhook payload is parsed and output as workflow items.
  • Verification: Supports signature verification where applicable.

Tips

This tool receives webhooks from Zendesk Support when ticket events occur. It is ideal for initiating workflows based on specific ticket conditions, such as status changes or priority updates, rather than directly querying ticket data. The tool produces a JSON payload containing customizable ticket field data, which can include details about the ticket, requester, and assignee.

Important Notes

  • The conditions parameter groups its entries under the all and/or any keys; all is AND logic and any is OR logic
  • The options parameter is a flat object — put fields directly inside it
  • Both conditions and options are only available when service is set to "support"
  • Authentication is "apiToken"; OAuth2 is not currently supported
  • The fields array controls which ticket fields are included in webhook payloads; values must be chosen from the 45 supported field options listed above (e.g., "ticket.id", "ticket.title", "ticket.requester.email")

Frequently asked questions

How precise can the conditions be?

Quite precise — ALL and ANY logic combines across ticket fields including status, priority, type, group and assignee, so the workflow only wakes for cases that genuinely match.

Can I control what is in the payload?

Yes — choose which ticket data fields to include, such as title, description, requester and assignee information.

Are payloads verified?

HMAC-SHA256 signature verification is supported, so deliveries can be confirmed as genuinely from Zendesk.

Which credential does it need?

A Zendesk credential, the same one the action node uses.

Build with Zendesk

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Zendesk credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.