Workflows module allows to build workflows to sort messages, assign them to the right person, send predefined emails and even create SLA-like workflows. Workflows are similar to Gmail filters or rules in other email clients.
Workflows are configured on a per-mailbox basis, so you should look for Workflows under mailbox menu (not in the main top menu). Each workflow triggers once per conversation and this can not be changed (see this).
There are two main types of workflows: Automatic and Manual.
Automatic workflows are running in the background and check conversations for matching conditions and carry out specified actions automatically. If automatic workflow does not contain any date-related conditions (Waiting Since, Date Created, Last User Reply, Last Customer Reply), it is executed when a new message is created or some condition’s value changes (for example, conversation status changes).
A Manual workflow doesn’t do anything until you execute it for a conversation. For example when a customer emails in with a specific question, you can execute a workflow to send a reply, add a tag and assign it to someone on your team.
Workflows are composed of conditions and actions.
1) When using OR conditions and “Does not contain” / “Is not equal” be very mindful. Very often when people need AND they are using OR instead and get logical issues.
2) If you need the workflow to trigger when a new email or reply is received you need to add the “New / Reply / Moved” condition:
- Customer Name
- Customer Email
- User Action — replied or added a note
- Conversation Type — email or phone
- Conversation Status — active, pending, closed, spam
- Assigned to User
- To — email To field
- Body — customer message or user note contains specific text
- Headers — email headers
- Attachment — contains or not
- Customer Viewed
- New or Reply — is it a new conversation or user’s or customer’s reply.
- Tag(s) — contains specific tags (requires Tags module)
- Waiting Since — for how many days or hours a customer message is waiting to be replied by a user. This condition triggers the workflow only if the last reply in the conversation is made by a customer and conversation’s status is ACTIVE or PENDING
- Last User Reply — date of the last user reply
- Last Customer Reply — date of the last customer reply
- Date Created — date when conversation was created
- Custom Fields — check custom fields values (requires Custom Fields module)
Conditions are case-insensitive.
Some conditions allow to use regexes to check values. Tools for testing regexes: Regex Pal or Regex101. Sample regular expression: /^[a-zA-Z0-9]$/
- Send Email Notification — to current assignee, to the last user to reply or to a specific user.
- Reply to Conversation (This action sends an email to the customer and includes previous conversation history. %user.*% variables always contain Workflow user data, not the user triggering the workflow, assignee or any other user).
- Email the Customer (This action sends an email to the customer and does not include previous conversation history. %user.*% variables always contain Workflow user data, not the user triggering the workflow, assignee or any other user).
- Forward — forward conversation with a custom message to a third party (this action creates a new “forwarded” conversation – this is by design).
- Disable Auto Reply — do not send an auto reply to the incoming customer email.
- Add a Note
- Change Conversation Status — active, pending, closed, or spam
- Assign to User
- Move to Mailbox
- Move to Deleted Folder
- Delete Forever
- Add Tag(s) — requires Tags module
- Remove Tag(s) — requires Tags module
- Set Custom Field — requires Custom Fields module
If you have Custom Folders module installed, by adding tags to conversations you can move conversations to custom folders.
Workflows are automatically deactivated when some entity in it’s Actions or Conditions does not exist anymore (for example mailbox, user or customer is deleted).
Track refund requests
When the subject line or customer message contains “refund”, you want FreeScout to automatically add a tag and send an email to the customer.
Keep track of aging conversations
When a conversation is not replied by a user more than 1 day, add a “overdue” tag and send email notification to the current assignee and specific user. Also using Custom Folders module you by assigning a tag can add conversations to the Overdue folder for example.
Send a follow-up email to the customer after a specific time period
Trigger workflow when conversation moved from another mailbox
By default Workflows are not triggered when conversations are moved. To let the Workflow be triggered when the conversation is moved from another mailbox, you need to have at least one “Conversation moved from another mailbox” item among Conditions.
You can allow non-admin users to manage workflows in “Manage » Settings” or in each user’s profile on Permissions page.
By default Workflow user’s name is “Workflow”. If you want to change it, add the following parameter to the .env file and clear the cache:
When using OR conditions and “Does not contain” / “Is not equal” be very mindful. Very often when people need AND they are using OR instead and get logical issues.
Why workflows run only once per conversation? See this.