
- Ask for information (intent)
- Extract structured data (entities)
- Route based on what was collected (conditions)
- Continue the conversation in the correct branch
- End cleanly with an exit flow
Key concepts
- Step (node): A box in the editor. It represents one moment in the conversation (ask something, confirm something, collect details).
- Edge: A line between steps. It represents a possible next path.
- Condition: A label on an edge that explains when that edge should be taken.
- Entity: A piece of structured information you want to collect (phone number, date, number of passengers).
- Exit flow: A terminal end point (finish, handoff, stop).
Step types
Default step (no-code)
Use Default steps for most of your flow. They allow you to:- Write natural-language instructions (prompt)
- Extract entities
- Branch to other steps using labeled edges
- Step 1: Collect an entity (e.g. number of passengers)
- Step 2: Route to the correct branch (e.g. Individual Booking vs Group Booking)
- Step 3: Continue collecting relevant details
Function step (low-code, still visual)
Use Function steps only when you need more control, such as:- Calling an API
- Applying strict business rules
- Performing numeric comparisons
- Writing state changes
Exit flow
Use Exit flows to:- End the conversation cleanly
- Represent a handoff
- Make terminal paths obvious in the editor
How flow logic actually runs
There are two execution models inside flows. Understanding this prevents most confusion.Default steps (LLM-driven)
In a Default step:- The LLM evaluates conditions.
- Condition labels are meaningful.
- “Required entities” inform the LLM what must be present before a condition can pass.
- Routing is determined by the model.
/entities.
In Conversation Review, you will see system functions such as:
- builtin_validate_and_save_entities
- builtin_conditions_met
Function steps (code-driven)
Function steps behave differently.- Conditions are evaluated in your Python code.
- The condition label on the edge is decorative.
- You must explicitly move the flow forward.
Accessing collected entities in a function
Entities collected earlier in the flow are available as:Moving to another step from a function
A Function step does not automatically transition. You must call:When should you use a Function step?
Use one only when you need:- API calls
- Strict numeric comparisons
- Business-rule enforcement
- Custom validation
- State changes
Quickstart: build your first flow
This walkthrough builds a simple booking flow:- Collect phone number (or fallback to email)
- Collect booking details
- Route large parties differently
- Finish cleanly
Step 1 — Create a flow
- Go to Flows
- Click + Create flow
- Name it (example: Make a booking)
Step 2 — Add your first Default step (entry point)
- Add a Default step
- Name it Collect contact details
- In the Prompt, write something like:
Step 3 — Add entities to the step
In Collect contact details, add:- Phone number
- Email address (fallback)
Step 4 — Add routing
After collecting information, add labeled edges such as:- phone collected
- phone missing
- caller refuses
- Individual Booking
- Group Booking
Step 5 — Add a finish/exit step
- Add an Exit flow
- Name it Booking complete
- Connect your success branches to it
Write condition labels for humans first
Good labels are:- Short
- Unambiguous
- Business-focused
- phone collected
- phone missing
- party size above 15
- requires handoff
- unclear
- valid
- ok
- continue
Entities
Entities are structured values the agent can collect and reuse, such as:- Phone number
- Date
- Time
- Address
- Name
- Number
- Free text
Validation
Depending on the entity type:- Valid values allow the flow to continue.
- Invalid values can trigger re-asking or fallback routing.
Glossary
- Step (node): A unit of conversation in the editor.
- Edge: A connection between steps.
- Condition: A label explaining when an edge should be taken.
- Entity: Typed extracted data (phone, date, number, etc.).
- Exit flow: A terminal node (finish or handoff).
- Function step: An optional step used when business logic goes beyond simple branching.

