Triggers & Actions
Complete reference for AutoFlow triggers, conditions, and actions in CommFlow.
Triggers & Actions#
Complete reference guide for all AutoFlow triggers, conditions, and actions.
Triggers#
Triggers are events that start your workflows. When the trigger event occurs, the workflow evaluates conditions and executes actions.
Inbox Triggers#
Ticket Created#
Fires when a new ticket is created.
| Setting | Options |
|---|---|
| Inbox | All inboxes, specific inbox |
| Channel | Email, chat, form, all |
| Priority | Any, specific priority |
Available Data:
ticket.id- Ticket IDticket.subject- Subject lineticket.body- Message contentticket.priority- Priority levelticket.channel- Source channelcustomer.*- Customer info
Ticket Updated#
Fires when a ticket is modified.
| Setting | Options |
|---|---|
| Fields | Any field, specific fields |
| Changed from | Previous value filter |
| Changed to | New value filter |
Example:
When: Ticket Updated
If: Priority changed to "Urgent"
Ticket Assigned#
Fires when a ticket is assigned or reassigned.
| Setting | Options |
|---|---|
| Assigned to | Any, specific user/team |
| Assigned from | Unassigned, specific user |
Ticket Resolved#
Fires when a ticket is resolved or closed.
| Setting | Options |
|---|---|
| Resolution | Resolved, Closed, any |
| By | Agent, customer, auto |
SLA Warning#
Fires when SLA approaches breach.
| Setting | Options |
|---|---|
| Threshold | 75%, 90%, custom |
| SLA Type | First response, resolution |
SLA Breached#
Fires when SLA is breached.
| Setting | Options |
|---|---|
| SLA Type | First response, resolution |
| Duration | Immediately, after delay |
Team Chat Triggers#
Message Sent#
Fires when a message is posted.
| Setting | Options |
|---|---|
| Channel | All, specific channels |
| Contains | Keyword filters |
| From | Any, specific users |
Available Data:
message.content- Message textmessage.author- Who sent itchannel.name- Channel name
Channel Created#
Fires when a new channel is created.
| Setting | Options |
|---|---|
| Type | Public, private, any |
| Name contains | Name filter |
Member Joined#
Fires when someone joins a channel.
| Setting | Options |
|---|---|
| Channel | All, specific channels |
| Member | Any, specific users |
Live Support Triggers#
Chat Started#
Fires when a visitor starts a chat.
| Setting | Options |
|---|---|
| Page URL | Any, specific pages |
| Visitor type | New, returning |
Available Data:
visitor.name- Visitor namevisitor.email- Visitor emailvisitor.page- Current pagevisitor.location- Geographic location
Chat Ended#
Fires when a chat session ends.
| Setting | Options |
|---|---|
| Ended by | Visitor, agent, timeout |
| Duration | Minimum duration |
Visitor Action#
Fires on specific visitor behaviors.
| Setting | Options |
|---|---|
| Action | Page view, click, form submit |
| Element | Specific page/element |
TaskFlow Triggers#
Task Created#
Fires when a new task is created.
| Setting | Options |
|---|---|
| Project | All, specific projects |
| List | Any, specific lists |
Available Data:
task.title- Task titletask.description- Task descriptiontask.assignee- Assigned usertask.dueDate- Due dateproject.name- Project name
Task Moved#
Fires when a task moves between lists.
| Setting | Options |
|---|---|
| From | Any list, specific list |
| To | Any list, specific list |
Example:
When: Task moved to "Done"
Then: Notify project manager
Task Completed#
Fires when a task is marked complete.
| Setting | Options |
|---|---|
| Project | All, specific projects |
| With label | Filter by labels |
Task Overdue#
Fires when a task passes its due date.
| Setting | Options |
|---|---|
| Duration | Immediately, after delay |
| Priority | Any, specific priorities |
DataFort Triggers#
File Uploaded#
Fires when a file is uploaded.
| Setting | Options |
|---|---|
| Folder | Any, specific folders |
| Type | Any, specific file types |
File Shared#
Fires when a file is shared.
| Setting | Options |
|---|---|
| Shared with | Anyone, specific users |
| Permission | View, edit, manage |
Schedule Triggers#
Time-Based#
Fires on a schedule.
| Setting | Options |
|---|---|
| Frequency | Hourly, daily, weekly, monthly |
| Time | Specific time |
| Days | Specific days |
Example:
When: Every Monday at 9:00 AM
Then: Send weekly summary report
Conditions#
Conditions filter when workflows should run. All conditions must pass for actions to execute.
Comparison Operators#
| Operator | Description | Example |
|---|---|---|
| Equals | Exact match | priority = "High" |
| Not equals | Does not match | status != "Closed" |
| Contains | Includes text | subject contains "urgent" |
| Does not contain | Excludes text | body not contains "spam" |
| Starts with | Begins with | email starts with "support" |
| Ends with | Ends with | email ends with "@company.com" |
| Is empty | No value | assignee is empty |
| Is not empty | Has value | customer.email is not empty |
| Greater than | Numeric comparison | response_time > 60 |
| Less than | Numeric comparison | messages < 5 |
Logic Operators#
AND Conditions#
All must be true:
IF:
priority = "Urgent"
AND status = "Open"
AND assignee is empty
OR Conditions#
Any must be true:
IF:
priority = "Urgent"
OR priority = "High"
OR VIP = true
Grouped Conditions#
Complex logic:
IF:
(priority = "Urgent" OR VIP = true)
AND
(status = "Open" AND assignee is empty)
Condition Fields#
Ticket Fields#
| Field | Type | Example |
|---|---|---|
priority | Select | Urgent, High, Normal, Low |
status | Select | Open, Pending, Resolved, Closed |
channel | Select | Email, Chat, Form |
assignee | User | User ID or empty |
team | Team | Team ID |
subject | Text | Subject line |
body | Text | Message content |
tags | Array | Tag names |
created_at | Date | Creation timestamp |
Customer Fields#
| Field | Type | Example |
|---|---|---|
customer.name | Text | Customer name |
customer.email | Text | Email address |
customer.company | Text | Company name |
customer.plan | Select | Plan name |
customer.lifetime_value | Number | Total value |
customer.tickets_count | Number | Total tickets |
Visitor Fields#
| Field | Type | Example |
|---|---|---|
visitor.country | Text | Country code |
visitor.page | Text | Current URL |
visitor.visits | Number | Visit count |
visitor.is_returning | Boolean | true/false |
Actions#
Actions are what happens when a workflow runs.
Assignment Actions#
Assign to User#
Assign to a specific person:
Action: Assign to User
User: sarah@company.comAssign to Team#
Assign to a team queue:
Action: Assign to Team
Team: Support Team
Method: Round-robinAssign Round-Robin#
Distribute evenly:
Action: Assign Round-Robin
Users: [sarah, john, mike]
Skip: Offline usersUnassign#
Remove assignee:
Action: UnassignStatus Actions#
Change Status#
Update status:
Action: Change Status
Status: PendingChange Priority#
Update priority:
Action: Change Priority
Priority: HighAdd Labels#
Apply labels:
Action: Add Labels
Labels: [urgent, needs-review]Remove Labels#
Remove labels:
Action: Remove Labels
Labels: [pending-review]Notification Actions#
Send Email#
Send email notification:
Action: Send Email
To: manager@company.com
Subject: "Urgent ticket from {{customer.name}}"
Body: |
A new urgent ticket has been created:
Subject: {{ticket.subject}}
Customer: {{customer.name}} ({{customer.email}})
Please review immediately.Send In-App Notification#
Notify within CommFlow:
Action: Send Notification
To: @sarah
Message: "New VIP ticket assigned to you: {{ticket.subject}}"Send to Slack#
Post to Slack channel:
Action: Send to Slack
Channel: #support-alerts
Message: "🚨 Urgent ticket: {{ticket.subject}}"Send to Webhook#
Call external URL:
Action: Send Webhook
URL: https://api.example.com/notifications
Method: POST
Body: {
"event": "urgent_ticket",
"ticket_id": "{{ticket.id}}",
"customer": "{{customer.email}}"
}Communication Actions#
Send Reply#
Reply to customer:
Action: Send Reply
To: Customer
Message: |
Hi {{customer.name}},
Thank you for contacting us. We've received your message
and our team is reviewing it now.
We'll get back to you within 2 hours.
Best regards,
Support TeamAdd Internal Note#
Add private note:
Action: Add Internal Note
Note: "VIP customer - handle with priority. Account value: {{customer.lifetime_value}}"Data Actions#
Update Field#
Modify ticket/task fields:
Action: Update Field
Field: custom_field.escalation_time
Value: "{{timestamp}}"Create Task#
Create a TaskFlow task:
Action: Create Task
Project: Support Follow-ups
Title: "Follow up: {{ticket.subject}}"
Assignee: {{ticket.assignee}}
Due: +2 daysCreate Ticket#
Create new ticket:
Action: Create Ticket
Subject: "Follow-up needed: {{original.subject}}"
Priority: NormalDelay Actions#
Wait#
Pause before next action:
Action: Wait
Duration: 5 minutesWait Until#
Wait for condition:
Action: Wait Until
Condition: business_hours = true
Timeout: 24 hoursVariables Reference#
Available Variables#
Use variables in action templates:
| Variable | Description |
|---|---|
{{ticket.id}} | Ticket ID |
{{ticket.subject}} | Subject line |
{{ticket.body}} | Full message |
{{ticket.url}} | Link to ticket |
{{customer.name}} | Customer name |
{{customer.email}} | Customer email |
{{assignee.name}} | Assignee name |
{{assignee.email}} | Assignee email |
{{timestamp}} | Current time |
{{timestamp+1h}} | Time + 1 hour |
Variable Modifiers#
| Modifier | Example | Output |
|---|---|---|
upper | {{name|upper}} | JOHN |
lower | {{name|lower}} | john |
truncate:20 | {{body|truncate:20}} | First 20 chars... |
default:N/A | {{phone|default:N/A}} | Value or "N/A" |
Next Steps#
- Building Workflows - Advanced patterns
- AutoFlow Overview - Return to overview
Was this page helpful?
Let us know if you found what you were looking for.