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.

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.

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.

Inspector Panel

The inspector panel (visible in the sidebar) 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. A chat interface opens in the sidebar
  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