Building Agents
Journey Builder
Overview

Journey Builder

The Journey Builder is a visual node editor for designing conversation flows. You access it from the Journey tab inside any agent. Each node represents a step in the conversation -- a message, an AI decision, an API call, a branching condition -- and you wire them together into a directed graph that defines the agent's behavior.

How journeys work

A journey is a directed graph that starts at a Greeting node and flows forward based on user input, AI classification, variable conditions, and other logic. Each agent has one active journey at a time. When a user starts a conversation, the engine enters the Greeting node and evaluates the graph step by step, following edges until it reaches a terminal node or the conversation ends.

Journeys can be simple (Greeting, AI Response, done) or complex multi-branch flows with loops, sub-flows, and cross-agent orchestration.

Node categories

The builder provides 45 node types across 7 categories, plus internal and legacy types:

CategoryCountDescription
Conversation5Core messaging: greetings, messages, quick replies, questions, and input collection
AI & Intelligence7LLM-powered responses, classification, data extraction, summarization, and brand intelligence
Actions9Side effects: emails, webhooks, API calls, document generation, and platform integrations
Content & Media3Product cards, media display, and rich content
Logic & Flow10Branching, conditions, loops, sub-flows, delays, waits, converge points, and variable assignment
Triggers3Entry points for Action agents: schedules, webhooks, and data monitors
Cross-Agent4Invoke other agents, hand off to humans, and orchestrate multi-agent workflows

Three additional internal node types are used by the engine but not placed manually, and one legacy type exists for backward compatibility.

Connecting nodes

To connect two nodes, drag from the output handle on the source node to the input handle on the target node. Most nodes have a single output, but some have multiple:

  • AI Categorizer -- one output per category, so the flow branches based on classification result.
  • Condition -- two outputs (true and false), routing based on a variable comparison.
  • Loop -- separate outputs for "each item" (the loop body) and "complete" (after iteration finishes).

Delete a connection by selecting it and pressing Delete/Backspace.

Error handling

AI nodes and action nodes support configurable error handling with four strategies:

  • Stop -- End the flow immediately on error.
  • Continue -- Skip the failed node and proceed to the next connected node.
  • Error Branch -- Route to a dedicated error-handling path, letting you build custom recovery logic.
  • Fallback Message -- Display a custom message to the user and continue.

You can also enable Retry Once, which automatically retries the failed node one time before applying the chosen error strategy. This is useful for transient network or API failures.

AI-generated quick replies

When AI Quick Replies is enabled in the agent's Settings tab, the engine can automatically generate contextual suggestion buttons after AI Response nodes.

The priority order is:

  1. Explicit Quick Reply node -- If a Quick Reply node is connected after the current node, those buttons are always shown.
  2. AI-generated suggestions -- If no Quick Reply node follows and AI Quick Replies is enabled, the LLM generates contextual suggestions based on the conversation.
  3. No buttons -- If neither of the above applies, no suggestion buttons appear.

This means you only need to wire up Quick Reply nodes where you want specific, controlled options. For open-ended conversation points, the AI handles it automatically.

Sub-flows

Sub-flows let you compose multiple journeys into a single agent experience, keeping each flow focused and reusable:

  1. Create separate flows for distinct modules (e.g., "Product Recommendations", "Support Triage", "Lead Capture").
  2. Use Sub-Flow nodes to route from one flow into another.
  3. Configure input/output variable mappings to pass data between the parent flow and the sub-flow.
  4. Enable Share Variables when you want the sub-flow to read and write variables from the parent scope directly, rather than through explicit mappings.

Sub-flows are especially useful for keeping complex agents manageable. The diagnostics engine will warn you when a flow exceeds 30 nodes and suggest breaking it into sub-flows.

Testing with Playground

Use the Playground (accessible from the left sidebar) to walk through your journey as a user would. Changes you make in the Journey Builder take effect immediately in the Playground -- there is no separate publish step required for testing. This lets you iterate quickly: edit a node, switch to Playground, and test the change right away.

Note that Playground testing uses your agent's current configuration, including linked knowledge bases and settings. For end-user deployment, you still need to publish through the Deployment flow.

Next steps