Free-flow scenarios
Free-flow is the fastest way to get a runnable scenario. You write a description in plain English; the platform converts it into a structured caller persona at runtime — opening line, objectives, behaviors, escalation triggers, edge cases, and the data response rules.
When to use free-flow
Pick free-flow when:
- The conversation is open-ended — many valid replies at each turn.
- You want one piece of authoring to expand into multiple realistic paths.
- You want the caller to invoke custom functions. (Free-flow only.)
Pick the graph designer instead when every turn is scripted or you need precise IVR digit-press sequences.
What a good description looks like
3–6 sentences that cover who is calling, what they know, and how they react. Stage direction, not a script.
Template
You are <NAME> calling about <SITUATION>. You are <EMOTIONAL STATE> (<intensity>/10).The relevant facts: <key data — order #, DOB, dollar amount, dates>.If <agent does X>, you <react Y>. If they push back, <escalation behavior>.End the call <success condition> or <escalation condition>.Example
You are Alex Johnson calling about a duplicate $48.32 charge on your card statement.You are mildly frustrated (5/10). The duplicate is from "Brew Co" on Mar 4.Your card ending is 7710, your DOB is 1988-07-12. If the agent verifies you,ask for a refund. If they push back, ask for a supervisor. End the call politelyonce you have a refund confirmation number or a supervisor callback.What gets generated from your description
When you click Generate test paths, the platform expands your description into a structured persona for each path. The persona includes:
- Caller identity — name, pronouns, emotional state.
- Objectives — primary goal, secondary goals, escalation conditions.
- Ground rules — what the caller will and won’t do (de-escalate, escalate, language limits).
- Knowledge & flex responses — what the caller knows; acceptable explanations from the agent.
- Opening line — the exact first utterance.
- Behaviors & phrases — interruption phrases, doubt phrases, acceptance phrases.
- Identity & data — bare values to provide when asked (DOB, account #, name spelling).
- Data Response Protocol — the hard rule that bare values are spoken without sentence wrapping. Full guide →
- IVR Navigation Protocol — when and how to use
press_digitfor menu navigation. - Custom Functions Available — only if you declared any. Lists the functions, the trigger condition (preserved verbatim from your description), and the usage pattern.
- Acceptance & end conditions — success and failure / escalation criteria.
- Tone controls — how intensity changes during the call.
- Edge cases — fallback behavior for unexpected questions.
Authoring tips
- Be specific about data. “Card ending 7710, DOB 1988-07-12” produces better tests than “I have my card info.”
- Be specific about reactions. “If verification fails, get impatient and demand a supervisor” produces better tests than “react appropriately.”
- Preserve cardinality if you mean it. If you want the caller to invoke a custom function on every turn, say “every turn” or “before every sentence” — those words survive into the generated persona.
- One scenario, one situation. If you find yourself authoring “and also if X happens”, split into two scenarios.
Custom functions in free-flow
Right side of the designer — the Functions panel. Built-in tools (end_call, press_digit) are always there. Add your own via + Add. Reference them by name in your description.
Iterating
Edit the description anytime. Changes don’t auto-update existing test paths — re-generate to pull the new persona. The Save button always preserves your authoring; only Generate test paths rewrites the persona on each path.