Search all guides

Reference · Tools

Zammad integration

Manage users, organizations, groups, and support tickets within a Zammad helpdesk system.

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.

Works as
Action
Tool name
zammad
Operations
6 — Create , Delete , Get , Get Many , Get Self and 1 more
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

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.

Group: Create

ParameterTypeRequiredDefaultDescription
Group NamestringYes—
Additional FieldscollectionNo{}
— ActivebooleanNotrue
— Custom FieldsfixedCollectionNo{}
— — Field NamestringNo—Name of the custom field to set.
— — Field ValuestringNo—Value to set on the custom field.
— NotesstringNo—

Group: Delete

ParameterTypeRequiredDefaultDescription
Group IDstringYes—ID of the group to delete.

Group: Get

ParameterTypeRequiredDefaultDescription
Group IDstringYes—ID of the group to retrieve.

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: Update

ParameterTypeRequiredDefaultDescription
Group IDstringYes—ID of the group to update.
Update FieldscollectionNo{}
— ActivebooleanNotrue
— Custom FieldsfixedCollectionNo{}
— — Field NamestringNo—Name of the custom field to set.
— — Field ValuestringNo—Value to set on the custom field.
— Group NamestringNo—
— NotesstringNo—

Organization: Create

ParameterTypeRequiredDefaultDescription
Organization NamestringYes—
Additional FieldscollectionNo{}
— ActivebooleanNotrueWhether the organization is active.
— Custom FieldsfixedCollectionNo{}
— — Field NamestringNo—Name of the custom field to set.
— — ValuestringNo—Value to set on the custom field.
— DomainstringNo—The domain associated with the organization.
— Domain AssignmentbooleanNotrueWhether to assign users based on their email domain.
— NotesstringNo—A note about the organization.
— SharedbooleanNofalseWhether the organization is shared with other instances.
— VIPbooleanNofalseWhether the organization is marked as VIP.

Organization: Delete

ParameterTypeRequiredDefaultDescription
Organization IDstringYes—ID of the organization to delete.

Organization: Get

ParameterTypeRequiredDefaultDescription
Organization IDstringYes—ID of the organization to retrieve.

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: Update

ParameterTypeRequiredDefaultDescription
Organization IDstringYes—ID of the organization to update.
Update FieldscollectionNo{}
— ActivebooleanNotrueWhether the organization is active.
— Custom FieldsfixedCollectionNo{}
— — Field NamestringNo—Name of the custom field to set.
— — ValuestringNo—Value to set on the custom field.
— DomainstringNo—The domain associated with the organization.
— Domain AssignmentbooleanNotrueWhether to assign users based on their email domain.
— NotesstringNo—A note about the organization.
— SharedbooleanNofalseWhether the organization is shared with other instances.
— VIPbooleanNofalseWhether the organization is marked as VIP.

Ticket: Create

ParameterTypeRequiredDefaultDescription
TitlestringYes—Title of the ticket to create.
GroupstringYes—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 EmailstringYes—Email address of the customer concerned in the ticket. Use the customer email (not ID).
ArticlefixedCollectionYes{}
Options: external
— SubjectstringNo—
— BodystringNo—
— VisibilityoptionsNointernal
Options: external (visible to customers), internal (visible to help desk only)
— SenderoptionsNoAgent
Options: Agent, Customer, System (only subject will be displayed in Zammad)
— Article TypeoptionsNonote
Options: chat, email, fax, note, phone, sms
— Reply TostringNo—
Additional FieldscollectionNo{}
— Custom FieldsfixedCollectionNo{}
— — Field NamestringNo—Name of the custom field to set. Find custom field names in Zammad Admin > Object Manager for the Ticket object.
— — ValuestringNo—Value to set on the custom field.

Ticket: Delete

ParameterTypeRequiredDefaultDescription
Ticket IDstringYes—ID of the ticket to delete.

Ticket: Get

ParameterTypeRequiredDefaultDescription
Ticket IDstringYes—ID of the ticket to retrieve.

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)

User: Create

ParameterTypeRequiredDefaultDescription
First NamestringYes—
Last NamestringYes—
Additional FieldscollectionNo{}
— ActivebooleanNotrue
— AddressfixedCollectionNo{}
— — CitystringNo—
— — CountrystringNo—
— — Street & NumberstringNo—
— — Zip CodestringNo—
— Custom FieldsfixedCollectionNo{}
— — Field NamestringNo—Name of the custom field to set. Find custom field names in Zammad Admin > Object Manager.
— — Field ValuestringNo—Value to set on the custom field.
— DepartmentstringNo—
— Email AddressstringNo—
— FaxstringNo—
— NotesstringNo—
— Organization IDstringNo—ID of the organization to assign to the user. Find organization IDs via the Get Many operation on the Organization resource.
— Phone (Landline)stringNo—
— Phone (Mobile)stringNo—
— VerifiedbooleanNofalseWhether the user has been verified.
— VIPbooleanNofalseWhether the user is a Very Important Person.
— WebsitestringNo—

User: Delete

ParameterTypeRequiredDefaultDescription
User IDstringYes—ID of the user to delete.

User: Get

ParameterTypeRequiredDefaultDescription
User IDstringYes—ID of the user to retrieve.

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{}
Options: asc
— QuerystringNo—Query to filter results by.
— SortfixedCollectionNo{}
— — Sort KeystringNo—Field name to sort by. Find field names in Zammad Admin > Object Manager for the User object.
— — Sort OrderoptionsNoasc
Options: asc, desc

User: Update

ParameterTypeRequiredDefaultDescription
User IDstringYes—ID of the user to update.
Update FieldscollectionNo{}
— ActivebooleanNotrue
— AddressfixedCollectionNo{}
— — CitystringNo—
— — CountrystringNo—
— — Street & NumberstringNo—
— — Zip CodestringNo—
— Custom FieldsfixedCollectionNo{}
— — Field NamestringNo—Name of the custom field to set.
— — Field ValuestringNo—Value to set on the custom field.
— DepartmentstringNo—
— Email AddressstringNo—
— FaxstringNo—
— First NamestringNo—
— Last NamestringNo—
— NotesstringNo—
— Organization NamestringNo—Name of the organization to assign to the user. Note: the update endpoint uses organization name, not ID.
— Phone (Landline)stringNo—
— Phone (Mobile)stringNo—
— VerifiedbooleanNofalseWhether the user has been verified.
— VIPbooleanNofalseWhether the user is a Very Important Person.
— WebsitestringNo—

All Operations

ParameterTypeRequiredDefaultDescription
AuthenticationoptionsNotokenAuthAuthentication method to use. (Basic Auth removed: zammadApi credential schema has no username/password fields.)
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.

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

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

  • 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 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 BusyBot

Last reviewed . Spotted something wrong? Tell us.