Flow Board

Flow Board
Build conversational flows visually using the Flow Board

What is a Flow?

A flow is a visual diagram that defines how your agent responds to user input. It consists of nodes (actions) connected by edges (flow paths) that create conversation logic.

Creating a New Flow

To create a new flow:

  1. Navigate to your agent's detail page
  2. Click "New Flow" in the Flows section
  3. Give your flow a name and description
  4. Start building by adding nodes to the canvas

Understanding the Flow Board Canvas

Zoom and Pan

Use your mouse wheel to zoom in and out. Click and drag the canvas background to pan around. Use the zoom controls in the header for precise zoom levels.

Canvas Grid

The canvas has a subtle grid pattern that helps with alignment. The grid scales with zoom level for better visibility.

Node Positioning

Drag nodes freely around the canvas. Their positions are saved automatically. Use the grid to align nodes neatly.

Node Types

Each node type serves a specific purpose in your flow:

Start Node

The entry point of your flow. Automatically created when a flow is created. This is where execution begins.

Message Node

Displays a static message from the agent to the user. Can include variables like ${lastInput} or ${lastResponse}.

Prompt Node

Waits for user input. Stores the user's response in a flow variable (default: ${lastInput}). This is where conversations pause for user interaction.

Model Node

Calls an LLM (Large Language Model) with a system prompt. Processes user input and generates AI responses. Can be configured with temperature, model selection, and tools. Output is stored in a variable (default: ${lastResponse}).

Database Node

Performs a vector database search using embeddings. Searches a specified knowledge base with the provided search string. Returns relevant chunks that can be used in subsequent nodes.

Directory Category Listing Node

Displays a list of top-level categories from a selected knowledge base (with document counts). In the chat, the node title is shown as a header and categories appear in a compact multi-column layout; subcategories are shown one level deep with slight indentation. Categories with no documents are hidden.

Each category is a button. When the user clicks a category, a Directory Document Listing widget is added to the thread (no flow execution), showing a paginated list of documents in that category.

Directory Category Listing widget in chat — Category list with header and clickable category buttons with counts

Directory Document Listing Node

When executed, outputs a widget that shows a paginated list of document cards from a selected knowledge base category. Configure the node with a knowledge base and a category; the chat displays the category name as a header and document cards (title, thumbnail, snippet, date) with previous/next pagination.

Directory Document Listing widget in chat — Paginated list of document cards for a selected category

Intent Database Node

Special vector search that searches intent phrases across all flows in the agent. Used for intent detection and routing to appropriate flows.

Goto Flow Node

Navigates to another flow, allowing you to break complex conversations into reusable flow modules. Useful for creating modular conversation structures.

Condition Branch Node

Implements conditional logic to route to different branches based on input. Supports multiple matching methods:

  • Regex Matching - Pattern-based text matching
  • Cosine Similarity - Semantic similarity using embeddings
  • LLM-based - Uses an LLM to classify input and select branch

Branch Node

Individual branch option for a Condition Branch Node. Each branch can have phrases associated with it for matching. Can optionally navigate to another flow.

Agent Memory Node

Manages user-specific memory stored in the agent's database. Supports three operations:

  • GET - Retrieves a value from memory by key
  • PUT - Stores a value in memory by key
  • APPEND - Adds a child object to a key (for lists/arrays)

Avatar Node

Triggers actions for the avatar (toyHead). Allows you to control avatar behavior and animations during conversations.

Realtime Voice Node

Enables speech-to-speech conversations using the OpenAI Realtime API. Used for in-chat voice calls and for Twilio (SIP) phone calls when the agent is configured for voice. You set instructions, voice, and model in the inspector.

Tools: You can enable tools for the voice session so the assistant can run actions during the call (e.g. get date/time, create or search documents, manage tasks, show a URL, lead capture). Open "Configure Tools" in the inspector to turn built-in tools on or off. Knowledge base search and capture tools (update capture fields, update capture document, update capture fields with schema, update captured relationships) are added automatically when you connect the corresponding nodes to the Realtime Voice node with toolcall edges.

Tool execution runs on the server for both in-browser voice and phone calls; the client only starts the session and does not handle tool calls directly.

Realtime Voice node inspector and Configure Tools — Realtime Voice node inspector showing instructions, voice, model, and Configure Tools dialog with built-in and lead capture toggles

Connecting Nodes

Nodes are connected with edges (lines) that define the flow of conversation:

  • Click on a node's output port (bottom) and drag to another node's input port (top) to create a connection
  • Edges show the path of execution from one node to the next
  • Edges use bezier curves for clean visual representation
  • You can have multiple outgoing edges from condition nodes (one per branch)
  • Delete edges by selecting them and pressing Delete, or through the inspector panel

Flow Variables

Variables allow you to store and reuse data throughout your flow execution:

Built-in Variables

${lastInput} - The most recent user input
${lastResponse} - The most recent AI model response

Creating Custom Variables

You can define custom variables in the Flow Variables dialog (accessible from the flow header):

  1. Click the "Variables" button in the flow header
  2. Add variable names (without the ${} prefix)
  3. Variables are available in all nodes once created

Using Variables

Use variables in node content by typing ${variableName}. For example:

Hello! You said: ${lastInput}

Variables are automatically replaced with their values during flow execution.

View Toggles

The flow header has five view toggles. Each toggle adds or removes that section from the content area; there is no fixed “left” or “right” side. Only the views you turn on appear, in order: Flowboard, Inspector, Chat, JSON, Ingestion. You can turn the flowboard (canvas) off and show only other views, or combine any set. Resize sections by dragging the dividers between them. Your choices and panel sizes are remembered for the next time you open the flow.

  • Flowboard — The flow canvas (nodes and edges). Can be turned off to free space for other views.
  • Inspector — Configure the selected node (properties, content, settings). Click any node on the canvas to select it.
  • Chat — Run and test the flow in a chat interface tied to this flow. The same thread is used each time you open the flow.
  • JSON — View and edit the flow chat thread’s captured fields as JSON. Use Save to persist changes to the thread. Data updates when the thread’s capture changes (e.g. from tool calls or from the ingestion board).
  • Ingestion — View the flow chat thread’s captured documents and document relationships as a graph (workboard). Edit cards and relationships; changes are saved to the thread. Behaves like the ingestion tab’s workboard but for this flow’s chat thread only.

The JSON and Ingestion panels always reflect the flow chat thread’s captured data and stay in sync when it changes (e.g. when the model calls update capture tools, or when you save from the JSON panel).

Flow board header with view toggles — Header showing flow name, view toggles (Flowboard, Inspector, Chat, JSON, Ingestion), save, and run

Inspector Panel

Turn on the Inspector view toggle to show the inspector panel. It allows you to configure selected nodes:

  • Click on any node to select it
  • The inspector shows configuration options specific to that node type
  • Changes are saved automatically
  • Use the inspector to edit node properties, content, and settings

Running Flows

Test your flow by clicking the Play button in the flow header:

  1. Click the Play button (▶) in the flow header
  2. The Chat view is turned on if it wasn’t already, and the flow runs in the chat panel
  3. Interact with your flow to test its behavior
  4. Watch as the flow executes node by node
  5. The conversation thread is saved for later review

Tips for Building Flows

  • Start simple - Begin with basic message and prompt nodes
  • Use descriptive names for your nodes to keep flows readable
  • Test frequently - Run your flow often during development
  • Break complex logic into separate flows using Goto Flow nodes
  • Use variables to pass data between nodes
  • Keep your canvas organized - use the grid to align nodes