Create Your First Automated Workflow
What it is
This guide walks you through creating an automated workflow using BotBat's visual workflow editor. A workflow is an event-driven automation that executes a sequence of actions (sending messages, updating contacts, calling APIs, branching on conditions) whenever a specific trigger fires. Workflows run continuously in the background once activated, processing each qualifying event in real time.
The visual editor uses a drag-and-drop canvas where you place nodes and connect them with lines to define the execution path. Each node represents either a trigger, an action, a condition, or a delay. This approach makes it easy to visualize complex logic, including parallel branches and nested conditions, without writing any code.
When to use
- Welcome sequence: You want to automatically send a greeting message, or a series of onboarding messages, when a new contact subscribes to your channel.
- Event-driven automation: You need to trigger actions based on customer events, such as sending a follow-up after a purchase, an alert when a support ticket is created, or a reminder when a cart is abandoned.
- Scheduled tasks: You want to run recurring workflows on a fixed schedule, such as weekly digest messages, monthly billing reminders, or daily report notifications.
Step 1: Open the Workflows list
Open the BotBat Console sidebar and click Workflows. This page displays all workflows in your workspace, organized by status: active, draft, and paused. Each row shows the workflow name, trigger type, last execution time, total executions, and current status.
From this page you can create new workflows, duplicate existing ones, pause active workflows, or archive workflows you no longer need. The search bar and status filter at the top help you locate specific workflows quickly in larger workspaces.

Step 2: Create a new workflow
Click the New Workflow button in the top-right corner. In the creation dialog, enter a descriptive name for your workflow (for example, "Welcome Series" or "Order Confirmation"). Choose a name that clearly communicates the workflow's purpose, since this name appears in logs, analytics, and the workflow list.
You can also add an optional description and assign tags for organization. Tags are especially useful when your workspace contains dozens of workflows and you need to group them by department, campaign, or channel.
Step 3: Choose a trigger type
The trigger defines the event that starts the workflow. Every workflow must have exactly one trigger node, placed at the top of the canvas. When the selected event occurs, BotBat creates a new workflow execution and begins processing the first connected node.

| Trigger Type | Description | Example Use Case |
|---|---|---|
| Message Received | Fires when a contact sends a message that matches specified criteria (keyword, regex, or any message). | Auto-reply to messages containing "pricing" or "demo." |
| Event | Fires when a tracked event occurs, such as order.completed, contact.created, or a custom event pushed via API. | Send a thank-you message after a purchase event. |
| Schedule | Fires on a cron-based schedule at a specific time and frequency. | Send a weekly digest every Monday at 9:00 AM UTC. |
| Webhook | Fires when an external system sends a POST request to the workflow's unique webhook URL. | Trigger actions when a payment gateway sends a callback. |
| Contact Tag Added | Fires when a specific tag is added to a contact profile. | Start an onboarding sequence when a contact is tagged "new-customer." |
| Contact Property Changed | Fires when a specified contact property changes value. | Notify an account manager when a contact's plan tier changes. |
Configure the trigger by filling in its settings panel. For a Message Received trigger, specify the matching criteria. For a Schedule trigger, set the cron expression or use the visual scheduler to pick the day and time. For an Event trigger, select the event name from the dropdown or type a custom event key.
Step 4: Add action nodes from the palette
The left-side panel contains the action palette, which lists all available node types. Drag nodes from the palette onto the canvas to build your workflow's logic. You can place as many nodes as needed and arrange them freely on the canvas.

| Action Type | Description | Configuration Fields |
|---|---|---|
| Send Message | Sends a message to the contact via any connected channel. Supports text, images, buttons, and templates. | Channel, message content, template selection, media attachments. |
| Delay | Pauses the workflow execution for a specified duration before proceeding to the next node. | Duration (minutes, hours, or days). |
| Condition | Evaluates a boolean expression and branches the workflow into true/false paths based on the result. | Property, operator, value, and optional AND/OR grouping. |
| API Call | Makes an HTTP request (GET, POST, PUT, DELETE) to an external service and captures the response. | URL, method, headers, body, timeout, and response variable name. |
| Update Contact | Modifies contact properties, adds or removes tags, or updates custom fields. | Property name, new value, tag additions/removals. |
| Assign Agent | Routes the conversation to a specific agent or agent group in the inbox. | Agent or group selection, priority level. |
| End | Terminates the workflow execution at this point. Use at the end of branches to mark completion. | None. |
Step 5: Configure each node
Click on any node to open its settings panel on the right side of the canvas. Each node type has its own set of required and optional fields. Fill in all required fields (marked with an asterisk) and review optional settings that may affect behavior.

