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:
| Field | Required | Description |
|---|---|---|
id | No | Stable identifier. If omitted, the server assigns one when saved. |
enabled | No | Defaults to true. Disabled rules are ignored. |
name | No | Label for logs and escalation messages. Max 80 characters. |
trigger | Yes | When to evaluate this rule (see below). |
match | For message_contains | Case-insensitive substring to find in new ticket messages. Max 200 characters. |
ticketTypeId | No | If set, the rule only runs for that ticket type id. |
actions | Yes | One or more actions to run when the rule matches. |
Triggers
| Trigger | When it fires |
|---|---|
ticket_opened | A new ticket channel is created. |
ticket_escalated | A ticket is escalated to staff. |
message_contains | A customer or staff message is posted and contains match. |
csat_negative | The ticket creator submits a low CSAT rating after close. |
sla_breach | A configured SLA target is missed. |
Actions
| Action | Effect |
|---|---|
{ "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_robinin automation. - Use
ticketTypeIdto scope noisy keyword rules to a single queue. - Escalation from automation records the rule name in the escalation reason for staff context.
