Workflows & automation
Workflows do work for you automatically. For example: when someone sends “price”, reply with the price list and tag them as a lead.
Go to Workflows in the sidebar.
How workflows are built
Section titled “How workflows are built”A workflow has two levels:
- Workflow (master): the container, with a name, a description and a type.
- Child workflows: the rules inside it. Each rule is trigger → conditions → actions.
| Part | Question it answers | Examples |
|---|---|---|
| Trigger | When does this run? | Incoming message, webhook, manual start, message status |
| Conditions | Only if… | Message includes “price”, contact is in a group, a tag is set |
| Actions | Then do… | Send a template, tag the contact, post to a webhook, hand off to an AI bot |
Create a workflow
Section titled “Create a workflow”-
Click Add Workflow.
-
Enter a Workflow name, e.g. Welcome new customers, and an optional description.
-
Choose How should it run?
- Automatic: runs by itself whenever its trigger happens.
- Manual: runs only when you start it for selected contacts or groups.
-
Choose Build with:
- Form editor: fill in step-by-step sections.
- Flowchart editor: drag blocks onto a canvas and connect them.
You can switch editor at any time; both edit the same workflow.
-
Set up the trigger. Choose the platform first (WhatsApp, Instagram or Messenger), then the trigger and sub-type, e.g. Incoming Message → Text.
-
Add conditions if you need them. Combine rows with AND / OR, using operators such as Equal To, Includes, Starts With, Greater Than.
-
Add one or more actions.
-
Save, then activate.
Triggers
Section titled “Triggers”| Trigger | Runs when… |
|---|---|
| Incoming Message | A customer sends a message. Narrow it by sub-type: text, image, button reply, flow response, order, payment and more |
| Webhook | Another system calls the workflow’s unique URL. Copy the URL from the trigger settings |
| Manual Trigger | You start it from Contacts (Trigger Workflow) or from another workflow |
| Sent Message Status | A message you sent is sent, delivered or read |
| PostToWebhook Response | A webhook action returns a response |
| Integration triggers | E.g. new order in Shopify or abandoned cart. These depend on your connected integrations |
Actions
Section titled “Actions”| Action | What it does |
|---|---|
| Template Message | Send an approved template to the customer or another number, optionally after a delay |
| Message | Send text, media, buttons, a list, catalog, flow or payment request (within the 24-hour window) |
| Post to Webhook | Send data to another system’s URL (REST or GraphQL) |
| Add to Groups/Tags | Organise the contact |
| Assign AI bot | Hand the chat to an AI bot, with an idle time, exit message and buttons |
| Code | Run custom JavaScript |
| Store Data | Save details to Orders or Contacts |
| Update State Status | Set a state value the workflow can read later |
| Repeat Workflow / Manual Workflow | Start another workflow |
Variables
Section titled “Variables”Use variables such as {{senderName}} and {{senderPhoneNumber}} in messages and conditions. Data from flows, webhooks and integrations becomes available automatically as variables. You can also map your own variables in the Mapping tab.
Example: qualify leads from a form
Section titled “Example: qualify leads from a form”- Trigger: Incoming Message → Flow (your “Get a quote” WhatsApp Flow).
- Condition:
{{budget}}Greater Than1000. - Actions:
- Message: “Thanks
{{senderName}}! A specialist will contact you shortly.” - Add to Groups/Tags: tag Qualified Lead
- Post to Webhook: send the lead to your CRM
- Assign AI bot: your sales bot
- Message: “Thanks
Library, import and export
Section titled “Library, import and export”- Library: ready-made workflows you can clone. Wabot asks for any details it needs.
- Export a workflow from its card menu, and Import
.wabotfiles to copy workflows between accounts.
Troubleshooting
Section titled “Troubleshooting”| Problem | Check |
|---|---|
| The workflow doesn’t run | Both switches are on. The trigger platform and sub-type match the message |
| A variable is empty | The variable name and data path in Mapping |
| The webhook action fails | The URL, method and headers, and that the JSON body is valid |
| A template isn’t sent | The template is approved, and all its variables have values |
