Reference · Tools
Zammad
Manage users, organizations, groups, and tickets in a Zammad helpdesk instance.
The Zammad node manages users, organizations, groups and tickets in a Zammad helpdesk. A typical build is opening a ticket from an inbound form, attached to the right organization, and updating it as the case progresses.
- Node type
- Action
- Parameters
- 42
- Outputs
- Output, Error
- Credentials
- Zammad API
Zammad
Manage users, organizations, groups, and tickets in Zammad.
Overview
Zammad is an open-source helpdesk and customer support system. This tool provides full CRUD operations for users, organizations, groups, and tickets via the Zammad REST API. Supports both token-based and basic authentication. Ticket creation includes article support with visibility, sender type, and article type configuration.
Category: Communication
Tool Name: zammad
Version: 1
Appearance: Icon: lucide-Headphones | Color: #FFB400
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Zammad API credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Group | group |
| Organization | organization |
| Ticket | ticket |
| User | user |
Operations
| Operation | Value | Description |
|---|---|---|
| Create | create | Create a user |
| Delete | delete | Delete a user |
| Get | get | Retrieve a user |
| Get Many | getAll | Retrieve many users |
| Get Self | getSelf | Retrieve currently logged-in user |
| Update | update | Update a user |
getSelf exists only on the User resource. Organization, Group and Ticket offer the same create / delete / get / getAll values against their own records; Ticket has no update.
Parameters
Get Self takes no parameters of its own — see All Operations.
User: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| First Name | string | Yes | — | Given name of the new user. Supports expressions. |
| Last Name | string | Yes | — | Family name of the new user. Supports expressions. |
| Additional Fields | collection | No | {} | Optional profile values to set on the new user. |
| — Active | boolean | No | true | Whether the user account is active. |
| — Address | fixedCollection | No | {} | Postal address of the user. |
| — — City | string | No | — | City of the address. |
| — — Country | string | No | — | Country of the address. |
| — — Street & Number | string | No | — | Street line of the address. |
| — — Zip Code | string | No | — | Postal code of the address. |
| — Custom Fields | fixedCollection | No | {} | Values for custom User attributes. |
| — — Field Name | string | No | — | Name of the custom field to set. Find custom field names in Zammad Admin > Object Manager. |
| — — Field Value | string | No | — | Value to set on the custom field. |
| — Department | string | No | — | Department the user belongs to. |
| — Email Address | string | No | — | Primary email address of the user. |
| — Fax | string | No | — | Fax number of the user. |
| — Notes | string | No | — | Free-text note stored on the user. |
| — Organization ID | string | No | — | ID of the organization to assign to the user. Find organization IDs via the Get Many operation on the Organization resource. |
| — Phone (Landline) | string | No | — | Landline number of the user. |
| — Phone (Mobile) | string | No | — | Mobile number of the user. |
| — Verified | boolean | No | false | Whether the user has been verified. |
| — VIP | boolean | No | false | Whether the user is a Very Important Person. |
| — Website | string | No | — | Website of the user. |
User: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | ID of the user to update. Supports expressions. |
| Update Fields | collection | No | {} | Values to change on the user. |
| — Active | boolean | No | true | Whether the user account is active. |
| — Address | fixedCollection | No | {} | Postal address of the user. |
| — — City | string | No | — | City of the address. |
| — — Country | string | No | — | Country of the address. |
| — — Street & Number | string | No | — | Street line of the address. |
| — — Zip Code | string | No | — | Postal code of the address. |
| — Custom Fields | fixedCollection | No | {} | Values for custom User attributes. |
| — — Field Name | string | No | — | Name of the custom field to set. |
| — — Field Value | string | No | — | Value to set on the custom field. |
| — Department | string | No | — | Department the user belongs to. |
| — Email Address | string | No | — | Primary email address of the user. |
| — Fax | string | No | — | Fax number of the user. |
| — First Name | string | No | — | Given name of the user. |
| — Last Name | string | No | — | Family name of the user. |
| — Notes | string | No | — | Free-text note stored on the user. |
| — Organization Name | string | No | — | Name of the organization to assign to the user. Note: the update endpoint uses organization name, not ID. |
| — Phone (Landline) | string | No | — | Landline number of the user. |
| — Phone (Mobile) | string | No | — | Mobile number of the user. |
| — Verified | boolean | No | false | Whether the user has been verified. |
| — VIP | boolean | No | false | Whether the user is a Very Important Person. |
| — Website | string | No | — | Website of the user. |
User: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | ID of the user to retrieve. Supports expressions. |
User: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Search and sort options for the user list. |
| — Query | string | No | — | Query to filter results by. |
| — Sort | fixedCollection | No | {} | How to order the results. |
| — — Sort Key | string | No | — | Field name to sort by. Find field names in Zammad Admin > Object Manager for the User object. |
| — — Sort Order | options | No | asc | Direction of the sort. |
Options: asc, desc |
User: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | ID of the user to delete. Supports expressions. |
Organization: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Organization Name | string | Yes | — | Name of the new organization. Supports expressions. |
| Additional Fields | collection | No | {} | Optional values to set on the new organization. |
| — Active | boolean | No | true | Whether the organization is active. |
| — Custom Fields | fixedCollection | No | {} | Values for custom Organization attributes. |
| — — Field Name | string | No | — | Name of the custom field to set. |
| — — Value | string | No | — | Value to set on the custom field. |
| — Domain | string | No | — | The domain associated with the organization. |
| — Domain Assignment | boolean | No | true | Whether to assign users based on their email domain. |
| — Notes | string | No | — | A note about the organization. |
| — Shared | boolean | No | false | Whether the organization is shared with other instances. |
| — VIP | boolean | No | false | Whether the organization is marked as VIP. |
Organization: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Organization ID | string | Yes | — | ID of the organization to update. Supports expressions. |
| Update Fields | collection | No | {} | Values to change on the organization. |
| — Active | boolean | No | true | Whether the organization is active. |
| — Custom Fields | fixedCollection | No | {} | Values for custom Organization attributes. |
| — — Field Name | string | No | — | Name of the custom field to set. |
| — — Value | string | No | — | Value to set on the custom field. |
| — Domain | string | No | — | The domain associated with the organization. |
| — Domain Assignment | boolean | No | true | Whether to assign users based on their email domain. |
| — Notes | string | No | — | A note about the organization. |
| — Shared | boolean | No | false | Whether the organization is shared with other instances. |
| — VIP | boolean | No | false | Whether the organization is marked as VIP. |
Organization: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Organization ID | string | Yes | — | ID of the organization to retrieve. Supports expressions. |
Organization: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
Organization: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Organization ID | string | Yes | — | ID of the organization to delete. Supports expressions. |
Group: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Group Name | string | Yes | — | Name of the new group. Supports expressions. |
| Additional Fields | collection | No | {} | Optional values to set on the new group. |
| — Active | boolean | No | true | Whether the group is active. |
| — Custom Fields | fixedCollection | No | {} | Values for custom Group attributes. |
| — — Field Name | string | No | — | Name of the custom field to set. |
| — — Field Value | string | No | — | Value to set on the custom field. |
| — Notes | string | No | — | A note about the group. |
Group: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Group ID | string | Yes | — | ID of the group to update. Supports expressions. |
| Update Fields | collection | No | {} | Values to change on the group. |
| — Active | boolean | No | true | Whether the group is active. |
| — Custom Fields | fixedCollection | No | {} | Values for custom Group attributes. |
| — — Field Name | string | No | — | Name of the custom field to set. |
| — — Field Value | string | No | — | Value to set on the custom field. |
| — Group Name | string | No | — | New name for the group. |
| — Notes | string | No | — | A note about the group. |
Group: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Group ID | string | Yes | — | ID of the group to retrieve. Supports expressions. |
Group: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
Group: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Group ID | string | Yes | — | ID of the group to delete. Supports expressions. |
Ticket: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Title | string | Yes | — | Title of the ticket to create. Supports expressions. |
| Group | string | Yes | — | Name of the group that will own the ticket. Use the group name (not ID). Find group names via the Get Many operation on the Group resource. |
| Customer Email | string | Yes | — | Email address of the customer concerned in the ticket. Use the customer email (not ID). Supports expressions. |
| Article | fixedCollection | Yes | {} | The first article (message) on the ticket. |
| — Subject | string | No | — | Subject line of the article. |
| — Body | string | No | — | Body text of the article. |
| — Visibility | options | No | internal | Who can see the article. |
Options: external (visible to customers), internal (visible to help desk only) | ||||
| — Sender | options | No | Agent | Who the article is attributed to. |
Options: Agent, Customer, System (only the subject is displayed in Zammad) | ||||
| — Article Type | options | No | note | Channel the article represents. |
Options: chat, email, fax, note, phone, sms | ||||
| — Reply To | string | No | — | Reply-to address for the article. |
| Additional Fields | collection | No | {} | Optional values to set on the new ticket. |
| — Custom Fields | fixedCollection | No | {} | Values for custom Ticket attributes. |
| — — Field Name | string | No | — | Name of the custom field to set. Find custom field names in Zammad Admin > Object Manager for the Ticket object. |
| — — Value | string | No | — | Value to set on the custom field. |
Ticket: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Ticket ID | string | Yes | — | ID of the ticket to retrieve. Supports expressions. |
Ticket: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
Ticket: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Ticket ID | string | Yes | — | ID of the ticket to delete. Supports expressions. |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Authentication | options | No | tokenAuth | Authentication method to use. |
Options: tokenAuth | ||||
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. |
Output Data
The Zammad record is merged onto the top level of the item JSON; anything already on the item passes through, and binary data is forwarded unchanged.
- One output item per input item for
create,get,getSelf,updateanddelete. getAllfans out on every resource: one output item per record. Results are paged through 20 at a time until the limit is reached or the list is exhausted.deletereturns nothing from Zammad, so the item carriessuccess: true.- Ticket
createandgetalso fetch the ticket’s articles and attach them as anarticlesarray on the item. - User
getAllstrips each user’s internal_preferencesblob before emitting the item.
Usage Examples
- Create a new support ticket in Zammad
- List all users in a Zammad instance
- Update an organization in Zammad
- Delete a group from the helpdesk
- Get the currently logged-in user
Example Configuration
Create a user with an address and a custom field:
{
"type": "zammad",
"parameters": {
"authentication": "tokenAuth",
"resource": "user",
"operation": "create",
"firstname": "John",
"lastname": "Doe",
"additionalFields": {
"email": "john.doe@example.com",
"active": true,
"phone": "+1-555-0123",
"department": "IT Support",
"addressUi": {
"addressDetails": {
"address": "123 Main St",
"city": "New York",
"zip": "10001",
"country": "USA"
}
},
"customFieldsUi": {
"customFieldPairs": [
{ "name": "employee_id", "value": "EMP001" }
]
}
}
}
}
Update a user:
{
"type": "zammad",
"parameters": {
"authentication": "tokenAuth",
"resource": "user",
"operation": "update",
"id": "123",
"updateFields": {
"department": "Customer Success",
"phone": "+1-555-0124",
"active": true,
"customFieldsUi": {
"customFieldPairs": [
{ "name": "role", "value": "manager" }
]
}
}
}
}
Create an organization:
{
"type": "zammad",
"parameters": {
"authentication": "tokenAuth",
"resource": "organization",
"operation": "create",
"name": "Acme Corporation",
"additionalFields": {
"domain": "acme.com",
"active": true,
"shared": true,
"note": "Premium customer",
"customFieldsUi": {
"customFieldPairs": [
{ "name": "account_manager", "value": "Jane Smith" }
]
}
}
}
}
Open a ticket with its first article:
{
"type": "zammad",
"parameters": {
"authentication": "tokenAuth",
"resource": "ticket",
"operation": "create",
"title": "Login Issue",
"group": "IT Support",
"customer": "john.doe@example.com",
"article": {
"articleDetails": {
"subject": "Unable to login to system",
"body": "User reports cannot access the system with correct credentials",
"visibility": "internal",
"sender": "Agent",
"type": "note"
}
},
"additionalFields": {
"customFieldsUi": {
"customFieldPairs": [
{ "name": "priority", "value": "high" }
]
}
}
}
}
Search users, sorted by first name:
{
"type": "zammad",
"parameters": {
"authentication": "tokenAuth",
"resource": "user",
"operation": "getAll",
"returnAll": false,
"limit": 50,
"filters": {
"query": "active:true",
"sortUi": {
"sortDetails": {
"sort_by": "firstname",
"order_by": "asc"
}
}
}
}
}
List every organization:
{
"type": "zammad",
"parameters": {
"authentication": "tokenAuth",
"resource": "organization",
"operation": "getAll",
"returnAll": true
}
}
Open a ticket from an incoming item:
{
"type": "zammad",
"parameters": {
"authentication": "tokenAuth",
"resource": "ticket",
"operation": "create",
"title": "{{ $json.subject }}",
"group": "First-Level Helpdesk",
"customer": "{{ $json.email }}",
"article": {
"articleDetails": {
"subject": "{{ $json.subject }}",
"body": "{{ $json.message }}",
"visibility": "external",
"sender": "Customer",
"type": "email"
}
}
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Zammad helpdesk tool for managing users, organizations, groups, and tickets via the Zammad REST API.
Common Patterns
User management — create users with the required first and last name plus optional contact details, update them to change departments or custom fields, and use Get Many with a query to find specific people.
Organization management — create organizations with a name and domain, set properties such as shared access and VIP status, and link users to them through the user’s Organization field.
Ticket management — create tickets with a title, an owning group and a customer. Use the group name, not its ID, and identify the customer by email address, not ID. Every new ticket needs at least one article.
Parameter Dependencies
limitonly appears whenreturnAllis false- The resource-specific ID field is required for update, delete and get operations
additionalFieldsandupdateFieldsdiffer per resourceupdateFieldsmirrorsadditionalFieldsbut also includes core fields such as first and last name for users- Filtering with sort options is available on the User
getAlloperation only
Frequently asked questions
What does creating a user require?
First and last name are required, with contact details optional. Update lets you change departments or custom fields later.
How do I find a specific person?
Use Get Many with a query, which searches rather than requiring you to know the ID up front.
What can it manage besides tickets?
Users, organizations and groups, so the structural side of the helpdesk is reachable as well as the cases.
Which credential does it need?
A Zammad API credential for your instance.
Build with the Zammad node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Zammad API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.