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

# Conversation flows

> Build structured call logic with a visual flow.

Use a Conversation Flow when a call must follow explicit stages, branch on known conditions, or run actions in a controlled order.

## Flow nodes

| Node              | Use it to                                                               |
| ----------------- | ----------------------------------------------------------------------- |
| **Conversation**  | Hold a multi-turn conversation for one stage of the call.               |
| **Condition**     | Route the call by comparing variables with one or more rules.           |
| **Function**      | Call a configured HTTP function and branch on its result.               |
| **MCP**           | Run a tool exposed by a configured MCP server.                          |
| **Extract**       | Store text, number, boolean, or known-value data from the conversation. |
| **Transfer call** | Hand the call to a configured destination.                              |
| **End call**      | End the conversation at a defined terminal point.                       |

## Build a flow

<Steps>
  <Step title="Create a Conversation Flow agent">
    Open **Agents**, select **Create**, and choose **Conversation Flow**.
  </Step>

  <Step title="Add nodes">
    Use the canvas toolbar to add the nodes required for the workflow. Give each node a name that describes its responsibility.
  </Step>

  <Step title="Connect transitions">
    Connect the start node to the first step, then define the condition or fallback that leads to each next node.
  </Step>

  <Step title="Configure actions">
    Open a Function, MCP, or Transfer call node to provide its configuration. Keep secret values in workspace secrets rather than plain text.
  </Step>

  <Step title="Preview the flow">
    Test every branch, including the fallback path, before publishing.
  </Step>
</Steps>

The editor saves flow changes as you work. Wait for pending saves to finish before closing the page or starting a test.

## Condition operators

Conditions can compare variables with equality and numeric operators, text containment, or existence checks. Combine rules using **all** when every rule must match, or **any** when one matching rule is sufficient.

Always provide an else or fallback transition for values you did not anticipate.

## Design guidance

* Keep each conversation node focused on one goal.
* Extract a value before a condition depends on it.
* Give functions explicit success and failure transitions.
* Keep transfer and end nodes terminal unless the workflow intentionally continues.
* Test flows with missing, malformed, and unexpected variable values.
