DEV Community

Pirate Prentice
Pirate Prentice

Posted on

n8n Zendesk Node: Automate Tickets, Users, and Support Workflows (Free Workflow JSON)

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:

  1. API Token (recommended): Generate a token in Zendesk Admin → Apps & Integrations → Zendesk API → API tokens. Your credential is {your_email}/token as the username and the API token as the password.
  2. 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
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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

Related Articles

Top comments (1)

Collapse
 
pirateprentice profile image
Pirate Prentice

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.