What is a script?
A script is a visual, node-based flow that defines:- Conversation structure: The path conversations can take
- Deterministic actions: System operations that execute predictably
- AI guidance: Instructions and examples for natural responses
- State management: Variables that track conversation data
- Tool invocation: When and how to call external services
Scripts are built in a visual IDE similar to Typebot.io or n8n, but specifically designed for conversational AI with voice and text channels.
Script architecture
Core structure
Every script consists of four main components:- General: Name, description, and metadata
- Nodes: Individual building blocks (AI responses, tools, logic)
- Edges: Connections that define flow between nodes
- Variables: State storage for conversation data
Visual representation
Scripts are built in a drag-and-drop canvas:Node types
Scripts are built from different types of nodes, each serving a specific purpose:Start node
Every script begins with a start node:AI response node
Defines what the AI should say and provides examples:User query node
Defines what information you’re asking the user for:System tool node
Executes deterministic system operations:Example: DTMF input node
Example: End call node
FlowApp node
Executes external integrations via the FlowApp plugin system:FlowApps are reusable C#/.NET plugins. Once installed, any script can use them without writing code. See the FlowApp documentation to build your own.
Custom tool node
Executes HTTP-based custom tools:Edges and flow control
Edges connect nodes and define the conversation flow:Conditional branching
Nodes can have multiple output ports:Loops and retries
Edges can create loops for retry logic:Variables and state management
Variables store conversation state across nodes:Variable types
Visibility controls
IsVisibleToAgent determines if the AI can see the variable:Script execution flow
When a script runs:- Start node activates when the script is loaded
- Current node executes its logic (AI generation, tool call, etc.)
- Output port is selected based on the result
- Edge is followed to the next node
- Variables are updated as nodes execute
- Process repeats until an End Call node or transfer occurs
Example execution trace
Multi-script orchestration
Scripts can interact with each other:Add script to context
Loads an additional script while keeping the current one active:Transfer to agent
Hands the conversation to a different agent (and their scripts):When transferring, variables can be passed to the new agent/script if they’re configured in both contexts.
Best practices
Keep scripts focused
One script = one purpose:- ✅ “Appointment Booking Script”
- ✅ “Payment Collection Script”
- ✅ “Account Verification Script”
- ❌ “Do Everything Script”
Use meaningful node names
Your team will thank you:Design for failure
Always handle error paths:Test with real conversations
The visual IDE helps, but test with actual voice/text:- Users will say unexpected things
- AI might extract data incorrectly
- External APIs will fail
- Timing and latency matter
Use variables strategically
Don’t create variables for everything:Next steps
Build a script
Step-by-step guide to creating your first conversation flow
Workflows
Add deterministic action flows for complex logic
Tools
Learn about system tools and custom integrations
FlowApps
Build reusable plugins for external services