Reference · Tools
Zammad integration
Manage users, organizations, groups, and support tickets within a Zammad helpdesk system.
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.
- Works as
- Action
- Tool name
zammad- Parameters
- 42
- Outputs
- Output, Error
- Credentials
- Zammad API
- Official docs
- Zammad docs docs.zammad.org
What you can build with Zammad
- 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.
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.
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.
Group: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Group Name | string | Yes | — | |
| Additional Fields | collection | No | {} | |
| — Active | boolean | No | true | |
| — Custom Fields | fixedCollection | No | {} | |
| — — 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 | — |
Group: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Group ID | string | Yes | — | ID of the group to delete. |
Group: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Group ID | string | Yes | — | ID of the group to retrieve. |
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: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Group ID | string | Yes | — | ID of the group to update. |
| Update Fields | collection | No | {} | |
| — Active | boolean | No | true | |
| — Custom Fields | fixedCollection | No | {} | |
| — — 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 | — | |
| — Notes | string | No | — |
Organization: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Organization Name | string | Yes | — | |
| Additional Fields | collection | No | {} | |
| — Active | boolean | No | true | Whether the organization is active. |
| — Custom Fields | fixedCollection | No | {} | |
| — — 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: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Organization ID | string | Yes | — | ID of the organization to delete. |
Organization: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Organization ID | string | Yes | — | ID of the organization to retrieve. |
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: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Organization ID | string | Yes | — | ID of the organization to update. |
| Update Fields | collection | No | {} | |
| — Active | boolean | No | true | Whether the organization is active. |
| — Custom Fields | fixedCollection | No | {} | |
| — — 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. |
Ticket: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Title | string | Yes | — | Title of the ticket to create. |
| 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). |
| Article | fixedCollection | Yes | {} | |
Options: external | ||||
| — Subject | string | No | — | |
| — Body | string | No | — | |
| — Visibility | options | No | internal | |
Options: external (visible to customers), internal (visible to help desk only) | ||||
| — Sender | options | No | Agent | |
Options: Agent, Customer, System (only subject will be displayed in Zammad) | ||||
| — Article Type | options | No | note | |
Options: chat, email, fax, note, phone, sms | ||||
| — Reply To | string | No | — | |
| Additional Fields | collection | No | {} | |
| — Custom Fields | fixedCollection | No | {} | |
| — — 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: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Ticket ID | string | Yes | — | ID of the ticket to delete. |
Ticket: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Ticket ID | string | Yes | — | ID of the ticket to retrieve. |
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) |
User: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| First Name | string | Yes | — | |
| Last Name | string | Yes | — | |
| Additional Fields | collection | No | {} | |
| — Active | boolean | No | true | |
| — Address | fixedCollection | No | {} | |
| — — City | string | No | — | |
| — — Country | string | No | — | |
| — — Street & Number | string | No | — | |
| — — Zip Code | string | No | — | |
| — Custom Fields | fixedCollection | No | {} | |
| — — 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 | — | |
| — Email Address | string | No | — | |
| — Fax | string | No | — | |
| — Notes | string | No | — | |
| — 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 | — | |
| — Phone (Mobile) | string | No | — | |
| — 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 | — |
User: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | ID of the user to delete. |
User: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | ID of the user to retrieve. |
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 | {} | |
Options: asc | ||||
| — Query | string | No | — | Query to filter results by. |
| — Sort | fixedCollection | No | {} | |
| — — 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 | |
Options: asc, desc |
User: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User ID | string | Yes | — | ID of the user to update. |
| Update Fields | collection | No | {} | |
| — Active | boolean | No | true | |
| — Address | fixedCollection | No | {} | |
| — — City | string | No | — | |
| — — Country | string | No | — | |
| — — Street & Number | string | No | — | |
| — — Zip Code | string | No | — | |
| — Custom Fields | fixedCollection | No | {} | |
| — — 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 | — | |
| — Email Address | string | No | — | |
| — Fax | string | No | — | |
| — First Name | string | No | — | |
| — Last Name | string | No | — | |
| — Notes | string | No | — | |
| — 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 | — | |
| — Phone (Mobile) | string | No | — | |
| — 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 | — |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Authentication | options | No | tokenAuth | Authentication method to use. (Basic Auth removed: zammadApi credential schema has no username/password fields.) |
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.
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
This tool manages users, organizations, groups, and tickets within a Zammad helpdesk instance. It is ideal for creating, updating, deleting, and retrieving users, organizations, and groups, and for creating, deleting, and retrieving tickets. The tool produces confirmation of actions taken or detailed information about the requested Zammad resources.
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 Zammad
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 reviewed . Spotted something wrong? Tell us.