Skip to main content

Workflows Overview

What it is

BotBat Workflows are automated sequences of actions that execute in response to triggers. You build workflows visually using a drag-and-drop Studio editor, connecting trigger nodes to action nodes to create anything from simple message sequences to complex multi-step business processes. Every workflow execution is logged, and you can test workflows in a simulator before activating them.

Workflows sit at the heart of the BotBat automation engine. Rather than requiring code or scripted integrations, the visual Studio editor lets marketing, support, and operations teams design sophisticated automation flows without developer involvement. Each workflow is a directed graph of nodes: it begins with exactly one trigger node and branches into as many action, condition, and subflow nodes as needed. The platform evaluates every node in sequence (or in parallel where branches diverge), passing data through variables from one node to the next.

Workflows are versioned automatically. Each time you save changes, a new version is created so you can roll back to a previous configuration if something goes wrong. Active workflows process events in real time, and the execution engine retries transient failures according to the retry policy you configure at the workflow or node level.

When to use

Use workflows whenever you need the platform to react to an event, schedule, or manual trigger and carry out a series of actions automatically. The following list covers the most common scenarios, but workflows are flexible enough to handle virtually any automation need.

  • Automated message sequences: Send a welcome series when a new contact is created, or follow up after a purchase with a satisfaction survey. Sequence multiple messages with delays and conditions so each contact receives a personalized journey.
  • Event-driven processes: Trigger actions when a customer replies, a tag is added, a form is submitted, or any custom event fires from your system via webhook. Event triggers are evaluated in under one second, so your responses feel instant to end users.
  • Scheduled tasks: Run recurring workflows on a schedule, such as sending weekly reports, expiring inactive conversations, or syncing data with external systems. Schedule triggers accept standard cron expressions as well as friendly presets like "every weekday at 9 AM".
  • Multi-step business logic with conditions: Build branching workflows that route contacts through different paths based on attributes, responses, or external data lookups. Condition nodes support rich expressions including comparisons, logical operators, and regular expressions.
  • Human-in-the-loop processes: Include approval steps where a team member must review and approve before the workflow continues. See Workflow Approvals for full details on configuring approvers, timeouts, and escalation paths.
  • Data enrichment and integration: Use API call nodes to fetch or push data from external CRMs, databases, or services as part of your workflow. Map response fields to workflow variables so downstream nodes can use the enriched data.

Understanding the workflow list page

When you navigate to Workflows in the main sidebar you land on the workflow list page. This page shows every workflow in your workspace with its name, current status (Active, Inactive, or Draft), trigger type, last-edited timestamp, and a quick-actions menu. You can filter and sort the list by any column, and bulk-activate or deactivate multiple workflows at once.

Workflow list page showing workflows with status badges and trigger types

The list page also displays execution statistics for each workflow: the number of runs in the last 24 hours, the success rate, and the average duration. These metrics help you spot workflows that are failing frequently or running slower than expected. Click any workflow row to open it in the Studio editor.

The Studio editor

The Studio editor is the visual canvas where you design your workflow. The canvas occupies the center of the screen. On the left you will find the node palette, and on the right the properties panel appears when you select a node. The toolbar at the top provides Save, Test, Undo/Redo, Zoom, and Activate/Deactivate controls.

Studio editor with a sample workflow showing trigger, condition, two action branches, and end node

You can pan the canvas by clicking and dragging on empty space, and zoom with the scroll wheel or the toolbar buttons. Nodes snap to an invisible grid to keep your layout tidy. Connections between nodes are drawn as curved lines, and you can reroute them by dragging the line's midpoint.

Node palette and node types

The node palette on the left side of the Studio editor organizes available nodes into two categories: Triggers and Actions. Expand a category to see the individual node types, then drag one onto the canvas to add it to your workflow.

Node palette sidebar expanded showing trigger and action node categories

The following table summarizes every node type available in the palette.

CategoryNodeDescription
TriggerMessage ReceivedFires when a contact sends a message on any connected channel. Supports channel and keyword filters.
TriggerEventFires when a specific platform event occurs (contact created, tag added, conversation closed, and others).
TriggerScheduleFires on a recurring cron schedule (daily, weekly, or custom expression).
TriggerWebhookFires when an external system sends a POST request to the workflow's unique webhook URL.
TriggerManualFires when a console user clicks the "Run" button for this workflow.
ActionSend MessageSends a message to a contact on a specified channel using a template or inline content.
ActionAPI CallMakes an HTTP request to an external service and maps the response to workflow variables.
ActionDelayPauses execution for a specified duration (minutes, hours, or days).
ActionCondition / BranchEvaluates an expression and routes execution to different output ports (True, False, Default).
ActionLoopIterates over a list variable and executes child nodes for each item.
ActionHuman ApprovalPauses the workflow and sends a notification to designated approvers. Resumes on approval or rejection.
ActionSubflowExecutes another workflow as a nested step, passing variables in and receiving outputs back.
ActionDatabase QueryReads from or writes to a connected database, returning results as a workflow variable.
ActionCollect FeedbackPrompts the contact for a rating or free-text feedback and stores the response.

