transition_to_billing or transition_to_support.
The model is intentionally small: one JSON document, one base assistant for voice/STT/TTS/tools, Redis-backed live state, and API-first editing.
Flow Shape
Runtime Behavior
begin_nodeis the first node for every call.global_promptis applied to every node.- Node prompts are combined with the base assistant prompt.
- Transition tools are generated only for the current node’s outgoing transitions.
- Dynamic variables such as
{{from_number}}are read-only and interpolated into prompts. - Existing assistant tools such as
endCall, transfer, DTMF, SMS, and custom tools still come from the base assistant.
What the Base Assistant Controls
The flow graph controls routing and node prompts. The base assistant still controls the rest of the live call stack:
The flow editor embeds the same assistant configuration form for the base assistant. If a flow behaves correctly but sounds wrong, uses the wrong tool, or has bad interruption timing, update the base assistant settings.
Node and Transition Design
Use one node for each stable conversational mode: greeting, qualification, billing, support, escalation, booking, or wrap-up. Avoid creating a new node for every question; keep node prompts focused on behavior and use transitions for routing decisions. Transition examples:Phone Number Assignment
Phone numbers can be assigned to either a single assistant or a ConversationFlow. A flow assignment storesflow_id on the phone number and clears the direct assistant assignment.
Use the Flow phone-number endpoints to bind numbers to flows: