Reference · Tools

Zammad

Manage users, organizations, groups, and tickets in a Zammad helpdesk instance.

Action Communication v1

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

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Zammad API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Groupgroup
Organizationorganization
Ticketticket
Useruser

Operations

OperationValueDescription
CreatecreateCreate a user
DeletedeleteDelete a user
GetgetRetrieve a user
Get ManygetAllRetrieve many users
Get SelfgetSelfRetrieve currently logged-in user
UpdateupdateUpdate 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

ParameterTypeRequiredDefaultDescription
First NamestringYesGiven name of the new user. Supports expressions.
Last NamestringYesFamily name of the new user. Supports expressions.
Additional FieldscollectionNo{}Optional profile values to set on the new user.
— ActivebooleanNotrueWhether the user account is active.
— AddressfixedCollectionNo{}Postal address of the user.
— — CitystringNoCity of the address.
— — CountrystringNoCountry of the address.
— — Street & NumberstringNoStreet line of the address.
— — Zip CodestringNoPostal code of the address.
— Custom FieldsfixedCollectionNo{}Values for custom User attributes.
— — Field NamestringNoName of the custom field to set. Find custom field names in Zammad Admin > Object Manager.
— — Field ValuestringNoValue to set on the custom field.
— DepartmentstringNoDepartment the user belongs to.
— Email AddressstringNoPrimary email address of the user.
— FaxstringNoFax number of the user.
— NotesstringNoFree-text note stored on the user.
— Organization IDstringNoID of the organization to assign to the user. Find organization IDs via the Get Many operation on the Organization resource.
— Phone (Landline)stringNoLandline number of the user.
— Phone (Mobile)stringNoMobile number of the user.
— VerifiedbooleanNofalseWhether the user has been verified.
— VIPbooleanNofalseWhether the user is a Very Important Person.
— WebsitestringNoWebsite of the user.

User: Update

ParameterTypeRequiredDefaultDescription
User IDstringYesID of the user to update. Supports expressions.
Update FieldscollectionNo{}Values to change on the user.
— ActivebooleanNotrueWhether the user account is active.
— AddressfixedCollectionNo{}Postal address of the user.
— — CitystringNoCity of the address.
— — CountrystringNoCountry of the address.
— — Street & NumberstringNoStreet line of the address.
— — Zip CodestringNoPostal code of the address.
— Custom FieldsfixedCollectionNo{}Values for custom User attributes.
— — Field NamestringNoName of the custom field to set.
— — Field ValuestringNoValue to set on the custom field.
— DepartmentstringNoDepartment the user belongs to.
— Email AddressstringNoPrimary email address of the user.
— FaxstringNoFax number of the user.
— First NamestringNoGiven name of the user.
— Last NamestringNoFamily name of the user.
— NotesstringNoFree-text note stored on the user.
— Organization NamestringNoName of the organization to assign to the user. Note: the update endpoint uses organization name, not ID.
— Phone (Landline)stringNoLandline number of the user.
— Phone (Mobile)stringNoMobile number of the user.
— VerifiedbooleanNofalseWhether the user has been verified.
— VIPbooleanNofalseWhether the user is a Very Important Person.
— WebsitestringNoWebsite of the user.

User: Get

ParameterTypeRequiredDefaultDescription
User IDstringYesID of the user to retrieve. Supports expressions.

User: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Search and sort options for the user list.
— QuerystringNoQuery to filter results by.
— SortfixedCollectionNo{}How to order the results.
— — Sort KeystringNoField name to sort by. Find field names in Zammad Admin > Object Manager for the User object.
— — Sort OrderoptionsNoascDirection of the sort.
Options: asc, desc

User: Delete

ParameterTypeRequiredDefaultDescription
User IDstringYesID of the user to delete. Supports expressions.

Organization: Create

ParameterTypeRequiredDefaultDescription
Organization NamestringYesName of the new organization. Supports expressions.
Additional FieldscollectionNo{}Optional values to set on the new organization.
— ActivebooleanNotrueWhether the organization is active.
— Custom FieldsfixedCollectionNo{}Values for custom Organization attributes.
— — Field NamestringNoName of the custom field to set.
— — ValuestringNoValue to set on the custom field.
— DomainstringNoThe domain associated with the organization.
— Domain AssignmentbooleanNotrueWhether to assign users based on their email domain.
— NotesstringNoA note about the organization.
— SharedbooleanNofalseWhether the organization is shared with other instances.
— VIPbooleanNofalseWhether the organization is marked as VIP.

Organization: Update

ParameterTypeRequiredDefaultDescription
Organization IDstringYesID of the organization to update. Supports expressions.
Update FieldscollectionNo{}Values to change on the organization.
— ActivebooleanNotrueWhether the organization is active.
— Custom FieldsfixedCollectionNo{}Values for custom Organization attributes.
— — Field NamestringNoName of the custom field to set.
— — ValuestringNoValue to set on the custom field.
— DomainstringNoThe domain associated with the organization.
— Domain AssignmentbooleanNotrueWhether to assign users based on their email domain.
— NotesstringNoA note about the organization.
— SharedbooleanNofalseWhether the organization is shared with other instances.
— VIPbooleanNofalseWhether the organization is marked as VIP.

Organization: Get

ParameterTypeRequiredDefaultDescription
Organization IDstringYesID of the organization to retrieve. Supports expressions.

Organization: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Organization: Delete

ParameterTypeRequiredDefaultDescription
Organization IDstringYesID of the organization to delete. Supports expressions.

Group: Create

ParameterTypeRequiredDefaultDescription
Group NamestringYesName of the new group. Supports expressions.
Additional FieldscollectionNo{}Optional values to set on the new group.
— ActivebooleanNotrueWhether the group is active.
— Custom FieldsfixedCollectionNo{}Values for custom Group attributes.
— — Field NamestringNoName of the custom field to set.
— — Field ValuestringNoValue to set on the custom field.
— NotesstringNoA note about the group.

Group: Update

ParameterTypeRequiredDefaultDescription
Group IDstringYesID of the group to update. Supports expressions.
Update FieldscollectionNo{}Values to change on the group.
— ActivebooleanNotrueWhether the group is active.
— Custom FieldsfixedCollectionNo{}Values for custom Group attributes.
— — Field NamestringNoName of the custom field to set.
— — Field ValuestringNoValue to set on the custom field.
— Group NamestringNoNew name for the group.
— NotesstringNoA note about the group.

Group: Get

ParameterTypeRequiredDefaultDescription
Group IDstringYesID of the group to retrieve. Supports expressions.

Group: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Group: Delete

ParameterTypeRequiredDefaultDescription
Group IDstringYesID of the group to delete. Supports expressions.

Ticket: Create

ParameterTypeRequiredDefaultDescription
TitlestringYesTitle of the ticket to create. Supports expressions.
GroupstringYesName 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 EmailstringYesEmail address of the customer concerned in the ticket. Use the customer email (not ID). Supports expressions.
ArticlefixedCollectionYes{}The first article (message) on the ticket.
— SubjectstringNoSubject line of the article.
— BodystringNoBody text of the article.
— VisibilityoptionsNointernalWho can see the article.
Options: external (visible to customers), internal (visible to help desk only)
— SenderoptionsNoAgentWho the article is attributed to.
Options: Agent, Customer, System (only the subject is displayed in Zammad)
— Article TypeoptionsNonoteChannel the article represents.
Options: chat, email, fax, note, phone, sms
— Reply TostringNoReply-to address for the article.
Additional FieldscollectionNo{}Optional values to set on the new ticket.
— Custom FieldsfixedCollectionNo{}Values for custom Ticket attributes.
— — Field NamestringNoName of the custom field to set. Find custom field names in Zammad Admin > Object Manager for the Ticket object.
— — ValuestringNoValue to set on the custom field.

Ticket: Get

ParameterTypeRequiredDefaultDescription
Ticket IDstringYesID of the ticket to retrieve. Supports expressions.

Ticket: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Ticket: Delete

ParameterTypeRequiredDefaultDescription
Ticket IDstringYesID of the ticket to delete. Supports expressions.

All Operations

ParameterTypeRequiredDefaultDescription
AuthenticationoptionsNotokenAuthAuthentication method to use.
Options: tokenAuth
Max ConcurrencynumberNo10Maximum 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, update and delete.
  • getAll fans 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.
  • delete returns nothing from Zammad, so the item carries success: true.
  • Ticket create and get also fetch the ticket’s articles and attach them as an articles array on the item.
  • User getAll strips each user’s internal _preferences blob 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

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes 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

  • limit only appears when returnAll is false
  • The resource-specific ID field is required for update, delete and get operations
  • additionalFields and updateFields differ per resource
  • updateFields mirrors additionalFields but also includes core fields such as first and last name for users
  • Filtering with sort options is available on the User getAll operation 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 BusyBot

Last updated . Spotted something wrong? Tell us.