Flow object gives you control over how the agent moves between steps in a flow. It is available as a parameter in any flow-scoped function (transition function).
The two companion methods on the Conversation object — conv.goto_flow() and conv.exit_flow() — handle transitions between flows and are documented at the bottom of this page.
goto_step(step_name, condition_label)
Moves the agent to another step in the current flow. This replaces the current step’s prompt and functions with those of the target step.
| Parameter | Type | Required | Description |
|---|---|---|---|
step_name | str | Yes | The exact name of the target step as it appears in the Flow Editor. Case-sensitive. |
condition_label | str | No | A label for the transition edge. This is purely decorative — it appears on the edge in the Flow Editor for readability but does not affect runtime behaviour. |
step_name(required) — the name of the target step, exactly as it appears in the Flow Editor.condition_name(optional) — a label for the transition edge. In Function steps, this label appears on the edge in the visual editor for readability.
Execution context matters
flow.goto_step() behaves differently depending on where it’s called:
- In a transition function (LLM step) — the LLM decides whether to call the function based on the step prompt and user input. The transition only happens if the LLM invokes the function.
- In a Function step — the code runs directly without LLM involvement. The transition is deterministic. In this context, the
condition_labelparameter controls which edge is highlighted in the visual editor.
Conditional transition
Input validation and state update
current_step
Type: str
Returns: The name of the current step the agent is in.
Companion methods on the Conversation object
These methods live on theConversation object, not on Flow, but are commonly used alongside flow.goto_step() in transition logic.
conv.goto_flow(flow_name)
Transitions to a different flow at the end of the current turn. Use this when the conversation needs to leave the current flow entirely — for example, to start an identity verification or escalation flow.
flow.goto_step(), conv.goto_flow() can be called from any function — flow-scoped or global. See triggering flows for all the ways to start a flow.
conv.exit_flow()
Exits the current flow and returns the agent to its default (non-flow) behaviour. Exit steps are visually marked in yellow in the Flow Editor.
Every flow should have at least one exit path. Un-exited flows can cause the agent to hallucinate or loop. See the flows overview for more on flow design.
Related reading
- Transition functions — naming conventions, common mistakes, and best practices for flow routing logic
- Conversation object — full reference for
conv.goto_flow(),conv.exit_flow(), and other methods - No-code flows — Default steps vs Function steps, and how
goto_step()behaves in each - Triggering flows — all the ways to start a flow with
conv.goto_flow()

