Skip to content

Automation rules

Automation rules run actions when tickets match triggers you define. Configure them in Settings → Automation as a JSON array (up to 25 rules per server).

Available on Plus and Enterprise plans.

Rule shape

Each rule is an object with:

FieldRequiredDescription
idNoStable identifier. If omitted, the server assigns one when saved.
enabledNoDefaults to true. Disabled rules are ignored.
nameNoLabel for logs and escalation messages. Max 80 characters.
triggerYesWhen to evaluate this rule (see below).
matchFor message_containsCase-insensitive substring to find in new ticket messages. Max 200 characters.
ticketTypeIdNoIf set, the rule only runs for that ticket type id.
actionsYesOne or more actions to run when the rule matches.

Triggers

TriggerWhen it fires
ticket_openedA new ticket channel is created.
ticket_escalatedA ticket is escalated to staff.
message_containsA customer or staff message is posted and contains match.
csat_negativeThe ticket creator submits a low CSAT rating after close.
sla_breachA configured SLA target is missed.

Actions

ActionEffect
{ "type": "add_tag", "tag": "billing" }Adds a tag to ticket metadata (max 40 characters).
{ "type": "escalate" }Escalates the ticket and pauses bot replies.
{ "type": "assign_round_robin" }Assigns the ticket using your Routing & SLA assignment settings.

Each rule must include at least one valid action. Invalid rules are dropped when you save.

Example

json
[
  {
    "id": "billing-escalate",
    "enabled": true,
    "name": "Escalate billing keywords",
    "trigger": "message_contains",
    "match": "refund",
    "ticketTypeId": "billing",
    "actions": [
      { "type": "add_tag", "tag": "refund" },
      { "type": "escalate" }
    ]
  },
  {
    "id": "assign-on-open",
    "enabled": true,
    "name": "Assign new tickets",
    "trigger": "ticket_opened",
    "actions": [{ "type": "assign_round_robin" }]
  }
]

Paste a JSON array of rules into the editor. The server validates and normalizes the payload when you click Save settings.

Tips

  • Test assignment rules separately under Settings → Routing & SLA before chaining assign_round_robin in automation.
  • Use ticketTypeId to scope noisy keyword rules to a single queue.
  • Escalation from automation records the rule name in the escalation reason for staff context.

Related: Settings · Tickets · Insights

Thoth — answer once, reuse forever. · Blog · llm.txt (full docs for LLMs)