For Send Message nodes, compose the message content using the rich text editor. You can insert dynamic variables (such as {{contact.firstName}} or {{event.orderTotal}}) to personalize each message. Select the channel from the dropdown and, if using WhatsApp, choose an approved message template.
For Condition nodes, build your logic using the condition builder. Select a property (contact field, event data, or workflow variable), choose an operator (equals, contains, greater than, is empty), and set the comparison value. You can chain multiple conditions using AND/OR operators to create complex branching logic.
Step 6: Connect the nodes
Drag connectors from the output port of one node to the input port of the next to define the execution flow. The workflow engine follows these connections in sequence, executing each node and passing data forward. For condition nodes, you must connect both the true branch and the false branch. Leaving a branch disconnected causes contacts hitting that path to exit the workflow silently.

You can create parallel paths by connecting a single node's output to multiple downstream nodes. The workflow engine processes parallel branches concurrently. To merge paths back together, connect multiple nodes to a single downstream node. Review the full flow from trigger to end to ensure every path terminates properly, either at an End node or at a final action.
Step 7: Test with the simulator
Click Test Workflow in the toolbar to open the simulator panel. The simulator lets you run the workflow with sample data without affecting real contacts or sending real messages. Provide sample trigger data (for example, a mock event payload or a test message), then step through the workflow node by node.

The simulator highlights each node as it executes, showing the input data, output data, and execution duration. For condition nodes, it indicates which branch was taken and why. For API Call nodes, it displays the request and response details. Review each step carefully to confirm the workflow behaves as expected. If a node fails or produces unexpected results, click on it to inspect the error details, then return to the editor to fix the configuration.
Run at least three test scenarios: a happy path where all conditions are met, an alternative path where a condition evaluates to false, and an edge case with missing or unexpected data. This ensures all branches are exercised and error handling works correctly.
Step 8: Activate the workflow
Once testing passes, click Activate in the top-right corner to make the workflow live. The status changes from "Draft" to "Active," and the workflow begins processing real triggers immediately. You can monitor execution counts and success rates from the workflow list page or the workflow detail view.
To pause a workflow temporarily, click Pause. Paused workflows stop accepting new triggers but allow in-progress executions to complete. To resume, click Activate again. If you need to make changes to an active workflow, pause it first, edit the nodes, re-test in the simulator, and then reactivate.
Common pitfalls
- Missing condition branches: If a condition node has an unconnected true or false branch, contacts hitting that branch exit the workflow without any action. Always connect both branches, even if one leads directly to an End node.
- Infinite loops: A workflow that triggers itself (for example, a "Message Received" trigger that sends a message, which then triggers "Message Received" again) creates an infinite loop. Use keyword filters, cooldown periods, or contact tags to prevent re-entry.
- Untested API calls: External API calls can fail due to timeouts, authentication errors, or unexpected response formats. Test each API Call node with real endpoints in the simulator and add condition branches to handle error responses gracefully.
- Overly complex first workflows: Attempting to build a 20-node workflow on your first try makes debugging difficult. Start simple and expand incrementally.
Start with a simple two-node workflow (trigger plus send message) and expand from there. It is easier to debug a small workflow than to troubleshoot a complex one all at once. Once the basic flow is confirmed, add condition branches, delays, and additional actions one at a time, testing after each addition. This incremental approach saves significant debugging time and helps you learn the editor's capabilities progressively.
- Workflow List
- Create Workflow Dialog
- Trigger Selection
- Visual Editor
- Node Settings
- Workflow Simulator
- Activate Workflow