Skip to main content
The canvas is the default way to build a workflow. No CLI, no local setup. Open Workflows in the dashboard and create one, either from scratch or from a workflow template.

Add and connect nodes

Pick a node type from the node picker to drop it on the canvas. The available types are: start · send_text · send_template · send_interactive · wait_for_response · decide · agent · function · webhook · call · handoff · emit_event Every workflow needs exactly one start node. Drag from a node’s handle to another node to create an edge. Execution follows those edges. See Step types for what each node does and how to configure it.

Configure a node

Select a node to open its form. Fields depend on the type: message body for send_text, template and parameters for send_template, model and prompt for agent, and so on. Message fields accept template variables like {{last_user_input}}. See Variables and context.

Branch with conditions

Edges leaving a decide node carry conditions. The label the node returns picks which edge runs. Edit conditions on the edge itself, not the node. See Edges.

Set a trigger

A workflow does nothing until something starts it. Open the triggers panel to add one, most commonly an inbound message on a phone number. See Triggers.

Workflow settings

The settings sheet holds everything that is not a node:
  • Workflow name and Slug: the slug is generated from the name and is what the API and other workflows use to reference this workflow
  • Description
  • Inbound read behavior: whether incoming messages are marked as read
  • Message debounce: how long to wait for more messages before running, so a user sending three messages in a row triggers one run instead of three

Test before activating

Run the workflow from the test modal without messaging a real number. It shows the execution stack so you can see which nodes ran, in what order, and where a run stopped. Use Copy events to grab the full event trail. For runs that already happened, open the workflow logs.

Draft and Active

A workflow is Draft until you activate it. Draft workflows do not respond to triggers, so you can keep editing a live workflow’s replacement without affecting production. Save your changes, test, then activate.

Observer mode

Observer mode lets a workflow watch a conversation without sending messages. Useful to validate routing logic against real traffic before letting it reply.

Move to code later

Anything built in the canvas can be pulled into a local repo, edited as JSON or TypeScript, and pushed back. The canvas has a Build this workflow locally action that gives you the commands. See Build locally.