Configuring node properties

When you click a node on the canvas, its properties panel opens on the right side of the editor. The panel contains all configurable fields for that node type. Required fields are marked with an asterisk, and each field includes a tooltip explaining its purpose. You can insert dynamic variables into most text fields by typing {{ to open the autocomplete dropdown.

Properties panel open for a Send Message node showing channel, template, and variable fields

For Send Message nodes the panel includes a channel selector, a template picker (or an inline content editor), and a variable mapping section. For API Call nodes you will see fields for HTTP method, URL, headers, request body, and response variable mapping. Condition nodes present an expression builder with variable suggestions and operator dropdowns.

Variables and dynamic data

Workflows support dynamic variables that resolve at execution time. Variables follow the {{scope.path}} syntax. The three primary scopes are trigger (data from the trigger event), contact (attributes of the contact the workflow is running for), and nodes (outputs from previously executed nodes, referenced by node name). For example, {{trigger.message.text}} resolves to the text of the incoming message, and {{nodes.apiLookup.output.email}} resolves to the email field returned by an API Call node named "apiLookup".

Variables can be used in message content, condition expressions, API call URLs and bodies, delay durations (when driven by a contact attribute), and virtually any text field in a node's properties. The autocomplete dropdown lists all available variables at the current point in the workflow, so you do not need to memorize paths.

Testing with the simulator

Before activating a workflow, use the built-in simulator to verify its behavior. Click "Test" in the Studio toolbar to open the simulator panel. You provide sample trigger data (for example, a mock incoming message or a sample webhook payload) and the simulator executes the workflow step by step on the canvas. Each node highlights green on success or red on failure, and the simulator panel shows the input and output data for every step.

Simulator panel open with sample trigger data and step-through results

The simulator does not send real messages or make real API calls by default. External calls are mocked, and you can provide custom mock responses for API Call nodes. If you need to test with live external services, enable "Live Mode" in the simulator settings, but use this carefully in production workspaces.

Viewing execution history

The Executions tab on each workflow page shows a log of every workflow run. Each entry displays the execution ID, start time, duration, final status (Completed, Failed, or Waiting), and the trigger data that initiated the run. Click an execution row to expand its full step-by-step trace.

Execution history list showing completed and failed runs with timestamps

Inside the trace view, every node shows its status, execution duration, input data, and output data. Failed nodes display the error message and stack trace. You can re-run a failed execution from the point of failure (or from the beginning) using the "Retry" button. Execution logs are retained for 30 days by default; you can adjust this in workspace settings.

Common pitfalls

Workflow automation is powerful, but a few recurring mistakes can cause unexpected behavior. Review these pitfalls before building your first workflow, and revisit them when debugging issues.

  • No error handling on API calls: If an API Call node fails due to a timeout or server error, the workflow stops at that step unless you add branching logic. Always follow an API Call node with a Condition node that checks the response status code and routes to an error-handling path.
  • Infinite loops: A workflow triggered by "Message Received" that itself sends a message can re-trigger endlessly. Prevent this by adding a Condition node that checks whether the sender is the bot, or by applying a cooldown delay that suppresses re-triggering within a time window.
  • Oversized workflows: Workflows with 50 or more nodes become difficult to read, maintain, and debug. Break large processes into smaller, focused subflows and compose them using Subflow nodes. This also makes individual pieces reusable across multiple parent workflows.
  • Hardcoded values instead of variables: Typing literal values into message content and condition expressions makes workflows brittle. Use contact attributes and trigger data variables so the workflow adapts dynamically to each execution context.
  • Skipping the simulator: Activating a workflow without testing it first can result in incorrect messages being sent to real contacts. Always run at least one simulator pass with realistic sample data before toggling the workflow to Active.
tip

Start by sketching your workflow on paper or a whiteboard before building it in Studio. Identify the trigger, the happy path, the error paths, and the exit conditions first. Then translate that design into nodes on the canvas.

  • Workflow List
  • Studio Editor
  • Node Palette
  • Node Properties
  • Workflow Variables
  • Workflow Simulator
  • Execution History