Triage Agent Ticket
POST/api/support/agent/tickets/:ticket/triage
Takes one ticket out of the triage pile. accept assigns it to the caller and sets it to open; decline closes it with the reason recorded on the ticket timeline, optionally sending that reason to the customer as a public reply.
support:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Either way the ticket is stamped as triaged (triaged_at, triaged_by_user_id) and leaves the triage queue. Assigning, changing the status, snoozing or merging a ticket stamps it too, so the pile drains whichever way an agent works — a customer resolving or reopening their own ticket does not.
Path parameters
ticket(integer) — the ticket id.
Request body
action(required, string) —acceptordeclinereason(required fordecline, string, max 2000) — why the ticket is being declined; recorded on the timeline and ignored for anacceptnotify_customer(optional, boolean, default false) —declineonly: send the reason to the customer as a public reply that closes the ticket, instead of closing it silently
The response is the ticket after the action, in the agent shape.
Authentication: Bearer token with the support:write scope, or an authenticated session, from a caller with an active support role that can work tickets.
If this ticket was merged into another ticket, the request is refused with a 422 whose merged_into (id, number) names the live ticket — send the action there instead.
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthorized
Response Headers
Forbidden
Response Headers
Not Found
Response Headers
Unprocessable Content
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.