Flows

Flows

Flows are visual automation workflows composed of steps organized in groups. They define the multi-step logic for agents, integrations, and business processes.

A flow is a visual workflow that defines a sequence of operations. Flows are the automation backbone of the platform — they orchestrate agent behavior, external API calls, data transformations, event handling, and branching logic.

Flows are defined within blueprints and can be triggered manually, by events, or automatically when conversations happen.

What flows do

Flows connect multiple operations into a structured pipeline:

  • An agent receives a message → a flow processes it, retrieves knowledge, calls the LLM, and responds
  • A webhook arrives from an external system → a flow parses the payload, updates a collection, and sends a notification
  • A user submits a form → a flow validates the data, calls an external API, and creates a record

Any process that involves more than a single action is a good candidate for a flow.

Flow structure

A flow is composed of steps organized in groups:

Flow
├── inputSchema        → what the flow expects as input
├── outputSchema       → what the flow returns
├── paramsSchema       → configuration with default values

├── groups{}           → step containers
│   └── StepGroup
│       ├── kind       → sequential, parallel, or loop
│       ├── steps[]    → ordered list of step IDs
│       └── config     → parallelism or loop settings

└── steps{}            → all steps indexed by ID
    └── Step
        ├── kind       → action, conversation, event, service, start, end
        ├── action     → which action to call
        ├── input      → step input (can reference previous outputs)
        ├── outputs    → branching logic (default, error, custom paths)
        └── settings   → timeout, retry, error handling

Steps

A step is a single unit of work. Steps can:

  • Call an action — invoke any platform action (native or integration)
  • Run an assistant — trigger the AI engine within a conversation
  • Wait for an event — pause until an external event arrives
  • Branch — route execution based on conditions or output values

Groups

Groups organize steps into execution patterns:

Group kindBehavior
SequentialSteps execute one after another, in order
ParallelSteps execute concurrently with configurable concurrency limits
LoopSteps repeat based on a condition — n-times, for-each, or until a condition is met

Edges

Edges connect steps and define how data flows between them. Each step's output options determine which edges are followed:

  • Default — the normal success path
  • Error — followed when the step fails
  • Custom — followed when specific conditions match on the output

In this section

  • Building Flows — creating flows with steps, groups, and edges
  • Flow Execution — how the engine runs flows, manages state, and handles errors
  • Flow Triggers — starting flows from events, conversations, and manual calls