> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oration.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Flows

> Build programmable IVR call flows with a visual, drag-and-drop editor

## What are Flows?

Flows let you design and deploy interactive voice response (IVR) systems using a visual, node-based editor. Each flow is a directed graph of **nodes** connected by **edges** — defining exactly how a call is handled from start to finish.

Unlike conversational AI agents that rely on language models for open-ended dialogue, flows give you **deterministic, predictable call routing** with precise control over every step.

<CardGroup cols={2}>
  <Card title="Deterministic routing" icon="route">
    Every call follows a defined path — no ambiguity in how calls are handled.
  </Card>

  <Card title="Visual editor" icon="pen-ruler">
    Drag-and-drop nodes, connect edges, and configure everything visually.
  </Card>

  <Card title="Hybrid AI + IVR" icon="brain">
    Hand off to AI Agents mid-flow for natural conversation, then return to structured routing.
  </Card>

  <Card title="Built-in integrations" icon="plug">
    Connect to APIs, databases, CRMs, and send emails or SMS — all within a flow.
  </Card>
</CardGroup>

***

## When to use Flows vs. AI Agents

|                   | **Flows**                                           | **AI Agents**                          |
| ----------------- | --------------------------------------------------- | -------------------------------------- |
| **Best for**      | Structured IVR menus, call routing, data collection | Open-ended conversations, complex Q\&A |
| **Control**       | Deterministic — every path is explicitly defined    | Probabilistic — LLM decides responses  |
| **Input**         | DTMF keypresses, speech recognition                 | Natural language                       |
| **Extensibility** | Nodes for APIs, databases, transfers                | Tools, knowledge bases                 |

**Tip:** Combine both. Use a flow for initial call routing (language selection, department menu) and hand off to an AI Agent for the actual conversation.

***

## Quick start

<Steps>
  <Step title="Create a flow">
    Navigate to **Flows** in the sidebar and click **Create Flow**. Give it a name and description.
  </Step>

  <Step title="Add nodes">
    Every flow starts with a **Start** node. Drag nodes from the palette onto the canvas — add an **IVR Menu**, a **Time Check**, or a **Text to Speech** node.
  </Step>

  <Step title="Connect nodes">
    Draw edges between output handles and the next node's input. Each output handle represents an event (e.g., a key press, a timeout, or a successful API call).
  </Step>

  <Step title="Configure">
    Click any node to open its configuration panel. Set prompts, timeouts, API endpoints, transfer destinations, and more.
  </Step>

  <Step title="Terminate">
    Every path must end with an **End Call** node or a **Transfer** node. The editor validates this for you.
  </Step>

  <Step title="Publish">
    Assign the flow to a phone number and publish. Incoming calls will be routed through your flow.
  </Step>
</Steps>

***

## Node categories

Flows offers six categories of nodes. Click through to learn about each one.

| Category        | Purpose                                                              | Nodes                                                                                                                                                                                                                                                                                                    |
| --------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **System**      | Flow lifecycle — start, end, transfer, voicemail, reusable sub-flows | [Start](/guides/flows/nodes/start), [End](/guides/flows/nodes/end), [Transfer](/guides/flows/nodes/transfer), [Voicemail](/guides/flows/nodes/voicemail), [Sub Flow](/guides/flows/nodes/sub-flow)                                                                                                       |
| **Audio**       | Play audio or speak text to the caller                               | [Play Audio](/guides/flows/nodes/play-audio), [Text to Speech](/guides/flows/nodes/tts)                                                                                                                                                                                                                  |
| **Logic**       | Control flow with conditions, loops, and routing                     | [Condition](/guides/flows/nodes/condition), [Switch](/guides/flows/nodes/switch), [Loop](/guides/flows/nodes/loop), [Wait](/guides/flows/nodes/wait), [Time Check](/guides/flows/nodes/time-check), [Date Check](/guides/flows/nodes/date-check), [Percent Routing](/guides/flows/nodes/percent-routing) |
| **Input**       | Collect caller input via DTMF or speech                              | [Collect Digits](/guides/flows/nodes/collect-digits), [IVR Menu](/guides/flows/nodes/ivr-menu), [Speech Input](/guides/flows/nodes/speech-input)                                                                                                                                                         |
| **Integration** | Connect to external systems                                          | [AI Agent](/guides/flows/nodes/agent), [API Call](/guides/flows/nodes/api-call), [Database](/guides/flows/nodes/database), [Email](/guides/flows/nodes/email), [SMS](/guides/flows/nodes/sms)                                                                                                            |
| **Utility**     | Internal tools for flow development                                  | [Note](/guides/flows/nodes/note), [Set Variable](/guides/flows/nodes/set-variable), [Transform](/guides/flows/nodes/transform)                                                                                                                                                                           |
