Visual Flow Editor

Deprecated feature

The Visual Flow Editor is deprecated and will be removed in a future release. Configure your agent's behaviour with a system prompt instead. Existing flows remain available while you migrate.

The Visual Flow Editor is a drag-and-drop conversation builder that lets you design your agent's behaviour as a flowchart instead of writing a text prompt. Each node in the flow represents a discrete action: speaking a message, evaluating a condition, calling an external tool, or transferring the call, and connections between nodes define the conversation's progression.

Flows vs system prompts

The Visual Flow Editor is an alternative to writing a system prompt. You can use either approach (or combine both), depending on your preference. Flows excel at structured, step-by-step conversations where the path is predictable, while system prompts are better suited for open-ended, free-form interactions.

Node Types

Each node type serves a specific purpose within the conversation flow. You can combine them freely to build complex, branching dialogues.

Start

The entry point of every flow. When a call or chat session begins, execution starts here. Each flow must have exactly one Start node. You can configure the initial greeting and any variables that should be initialised at the beginning of the conversation.

Message

The agent speaks a predefined message or a dynamically generated response. You can write static text, use variables from earlier in the flow (e.g. the caller's name), or let the AI generate a contextual response based on a prompt you provide within the node.

Condition

Branches the flow based on logic you define. Conditions can evaluate the caller's intent, check the value of a collected variable, compare numeric values, or use AI-powered classification to determine which branch to follow. Each condition node supports multiple output branches.

Tool

Executes an external API call or built-in tool during the conversation. Use this to look up customer records, check appointment availability, query a knowledge base, or perform any server-side action. The tool's response is stored as a variable that subsequent nodes can reference.

Transfer

Transfers the active call to a specified phone number or SIP endpoint. You can configure a warm transfer (the agent briefs the recipient before connecting) or a cold transfer (immediate handoff). Transfer nodes end the agent's participation in the conversation.

Department Routing

Routes the caller to one of several departments based on what they say. Add the departments you care about (e.g. Sales, Billing, Support, Onboarding), each with a short description and a destination phone number, extension, or SIP target, and the node uses the LLM to match the caller's request to the right one. If no clear match is found, the flow falls through the node's no-match output so you can recover gracefully (re-prompt, escalate to a generic queue, or hand off to a human). This is the right node to reach for when you want a single “reception” agent that fans out across a directory of department numbers rather than wiring one Transfer node per department.

Collect

Gathers spoken input from the caller. Choose the type of information to collect: free text, number, email, phone, date, or a multiple-choice option, and optionally specify a valid response format, a retry prompt for invalid input, and a confirmation step. The collected value is stored as a variable for use later in the flow.

End

Terminates the conversation. You can optionally configure a farewell message that the agent speaks before hanging up. If no End node is reached, the call will continue until the caller hangs up or the auto-end-call timer triggers.

Email

Sends an email during or after the conversation. Configure the recipient, subject, and body, all of which can include variables collected during the flow. Useful for sending confirmation emails, summaries, or follow-up information while the caller is still on the line.

SMS

Sends a text message to a specified phone number. Like the Email node, the message body supports variables. Common uses include sending appointment confirmations, links, or reference numbers to callers during the conversation.

Building a Flow

Creating a conversation flow involves three core actions: adding nodes, connecting them, and configuring each node's settings.

Add nodes to the canvas

Open the node palette on the left side of the editor and drag nodes onto the canvas. Position them to reflect the logical progression of your conversation. You can rearrange nodes at any time by dragging them to new positions.

Connect nodes together

Click and drag from a node's output handle to another node's input handle to create a connection. Condition nodes have multiple output handles: one for each branch. Connections can be deleted by selecting them and pressing the Delete key.

Configure each node

Click on any node to open its settings panel on the right. Each node type has specific configuration options; for example, Message nodes have a text editor, Condition nodes have rule builders, and Tool nodes have parameter mappings. Fill in all required fields before deploying.

Test your flow

Use the built-in simulator to walk through your flow before deploying. The simulator lets you provide sample inputs and see which path the conversation takes, helping you catch logic errors early.

Keyboard shortcuts in the editor

Use Ctrl+Z to undo, Ctrl+Shift+Z to redo, and Ctrl+A to select all nodes. Hold Space and drag to pan the canvas. Scroll to zoom in and out.

Deploying Flows

Once your flow is complete and tested, click the Deploy button in the top-right corner of the editor. This publishes the flow as the active conversation logic for your agent. Like system prompt changes, flow deployments are versioned automatically; you can review previous versions and roll back if needed.

Flows can be deployed alongside a system prompt. When both are present, the flow takes priority for structured paths, while the system prompt provides fallback behaviour for situations the flow does not explicitly handle.

Start simple

Begin with a minimal flow covering the most common conversation path, then iterate by adding branches and edge cases. A simple, well-tested flow is better than a complex one with untested paths.