Zendesk is the support backbone for thousands of SaaS companies and e-commerce brands — and when it's not talking to your other tools, your team is copy-pasting between tabs. The n8n Zendesk node connects your ticket queue to Slack, Stripe, Notion, Google Sheets, and anything else in your stack without writing a custom integration.
This guide covers every operation the node supports, authentication, real workflow patterns, and the gotchas that will waste your afternoon if you don't know them.
What the Zendesk Node Can Do
The n8n Zendesk node exposes these resources and operations:
Ticket
- Create — open a new ticket with subject, description, priority, assignee, tags, and custom fields
- Get — fetch a single ticket by ID
- Get Many — list tickets with filters (status, assignee, tag, created date)
- Update — change status, priority, assignee, tags, or any custom field
- Delete — hard-delete a ticket (careful: irreversible)
User
- Create — add an end-user or agent
- Get / Get Many — look up users by email, ID, or filter
- Update — change name, email, role, tags, custom fields
- Delete — remove a user record
Organization
- Create / Get / Get Many / Update / Delete — manage company-level groupings (useful for B2B support)
Ticket Field
- Get / Get Many — introspect your custom field definitions (useful when you need field IDs)
Authentication
Zendesk supports two auth methods in n8n:
-
API Token (recommended): Generate a token in Zendesk Admin → Apps & Integrations → Zendesk API → API tokens. Your credential is
{your_email}/tokenas the username and the API token as the password. - OAuth2: Available but adds setup overhead. Use for multi-account scenarios.
In n8n: create a Zendesk API credential, set your subdomain (e.g., yourcompany from yourcompany.zendesk.com), email, and API token.
6 Gotchas That Will Trip You Up
1. Subdomain is required and case-sensitive.
The credential field asks for your subdomain only — not the full URL. yourcompany, not yourcompany.zendesk.com. A trailing slash or the full URL breaks auth silently.
2. Custom field IDs, not labels.
When setting or reading custom ticket fields, n8n uses the field's numeric ID (e.g., 360012345678), not the display label. Get field IDs from Zendesk Admin → Objects & Rules → Tickets → Fields, or use the Ticket Field → Get Many operation to list them programmatically.
3. status values are lowercase strings.
Valid ticket status values are new, open, pending, hold, solved, closed — all lowercase. Passing Open or Solved will fail or silently no-op on update.
4. Deleting a ticket is permanent.
Zendesk's soft-delete goes to a Deleted Tickets view and is recoverable for 30 days via API, but n8n's Delete operation calls the permanent destroy endpoint. Test against a sandbox subdomain first.
5. Get Many returns max 100 per page by default.
For larger queues you need to handle cursor-based pagination using the next_page URL in the response. Use the Return All toggle if your n8n version supports it, or implement a loop with the HTTP Request node against Zendesk's /api/v2/tickets.json?page[after]=<cursor> endpoint.
6. Webhook triggers aren't the Zendesk node.
If you want to react to ticket events in real time (new ticket, status change, comment added), you need a Webhook Trigger node in n8n plus a Zendesk Webhook pointing at it — not a polling Zendesk node. The Zendesk node is for read/write operations, not event listening.
3 Workflow Patterns
Pattern 1: Stripe Chargeback → Zendesk High-Priority Ticket
When a Stripe dispute arrives, automatically open a high-priority Zendesk ticket assigned to your payments team — before anyone has to check their email.
Stripe Trigger (dispute.created)
→ Set node (extract customer email, dispute amount, reason)
→ Zendesk → Ticket → Create
subject: "Dispute: ${{ $json.amount/100 }} — {{ $json.reason }}"
priority: urgent
tags: ["dispute", "payments"]
description: full dispute detail + Stripe dispute URL
→ Slack → send alert to #payments channel with ticket ID
Free workflow JSON: Download from Gumroad
Pattern 2: Auto-Tag and Route Tickets by Keyword
Scan incoming tickets for keywords and route them to the right team before a human touches them.
Schedule Trigger (every 5 min) or Zendesk Webhook
→ Zendesk → Ticket → Get Many (status: new, created_after: 5min ago)
→ Code node:
for each ticket:
if subject/description contains "billing", "invoice", "charge" → tag "billing"
if contains "bug", "error", "broken" → tag "engineering"
else → tag "general"
→ Zendesk → Ticket → Update (add tag + set assignee group by tag)
Pattern 3: Daily Unresolved Ticket Digest → Slack
Every morning, post a count of open tickets by priority to your team Slack so nothing slips through.
Schedule Trigger (09:00 Mon–Fri)
→ Zendesk → Ticket → Get Many
status: open
Return All: true
→ Code node: group by priority (urgent/high/normal/low), count each
→ Slack → send digest:
"🎫 Open tickets: 3 urgent, 12 high, 28 normal, 5 low"
Zendesk Node vs HTTP Request Node
| Use case | Zendesk node | HTTP Request node |
|---|---|---|
| Create/update/read tickets | ✅ | ✅ |
| React to real-time events | ❌ (use Webhook Trigger) | ❌ (use Webhook Trigger) |
| Ticket Field introspection | ✅ | ✅ |
| Advanced SOQL-style search | ❌ | ✅ (Zendesk Search API) |
| Macro / View / Trigger management | ❌ | ✅ |
For anything not in the Zendesk node's operation list, the HTTP Request node against https://yourcompany.zendesk.com/api/v2/ works well since Zendesk's REST API is fully documented.
Ready-to-Import Workflow JSON
n8n Zendesk → Slack Ticket Alert ($9) — fires on every new Zendesk ticket, routes urgent tickets to oncall, posts all tickets to your support channel. Import in under 2 minutes.
👉 Get the Zendesk → Slack Workflow ($9)
Or grab the full n8n Workflow Starter Pack ($29) — includes Stripe, HubSpot, Airtable, Notion, Google Sheets, Shopify, Jira, Slack, Gmail, and more.
Want This Built for You?
If you'd rather have a working Zendesk automation running in your n8n instance by tomorrow — wired to your Slack, Stripe, or whatever's in your stack — I offer a done-for-you workflow build service.
You describe what you need. I build it, test it, and hand it off as an importable JSON you can drop into your n8n instance.
👉 Done-for-you n8n workflow build — $99
Top comments (1)
Are you using the n8n Zendesk node to automate ticket creation, user syncing, or support escalations? Drop your use case below — especially curious if anyone is routing Stripe payment failures directly to Zendesk tickets.