Event
trigger.zendesk_event
TriggerBusiness appsconnection requiredruns in-engine
Registers a webhook in the tenant's Zendesk account on publish and starts one run per delivered event, verified against Zendesk's signature.
Start a run when Zendesk raises an event (ticket, user, organization…).
Connection
- Required
- Yes — the node will not save without one
- Auth type
- Username & password
- Providers
- Zendesk
- Secret shape
- {"email": "…", "api_token": "…"}
- Config it needs
- subdomain
- Resolved by
- config.connection_id, else node.connection_id
- Note
- Creating a webhook and revealing its signing secret are both admin-only in Zendesk: an agent token registers nothing. Publishing also needs MANTLE_APP_PUBLIC_BASE_URL set to an https URL Zendesk can reach.
Configuration
1 field, none required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
events Zendesk event types to subscribe to. Any well-formed zen:event-type: name is accepted, not only the ones listed — Zendesk also publishes article, community post, messaging and access log events. | array | No | ["zen:event-type:ticket.created"] | 1–128 characters; array of string | — |
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"events": [
"zen:event-type:ticket.created"
]
}Output
One shape.
zendesk event
The flattened Zendesk event. detail's own keys vary by subject_type, so the shape is open below the declared fields.
Extra keys beyond the ones listed can appear.
| Field | Type | Example |
|---|---|---|
id Zendesk's event id. Also the idempotency key: a redelivery carries the same id, so it joins the run it already started instead of starting a second. The ingress remembers a key for 24 hours. | string | 01EJFTSCC78X5V07NPY2MHR00M |
type The event type, e.g. zen:event-type:ticket.created. Branch on this when the trigger subscribes to more than one. | string | zen:event-type:ticket.created |
time When Zendesk raised the event, as an ISO-8601 UTC string. | string | 2024-05-30T12:00:00Z |
account_id The Zendesk account the event belongs to. Useful when one workflow serves several subdomains. | string | — |
subject Zendesk's handle for the thing the event is about, e.g. zen:ticket:35436. | string | zen:ticket:35436 |
subject_type The object kind lifted out of subject — ticket, user, organization. | string | ticket |
subject_id That object's id, lifted out of subject so the next node can fetch it without slicing a string. | string | 35436 |
zendesk_event_version The payload version Zendesk shaped this event with. | string | — |
detail The resource the event is about — the ticket, user or organization, in Zendesk's event-payload form. Its keys depend on subject_type. | object | — |
event What actually changed: the previous and current values on a *_changed event, the comment on a comment_added, empty on some created events. | object | — |
payload The envelope exactly as Zendesk sent it, for anything the fields above do not lift out. | object | — |
{
"account_id": "1234567",
"detail": {
"brand_id": "360000123456",
"created_at": "2024-05-30T12:00:00Z",
"id": "35436",
"priority": "urgent",
"requester_id": "9876543",
"status": "new",
"subject": "Printer on fire"
},
"event": {
"via": {
"channel": "email"
}
},
"id": "01EJFTSCC78X5V07NPY2MHR00M",
"payload": {
"id": "01EJFTSCC78X5V07NPY2MHR00M",
"type": "zen:event-type:ticket.created"
},
"subject": "zen:ticket:35436",
"subject_id": "35436",
"subject_type": "ticket",
"time": "2024-05-30T12:00:00Z",
"type": "zen:event-type:ticket.created",
"zendesk_event_version": "2022-11-06"
}Notes
- Publishing creates the webhook in Zendesk; unpublishing, disabling or archiving deletes it. A workflow that is off is off at Zendesk too.
- This subscribes the webhook to Zendesk *events*. A Zendesk trigger or automation is a different object — it is not created here, and it is not needed for these events to arrive.
- Each delivery is verified as base64(HMAC-SHA256(timestamp + body)) against the webhook's signing secret; an unsigned delivery is refused.
- Zendesk trial accounts are limited to 10 webhooks, and this trigger creates one per published workflow, so an 11th publish is refused with Zendesk's own 'Webhook Limit Exceeded'.
- Zendesk deactivates a webhook that keeps failing. Publishing again re-registers it.
Related Zendesk nodes
Solutions with Zendesk
See Event run in a workflow.
In a technical demo we add the Zendesk connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.