5 min read

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.

SettingOptions
InboxAll inboxes, specific inbox
ChannelEmail, chat, form, all
PriorityAny, specific priority

Available Data:

  • ticket.id - Ticket ID
  • ticket.subject - Subject line
  • ticket.body - Message content
  • ticket.priority - Priority level
  • ticket.channel - Source channel
  • customer.* - Customer info

Ticket Updated#

Fires when a ticket is modified.

SettingOptions
FieldsAny field, specific fields
Changed fromPrevious value filter
Changed toNew value filter

Example:

When: Ticket Updated
If: Priority changed to "Urgent"

Ticket Assigned#

Fires when a ticket is assigned or reassigned.

SettingOptions
Assigned toAny, specific user/team
Assigned fromUnassigned, specific user

Ticket Resolved#

Fires when a ticket is resolved or closed.

SettingOptions
ResolutionResolved, Closed, any
ByAgent, customer, auto

SLA Warning#

Fires when SLA approaches breach.

SettingOptions
Threshold75%, 90%, custom
SLA TypeFirst response, resolution

SLA Breached#

Fires when SLA is breached.

SettingOptions
SLA TypeFirst response, resolution
DurationImmediately, after delay

Team Chat Triggers#

Message Sent#

Fires when a message is posted.

SettingOptions
ChannelAll, specific channels
ContainsKeyword filters
FromAny, specific users

Available Data:

  • message.content - Message text
  • message.author - Who sent it
  • channel.name - Channel name

Channel Created#

Fires when a new channel is created.

SettingOptions
TypePublic, private, any
Name containsName filter

Member Joined#

Fires when someone joins a channel.

SettingOptions
ChannelAll, specific channels
MemberAny, specific users

Live Support Triggers#

Chat Started#

Fires when a visitor starts a chat.

SettingOptions
Page URLAny, specific pages
Visitor typeNew, returning

Available Data:

  • visitor.name - Visitor name
  • visitor.email - Visitor email
  • visitor.page - Current page
  • visitor.location - Geographic location

Chat Ended#

Fires when a chat session ends.

SettingOptions
Ended byVisitor, agent, timeout
DurationMinimum duration

Visitor Action#

Fires on specific visitor behaviors.

SettingOptions
ActionPage view, click, form submit
ElementSpecific page/element

TaskFlow Triggers#

Task Created#

Fires when a new task is created.

SettingOptions
ProjectAll, specific projects
ListAny, specific lists

Available Data:

  • task.title - Task title
  • task.description - Task description
  • task.assignee - Assigned user
  • task.dueDate - Due date
  • project.name - Project name

Task Moved#

Fires when a task moves between lists.

SettingOptions
FromAny list, specific list
ToAny list, specific list

Example:

When: Task moved to "Done"
Then: Notify project manager

Task Completed#

Fires when a task is marked complete.

SettingOptions
ProjectAll, specific projects
With labelFilter by labels

Task Overdue#

Fires when a task passes its due date.

SettingOptions
DurationImmediately, after delay
PriorityAny, specific priorities

DataFort Triggers#

File Uploaded#

Fires when a file is uploaded.

SettingOptions
FolderAny, specific folders
TypeAny, specific file types

File Shared#

Fires when a file is shared.

SettingOptions
Shared withAnyone, specific users
PermissionView, edit, manage

Schedule Triggers#

Time-Based#

Fires on a schedule.

SettingOptions
FrequencyHourly, daily, weekly, monthly
TimeSpecific time
DaysSpecific 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#

OperatorDescriptionExample
EqualsExact matchpriority = "High"
Not equalsDoes not matchstatus != "Closed"
ContainsIncludes textsubject contains "urgent"
Does not containExcludes textbody not contains "spam"
Starts withBegins withemail starts with "support"
Ends withEnds withemail ends with "@company.com"
Is emptyNo valueassignee is empty
Is not emptyHas valuecustomer.email is not empty
Greater thanNumeric comparisonresponse_time > 60
Less thanNumeric comparisonmessages < 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#

FieldTypeExample
prioritySelectUrgent, High, Normal, Low
statusSelectOpen, Pending, Resolved, Closed
channelSelectEmail, Chat, Form
assigneeUserUser ID or empty
teamTeamTeam ID
subjectTextSubject line
bodyTextMessage content
tagsArrayTag names
created_atDateCreation timestamp

Customer Fields#

FieldTypeExample
customer.nameTextCustomer name
customer.emailTextEmail address
customer.companyTextCompany name
customer.planSelectPlan name
customer.lifetime_valueNumberTotal value
customer.tickets_countNumberTotal tickets

Visitor Fields#

FieldTypeExample
visitor.countryTextCountry code
visitor.pageTextCurrent URL
visitor.visitsNumberVisit count
visitor.is_returningBooleantrue/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.com

Assign to Team#

Assign to a team queue:

Action: Assign to Team
Team: Support Team
Method: Round-robin

Assign Round-Robin#

Distribute evenly:

Action: Assign Round-Robin
Users: [sarah, john, mike]
Skip: Offline users

Unassign#

Remove assignee:

Action: Unassign

Status Actions#

Change Status#

Update status:

Action: Change Status
Status: Pending

Change Priority#

Update priority:

Action: Change Priority
Priority: High

Add 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 Team

Add 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 days

Create Ticket#

Create new ticket:

Action: Create Ticket
Subject: "Follow-up needed: {{original.subject}}"
Priority: Normal

Delay Actions#

Wait#

Pause before next action:

Action: Wait
Duration: 5 minutes

Wait Until#

Wait for condition:

Action: Wait Until
Condition: business_hours = true
Timeout: 24 hours

Variables Reference#

Available Variables#

Use variables in action templates:

VariableDescription
{{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#

ModifierExampleOutput
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#

Was this page helpful?

Let us know if you found what you were looking for.