Workflows
Workflows do routine work for you. Each workflow starts from one trigger (something that happens, like a deal being won), can check conditions, wait with delays, and then runs actions (like creating a task or sending an email).
For example: when a deal is won, create an onboarding task for the owner, wait one day, then post a message in the team’s chat channel.
Open Configuration → Workflows. You need the Workflows module and the Workflows → View permission. Creating, editing, publishing, and deleting need the matching Workflows permissions.
The workflow list
Section titled “The workflow list”The list shows every workflow with its status and trigger module. Search by name, or filter by module and status.
| Status | Meaning |
|---|---|
| Draft | Being built. Not running. |
| Active | Published and running on new triggers |
| Paused | Stopped. Keeps its setup and can be resumed. |
| Archived | No longer in use |
Use the row menu to Edit Details, Open Builder, Duplicate, or delete a workflow. Execution History opens the log of every run (see Runs and history).
Create a workflow
Section titled “Create a workflow”- Click Create Workflow.
- Enter a Name and an optional Description, and choose the Trigger Module.
- Open the builder.
- Drag a Trigger onto the canvas and choose what starts the workflow.
- Add Condition, Delay, and Action steps and connect them in order.
- Click a step to configure it. Use the Test tab to check it against a real record (see Test a workflow).
- Click Save, then Publish.
A workflow has exactly one trigger, and the trigger must connect to at least one step before you can publish.
| Step | What it does |
|---|---|
| Trigger | What starts the workflow. Only one per workflow. |
| Condition | Checks the record and continues down the Yes or No branch |
| Delay | Waits a number of minutes, hours, or days before the next step |
| Action | Does something: creates, updates, notifies, or replies |
Triggers
Section titled “Triggers”Pick a trigger from the searchable list. Triggers are grouped by object:
| Group | Triggers |
|---|---|
| General | Schedule, Property Changed, Record Archived, Association Added, Association Removed |
| Contacts and accounts | Created, Updated |
| Deals | Created, Updated, Stage Changed, Won, Lost |
| Projects | Created, Updated, Status Changed |
| Price Offers | Created, Updated, Approved, Sent, Signed, Expired |
| Requests | Submitted, Approved, Rejected |
| Tickets | Created, Updated, Status Changed, SLA Warning, SLA Breached |
| Appointments | Created, Updated, Status Changed, Cancelled, Checked Out |
| Activities | Created, Completed, Due, Overdue, Reminder Due |
| Forms | Form Submitted |
| Invoices | Created, Updated, Status Changed, Overdue, Installment Due Soon, Installment Overdue, Payment Received |
| Orders | Created, Updated |
| Listings | Created, Updated, Stage Changed |
| Subscriptions | Created, Updated, Status Changed, Renewed, Canceled |
| Loyalty | Points Earned, Points Redeemed, Tier Changed, Reward Unlocked, Points Expiring Soon, Challenge Completed |
| Segments | Record Entered Segment, Record Left Segment |
| Email Opened, Link Clicked, Replied, Bounced | |
| Inbox | Message Received, Comment Received, Conversation Created, Conversation Assigned, Conversation Closed, Reply Sent, Call Missed |
Schedule runs the workflow on a timer: Every Hour, Every Day, Every Week, or Every Month, at the time you choose. SLA Warning fires 15 minutes before a ticket SLA target is missed.
Conditions
Section titled “Conditions”A condition checks one thing and sends the record down Yes or No:
- Property Condition: compare any native or custom property. The operators match the field type, for example Contains and Starts With for text, Greater Than for numbers, Before and After for dates, and Is Any Of for choice fields. Every type supports Is Empty and Is Not Empty.
- Owner Is and Status Is.
- For inbox triggers: Message Contains Keywords, Message Is Exactly, Message Contains a Link, Message Contains Only Emojis, Message Contains Only Mentions, and Channel Is.
Older workflows can still show legacy conditions such as Field Equals. They keep working; use Property Condition for new steps.
Actions
Section titled “Actions”| Group | Actions |
|---|---|
| Create records | Create Record, Create Project, Create Deal, Create Account, Create Contact, Create Ticket, Create Appointment, Create Request |
| Update records | Update Property, Assign Owner, Change Status, Update Ticket, Escalate Ticket, Update Appointment, Give Loyalty Points |
| Tasks and notes | Create Task, Create Reminder, Create Activity, Add Note |
| Notify | Send Email, Send WhatsApp Template, Send Review Request, Notify User, Send Webhook |
| Relationships | Add Tag, Remove Tag, Add to Static Segment, Remove from Static Segment, Add Association, Remove Association |
| Workflow | Enroll in Workflow, Stop This Workflow, Submit for Approval |
| Inbox | Send Inbox Reply, Hide or Delete Comment, Assign Conversation, Add Inbox Tag, Opt Contact Out, Reply Menu |
| Chat | Send Chat Message |
Most text fields accept tokens such as a contact’s name or a deal’s amount, filled in when the workflow runs.
Send Chat Message posts a message from Fox Bot into a Chat channel or a person’s direct messages. Choose Send to, pick the Channel or Person, and build the Message.
Send Webhook calls one URL from inside this workflow. To send record changes to your servers for the whole workspace, use Webhooks instead.
Test a workflow
Section titled “Test a workflow”Each step’s settings panel has two tabs: Setup and Test.
- Open the trigger’s Test tab and click Find a recent record to load a real record from the trigger’s module as a sample.
- In any later step, insert fields from the sample record as tokens instead of typing them by hand.
- On an action’s Test tab, click Preview values to see exactly what the step would use. Preview never contacts anyone.
Conditions and delays can’t be tested on their own; they are checked during a real run.
Send WhatsApp Template and Send Chat Message also offer Send for real, which sends one message (to the sample record’s contact, or to the chosen chat destination) so you can see the result.
Publish, pause, and versions
Section titled “Publish, pause, and versions”Workflows run a published version, not the canvas you are editing.
- Publish saves the canvas, checks it, and makes it the live version. The workflow becomes Active.
- After that, changes you Save stay in the draft. Live runs keep using the published version until you click Publish Update.
- Pause stops new runs. Resume starts them again. While paused you can also Publish New Version.
- Versions lists every published version. Restore one to load it back onto the canvas, then publish it again.
Inbox Rules are the exception: a rule created in Settings → Inbox → Rules is active right away and runs its saved steps, until someone publishes it from the builder.
Runs and history
Section titled “Runs and history”In the builder, Runs lists the latest runs of this workflow. You can cancel a run that is still in progress.
Execution History (from the workflow list) shows runs across all workflows. Search by workflow name and filter by status or module. Open a run to see its trigger, timestamps, and each step.
| Run status | Meaning |
|---|---|
| Running | In progress or waiting on a delay |
| Completed | Every reached step finished |
| Failed | A step failed; open the run to see the error |
| Cancelled | Stopped by someone before it finished |
Each step shows Pending, Running, Completed, Failed, or Skipped (for example, the branch a condition did not take).
Inbox Rules
Section titled “Inbox Rules”Settings → Inbox → Rules is a simpler way to build inbox automation: hide spam comments, send auto-replies, run reply menus, and honour opt-outs. Each rule is a workflow with the Inbox trigger module, so it also appears in the workflow list and can be opened in the builder for more control. See Inbox.
Example: deal won
Section titled “Example: deal won”Trigger: Deal Won → Action: Create Task "Prepare onboarding" (assigned to the deal owner) → Delay: 1 day → Condition: Property Condition, Deal type equals "New business" Yes → Action: Send Chat Message to #onboarding No → (end)- Start with one trigger and one action, test it, then add more steps.
- Use conditions to avoid acting on records that don’t need it.
- Preview every step on the Test tab before publishing.
- Try larger changes in a sandbox first. Emails and messages sent from a sandbox are captured, not delivered.
- Check Execution History after publishing to catch failing steps early.