Build a workflow
Automate routing, SLAs, and housekeeping for conversations and tickets.
Not every support action needs a person to trigger it. Workflows watch for events on conversations and tickets, then run a sequence of conditions and actions automatically, no teammate required.
Find them at Admin → AI & Automation → Workflows.
How a workflow is built
A workflow starts with a trigger, then flows through condition, branch, wait, and action nodes on a graph. Conditions gate whether the flow continues. Branches split it into named paths. Wait nodes pause it, for up to 90 days, before continuing.
Tip:
Start from a template rather than a blank canvas. Most routing and SLA needs are already covered by one.
Triggers
Trigger | Fires when |
|---|---|
| A new conversation starts |
| A conversation's status changes |
| A conversation is assigned or unassigned, including auto-routing |
| A conversation's priority changes |
| A conversation attribute is set or changed |
| A customer submits a satisfaction rating |
| A visitor or teammate sends a message |
| A teammate adds an internal note |
| Quinn hands a conversation to a human |
Customer unresponsive | The customer hasn't replied within a set time |
Teammate unresponsive | Your team hasn't replied within a set time |
| An SLA deadline is close |
| An SLA deadline has passed |
| A new ticket is created |
| A ticket's status category changes |
Note:
ticket.createdandticket.status_changedonly dispatch when the ticket has a linked customer conversation. A ticket created without a linked conversation never fires these triggers.
Actions
Action | Does |
|---|---|
Assign agent | Assigns the conversation or ticket to a specific teammate |
Assign team | Assigns to a team |
Add tag | Adds a tag |
Remove tag | Removes a tag |
Set priority | Changes priority |
Snooze | Delays the conversation for a set duration |
Close | Closes the conversation |
Reopen | Reopens the conversation |
Apply SLA | Applies an SLA policy |
Set attribute | Sets a structured conversation attribute |
Send webhook | Sends the event to any HTTPS endpoint |
Add note | Adds an internal note |
Set ticket status | Changes a ticket's status |
Convert to ticket | Converts the conversation into a ticket |
Note:
Webhook actions only accept HTTPS URLs. See Webhooks for the payload format and signature verification.
Versioning and preview
Every save creates a new version, up to 50 per workflow. Restore any earlier version if a change didn't work out the way you expected.
Before you publish, run Preview against a real conversation. It's read-only: conditions and branches evaluate for real against that conversation's data, but nothing is written. No message is sent, no action runs, no run is recorded.
Manual runs
Sometimes you want a workflow to run once, right now, against the conversation you're looking at, without waiting for its trigger to fire naturally. A manual run does exactly that from the conversation composer.
Note:
A manual run skips the trigger-time targeting checks (audience, channel, send window, and per-person frequency caps) but not the workflow's own logic. Every condition and branch inside the graph still evaluates normally.
Next steps
- Start from a workflow template -- Skip the blank canvas
- Workflow blocks -- Build interactive Messenger conversations inside a workflow
- Webhooks -- Send workflow events to external systems
Was this helpful?
Your feedback shapes what we write next.