Update ticket
Change a ticket's state, priority, group, owner or title.
MCP tool zammad_write → update_ticket
Sets only the fields you pass and returns the ticket as it is afterwards. Names must match list_ticket_options. A pending state needs pending_until, because Zammad asks for a date and time; Pending Close closes the ticket then. The first update of a new ticket moves it to open. Zammad's own triggers and notifications run as for any update by an agent, so a customer can get a mail from them. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| ticket_id integer required | integer | Ticket ID from search_tickets, list_overview_tickets or the ticket address (#ticket/zoom/{ticket_id}). |
| state string | string | State name from list_ticket_options, e.g. open, pending reminder, pending close or closed. |
| priority string | string | Priority name from list_ticket_options, e.g. '3 high'. |
| group string | string | Group name from list_ticket_options. |
| owner string | string | Agent name from list_ticket_options. |
| pending_until datetime | datetime | ISO date and time. Required with state pending reminder or pending close. |
| title string | string | New ticket title. It is also the subject of email articles. |
tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "zammad_write",
"arguments": {
"operation": "update_ticket",
"arguments": {
"ticket_id": 4812,
"group": "Billing",
"priority": "3 high",
"owner": "Nora Weiss"
}
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"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"
},
"isError": false
}