Zammad n8n integrationAutomate Zammad with n8n.
How far can a Zammad n8n integration go without writing code? The node ships with n8n and exposes 21 operations across 4 resources: tickets, users, groups and organizations. No Zammad trigger exists, so a Schedule Trigger or a webhook starts the run. For support and ops teams.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Zammad n8n integration actually cover?
The Zammad node ships with n8n and calls the Zammad API on four objects: tickets, users, groups and organizations. That is 21 operations, the usual create, read, update and delete on each, plus one shortcut that returns the account behind the credential. No Zammad trigger node exists, so something else in n8n starts the workflow and the Zammad node does the work.
Start with the alerting path, because it is the one teams build first. A monitoring service posts to an n8n Webhook node, the workflow shapes the payload, and ticket.create opens a ticket in the right queue with the raw details as a first article. Nobody copies a stack trace into a form anymore. The same pattern works from a form, from a shared mailbox read by the Gmail node, or from any tool that can call a URL.
The second path is reporting. A Schedule Trigger fires each morning, ticket.getAll returns the open tickets, and the list goes out as a digest to Slack or as rows in Google Sheets. Support leads get the numbers without an export, and the spreadsheet becomes the shared view that dashboards never quite replace.
The third one is keeping people and companies in sync. When a deal closes, organization.create puts the account in the help desk, user.create adds the contacts, and user.update keeps email addresses and company assignments correct over time. Tickets then land already attached to a company instead of to a stray address.
Reach for the HTTP Request node when the operation is not in the list. The node covers four resources, and Zammad exposes more than that. Since the Zammad credential works with HTTP Request through predefined authentication, calling another endpoint costs one extra node, not a second connection. Two of the public Zammad templates do exactly this, mixing the node with HTTP Request.
Known limits are worth stating up front. There is no trigger, so reaction time depends on how often your Schedule Trigger runs, and the delete operations are wired for cleanup rather than for daily traffic. If you are still choosing a platform, the n8n review goes through the trade-offs, and the n8n training covers building these workflows hands on.
How do you connect Zammad to n8n?
- 01
Turn on API Token Access in Zammad
Token auth is the method Zammad recommends, and it has to be switched on before any token exists. Open Settings, then System, then API, and enable API Token Access. Basic auth works too and needs nothing enabled, but it carries a real login, so most teams keep it for a quick test and move on.
- 02
Create the access token with the right permissions
Any user holding the
user_preferences.access_tokenpermission can generate one from their avatar, then Profile, then Token Access, then Create. The token only does what you tick. For everything the node can do, selectadmin.group,admin.organization,admin.user,ticket.agentandticket.customer. - 03
Add the credential in n8n
In n8n, a credential is saved once under the Credentials menu and reused by every workflow. Create a Zammad credential, paste the Base URL of your instance and the Access Token. With basic auth, the fields are Base URL, Email and Password instead. The node then offers the credential in its dropdown.
What can the Zammad node do?
The Zammad node exposes 21 operations across 4 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete | Get Self |
|---|---|---|---|---|---|---|
| Group | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Organization | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Ticket | ✓ | ✓ | ✓ | ✓ | ✓ | |
| User | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
Group
5 operationsCreate a group
group.createWhat you see in n8n
Notes & use cases
Groups are the queues a ticket lands in, and this operation adds one from a workflow rather than from the admin screen. Handy when a new team or a new product line needs its own inbox.
Key parameters
- Group Name: the only required field, the label agents see in the queue picker, often fed by an expression such as
{{ $json.team }}. - Additional Fields: three optional entries, Active to open or freeze the queue right away, Notes for an internal description, Custom Fields for anything your instance added.
Delete a group
group.deleteWhat you see in n8n
Notes & use cases
Removes a queue from the instance. This one belongs at the end of a cleanup workflow, not in a run that fires every hour, since there is no undo step in the node to pair it with.
Key parameters
- Group ID: the identifier of the group, not its name. An expression is the usual way to fill it, for example
{{ $json.id }}carried from a Get many groups step.
Get a group
group.getWhat you see in n8n
Notes & use cases
Reads a single group and returns its record. A workflow uses it to confirm a queue exists, and to look at its notes, before routing anything into it.
Key parameters
- Group ID: the group to retrieve. The field accepts an expression, so a value carried from an earlier node drops straight in.
Get many groups
group.getAllWhat you see in n8n
Notes & use cases
Returns the groups configured on the instance. It is the simplest way to turn queue names into the identifiers every other Group operation expects.
Key parameters
- Return All: on, n8n keeps asking the Zammad API for the next page until every group is in. Off, the run stops at Limit.
- Limit: the maximum number of groups returned when Return All stays off, useful while you shape a workflow.
Update a group
group.updateWhat you see in n8n
Notes & use cases
Edits a queue in place. Renaming a team or freezing a queue during a migration goes through here, rather than deleting and recreating the group and losing its identifier.
Key parameters
- Group ID: identifies the queue to edit, required even when a single field changes.
- Update Fields: four optional entries, Group Name for the new label, Active to freeze or reopen, Notes, Custom Fields.
Organization
5 operationsCreate an organization
organization.createWhat you see in n8n
Notes & use cases
Companies live in Zammad as organizations. This operation creates one from whatever a CRM or a signup form sends, so later tickets attach to an account instead of to a lone email address.
Key parameters
- Organization Name: required, the company label shown on every linked ticket.
- Additional Fields: seven optional entries. Domain with Domain Assignment attaches users by their email domain, VIP flags a key account, then Shared, Active, Notes and Custom Fields.
Delete an organization
organization.deleteWhat you see in n8n
Notes & use cases
Takes a company record out of the instance. Put it behind an approval step in a data hygiene workflow, because other records point at an organization and nothing in the node puts it back.
Key parameters
- Organization ID: the record to remove, set through an expression when the value comes from a previous node.
Get an organization
organization.getWhat you see in n8n
Notes & use cases
Fetches one organization and returns its fields, including the notes and the VIP flag that an agent would otherwise open a browser tab to read.
Key parameters
- Organization ID: the record to retrieve. A company name will not work here, the field expects the identifier.
Get many organizations
organization.getAllWhat you see in n8n
Notes & use cases
Reads the organization list. This is the export operation of the resource, the one that feeds reporting living outside the help desk.
Key parameters
- Return All: enabled, every organization comes back page after page, which is what a complete export needs.
- Limit: with Return All off, this caps how many organizations a single execution returns.
Update an organization
organization.updateWhat you see in n8n
Notes & use cases
Applies changes to a company that already exists. Nothing is required beyond the identifier, so a workflow can touch one field and leave the rest of the record untouched.
Key parameters
- Organization ID: which record to edit.
- Update Fields: seven optional entries, the same set as creation. VIP and Active change how the account is treated, Domain and Domain Assignment change who gets attached to it.
Ticket
5 operationsCreate a ticket
ticket.createWhat you see in n8n
Notes & use cases
Most Zammad workflows end on this operation. It opens a ticket in a chosen queue, for a known customer, with a first message attached.
Key parameters
- Title: required, what agents scan in the queue.
- Group Name or ID: required, the queue that owns the ticket. Pick it from the list,
First-Level Helpdeskfor instance, or pass an ID by expression. - Customer Email Name or ID: required, the email address of the customer concerned, such as
{{ $json.email }}. - Article: required, the first message, with Body, Article Type (chat, email, fax, note, phone or sms) and Visibility, where
internalstays with the help desk.
Delete a ticket
ticket.deleteWhat you see in n8n
Notes & use cases
Deletes a ticket by identifier. Rarely part of a routine flow, more often a cleanup step for test tickets or for items a loop created twice.
Key parameters
- Ticket ID: the ticket to delete, given as an identifier through an expression when it comes from an earlier step.
Get a ticket
ticket.getWhat you see in n8n
Notes & use cases
Retrieves one ticket with its current fields. That is how a workflow reads state, owner and priority before deciding what to do next.
Key parameters
- Ticket ID: the ticket to retrieve, passed as an identifier, usually
{{ $json.id }}from the item that opened the branch.
Get many tickets
ticket.getAllWhat you see in n8n
Notes & use cases
Lists tickets from the instance. Paired with a Schedule Trigger, it is as close as this node gets to a trigger, since Zammad has no trigger node in n8n.
Key parameters
- Return All: on, n8n keeps requesting pages until the whole list is retrieved, which reporting runs need.
- Limit: with Return All off, this sets the maximum number of tickets returned, enough for a daily digest.
Update a ticket
ticket.updateWhat you see in n8n
Notes & use cases
Day-to-day automation mostly sits here. One call can reassign, reprioritize, change the state and drop an internal note on the same ticket.
Key parameters
- Ticket ID: the only required value.
- Update Fields: nine optional entries. State, Priority, Owner, Group and Customer come from lists or expressions, Note adds an internal comment, Title rewrites the subject.
- Pending Time: the date and time a pending ticket becomes active again, required for the pending reminder, pending close and snooze states.
User
6 operationsCreate a user
user.createWhat you see in n8n
Notes & use cases
Adds a person to Zammad. Two names are enough to get a record in, everything else rides along in the optional collection.
Key parameters
- First Name and Last Name: the two required fields,
JohnandSmithin the node placeholders. - Additional Fields: 13 optional entries. Email Address matters most, since ticket creation identifies a customer by email, then Organization Name or ID, Phone (Mobile), Department, VIP and Verified.
Delete a user
user.deleteWhat you see in n8n
Notes & use cases
Erases a user record. The identifier is the only input, which makes this operation easy to wire and easy to fire by mistake. Put a filter in front of it.
Key parameters
- User ID: the record to remove, specified through an expression when the value arrives from a previous node.
Get a user
user.getWhat you see in n8n
Notes & use cases
Single-record lookup. Returns the person behind an identifier, with the organization, the contact details and the flags that were filled in.
Key parameters
- User ID: the identifier of the user to read, not the email address.
Get many users
user.getAllWhat you see in n8n
Notes & use cases
Searches the user base and returns a list. This operation carries a Filters collection the other list operations do not have, which makes it a search rather than a dump.
Key parameters
- Query: a search string such as
user.firstname:john, which narrows the result set before it reaches n8n. - Sort: orders the results on the way out.
- Return All and Limit: every match, or a capped number while you refine the query.
Get currently logged-in user
user.getSelfWhat you see in n8n
Notes & use cases
Returns the account the credential authenticates as, with its identifier and its details as Zammad stores them. There is nothing to configure: no record ID, no expression, no optional collection. That makes it the fastest way to prove a credential actually works before building anything on top of it.
Update a user
user.updateWhat you see in n8n
Notes & use cases
Keeps a contact record current. The identifier decides who changes, the optional collection decides what, and untouched fields stay as they were.
Key parameters
- User ID: required, the record to edit.
- Update Fields: 15 optional entries, the widest collection in the node. Organization Name or ID moves someone to another company, Email Address, Phone (Landline) and Website refresh contact details, Active retires an account without deleting it.
Need help automating Zammad with n8n?
A person reads every message.
