Zammad logo Zammad automation · runs daily

Triage new Zammad tickets with AI

Every morning Unassigned & Open Tickets holds a fresh batch from the shared inbox, and someone has to read each one before it has a group, an owner and a priority.

Cotlet does it in your own Zammad account with list_overview_tickets, get_ticket, list_ticket_articles, list_ticket_options, update_ticket, add_tag and add_internal_note, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Can Zammad do this on its own?

Zammad triggers can set group, priority, owner and tags when a new ticket matches conditions you define, and one auto reply trigger is active by default (checked 22 Oct 2026). A trigger matches attributes and text conditions; it does not read a ticket and decide. The AI features, such as ticket summaries and writing tools, are set up by your admin. Nothing in Zammad applies a rule written in plain words.

How you do it in Zammad today

  1. An agent opens Overviews in the navigation bar, or presses o, and picks Unassigned & Open Tickets, an overview Zammad ships by default.
  2. Each ticket opens as its own tab. In the ticket sidebar the agent sets group, owner, state and priority, and clicks + Tag to add tags.
  3. A reminder goes into the default Note article, which is internal, so the customer cannot see it. Then the agent clicks Update, because most changes need that explicit update.
  4. For the same change on many tickets, the agent drags them from the overview onto Run Macro and drops them on a macro an admin built under Manage > Macros.
  5. The queue refills after every mailing, and a ticket that needs a decision still gets read by a person before it is sorted.

How to triage new Zammad tickets with AI

Prompt

Go through Unassigned & Open Tickets in Zammad. Set the group and priority from what the customer wrote, assign billing questions to Nora Weiss, add a tag and leave a one-line internal note with the reason. Leave unclear ones for me.
  1. 01

    Read the whole queue

    Your agent reads the overview you name with list_overview_tickets and follows next_cursor to the end, so a Monday backlog is judged as one batch. Zammad shows an account only the tickets of its groups, so the queue is what that agent user can see.

  2. 02

    Read before judging

    For each ticket, get_ticket gives the current attributes and tags, and list_ticket_articles gives the conversation. The agent bases the decision on the customer's own words, not on the title alone.

  3. 03

    Check the values exist

    list_ticket_options returns the groups, owners, states and priorities your account can set. A group or owner from your rule that is not in the list stops the run before any ticket changes.

  4. 04

    Apply your rule

    update_ticket sets group, priority and owner in one call, and add_tag adds the tag. The first update of a new ticket moves it to open as well, so the agent reports that change too. Tickets that match no rule are left untouched and listed for you.

  5. 05

    Say why

    add_internal_note writes one line per ticket, for example "Billing: customer names a double charge on an invoice". Colleagues see why a ticket moved, and the customer sees nothing.

What you get back

Example data

Unassigned & Open Tickets: 14
Sorted 11
- Refund for a double charge: Billing, 3 high, Nora Weiss
- Cannot reset my password: Support, 2 normal, tag password
Left for you 3:
- "Your product is a scam": tone, not a request
- Two tickets with no message body

Other ways to ask

  • Every hour, find tickets whose first message mentions an outage and set them to 3 high.
  • Tag every new ticket with the product it names and change nothing else.
  • List the new tickets I should look at first and say why, but do not change any.
  • Send tickets from our biggest customers to the Key Accounts group and leave the rest.

What Zammad allows, and what to know first

  • Zammad's default priorities are 1 low, 2 normal and 3 high, and out of the box a priority only highlights the ticket; admins build automation on it.
  • A new ticket switches to open the first time it is updated, so update_ticket on a new ticket changes its state as well.
  • Customers cannot set a priority on their own tickets, so the priority in your queue comes from agents and rules.
  • Zammad triggers run when a ticket is updated, and setting a tag on its own does not necessarily start one, so a tag from your agent will not always fire a trigger.
  • Which tickets an account sees depends on its group permissions and on whether the user is an agent, so a role without a group sees a smaller queue.

update_ticket and add_internal_note ask for your OK by default. To run it daily without you, switch confirmation off for those tools in your dashboard.

Sources: Zammad User docs: Find Tickets · Zammad User docs: Ticket Basics · Zammad Admin docs: Trigger · Zammad API: Tickets

Call update_ticket from a script

curl

curl -X PATCH https://cotlet.dev/api/v1/zammad/tickets/4812 \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"group":"Billing","priority":"3 high","owner":"Nora Weiss"}'

Example response

{
  "ticket_id": 4812,
  "number": "31004812",
  "title": "Refund for a double charge",
  "state": "open",
  "priority": "3 high",
  "group": "Billing",
  "owner": "Nora Weiss",
  "updated_at": "2026-10-22T08:03:00.000Z"
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is zammad_write → update_ticket. Example data.

Schedule it in n8n, Make, Zapier or cron

Zammad tools this automation uses

Cotlet Zammad tools used to triage new Zammad tickets with AI
Tool Parameters
list_overview_tickets overview, limit, cursor
get_ticket ticket_id
list_ticket_articles ticket_id, cursor
list_ticket_options none
update_ticket ticket_id, state, priority, group, owner, pending_until, title
add_tag ticket_id, tag
add_internal_note ticket_id, body
All 14 Zammad tools with descriptions

Frequently asked questions

Why not set this up as a Zammad trigger?

A trigger fits fixed conditions, such as a sender domain or a keyword in the title. It cannot judge what a customer means, which is the part your agent does here. Use both: triggers for the exact rules, the agent for the rest.

Is it safe to connect Zammad to Cotlet?

Yes. You sign in to Zammad yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Zammad once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

Give your agent access to Zammad.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Zammad.