Node structure
All nodes share common properties:string
required
Unique identifier for the node
enum
required
The type of node (determines behavior)
object
required
Canvas coordinates
{X: number, Y: number}Available node types
Start node
Type:Start
The entry point for every script. Each script has exactly one Start Node, automatically created when you create a new script.
Configuration: None (minimal node)
Behavior:
- Execution begins here when the script is activated
- Has one output port connecting to the first conversation step
- Cannot be deleted or duplicated
User query node
Type:UserQuery
Represents expected user input. Helps the AI understand what the user might say at this point in the conversation.
object
required
Multi-language description of expected user input
object
Multi-language lists of example phrases
- Waits for user speech input
- AI analyzes if input matches the expected query
- Provides context for natural language understanding
- Provide 3-5 diverse examples
- Include variations (formal/informal, short/long)
- Cover different phrasings of the same intent
AI response node
Type:AIResponse
Defines what the agent should say or communicate to the user.
object
required
Multi-language instruction for the AI’s response
object
Multi-language lists of example responses
- AI generates response based on instruction and examples
- Response is converted to speech via TTS
- Variables can be referenced using
{{ variables.key }}syntax
System tool nodes
Type:ExecuteSystemTool
Execute built-in deterministic actions. These are non-AI operations that happen reliably.
End call
ToolType:EndCall
Terminate the conversation.
enum
required
Immediate- Hang up instantlyAfterMessage- Speak closing message first
object
Multi-language goodbye message (if Type is AfterMessage)
DTMF input
ToolType:GetDTMFKeypadInput
Collect keypad input (phone digits) from the user.
integer
default:"5000"
Milliseconds to wait for input
boolean
default:"false"
Input must begin with
*boolean
default:"false"
Input must end with
#integer
default:"1"
Maximum number of digits
boolean
default:"false"
Store input encrypted (for PCI-DSS compliance)
string
Script variable to store the input
array
Conditional outputs based on input valueEach outcome has:
Value- Multi-language expected inputPortId- Output port for this value
Go to node
ToolType:GoToNode
Jump to a specific node in the script (unconditional navigation).
string
required
Target node ID to jump to
Transfer to agent
ToolType:TransferToAgent
Transfer the conversation to another AI agent.
string
required
Target agent ID
Transfer to human
ToolType:TransferToHuman
Transfer to a human operator (SIP transfer).
string
required
Destination phone number
enum
Blind- Immediate transferWarm- Wait for human to answer first
Send SMS
ToolType:SendSMS
Send an SMS message to the user.
string
required
Source phone number ID from your integration
object
required
Multi-language SMS content
Add script to context
ToolType:AddScriptToContext
Dynamically inject another script into the agent’s context.
string
required
ID of the script to add
Retrieve knowledge base
ToolType:RetrieveKnowledgeBase
Manually trigger RAG retrieval at a specific point.
string
Optional: Override query (defaults to last user message)
integer
Number of chunks to retrieve
OnEveryQuery.
Custom tool node
Type:ExecuteCustomTool
Execute a custom HTTP API tool you’ve defined.
string
required
ID of the custom tool definition
object
Key-value pairs for tool parameters
- Sends HTTP request to your API
- Waits for response
- Response data available to AI in subsequent nodes
FlowApp node
Type:ExecuteFlowApp
Execute a FlowApp integration (pre-built connectors for popular services).
string
required
FlowApp identifier (e.g.,
cal.com, hubspot)string
required
Specific action (e.g.,
create_booking, get_contact)string
User’s integration credentials ID
object
Multi-language message to say while executing
array
required
Input parameters for the actionEach input has:
Key- Parameter name (e.g.,attendee.email)Value- Static value or templateIsAiGenerated- Let AI extract value from conversationIsRedacted- Hide from logs
Node connections
Nodes connect via edges that link output ports to input ports.Single output
Most nodes have one output port that connects to the next step:Multiple outputs
Some nodes support conditional branching: DTMF Input Outcomes:Node design patterns
Linear flow
Simple question-answer sequences:Conditional branching
Different paths based on user input:Loops
Repeat until condition met:Modular composition
Best practices
1
Provide examples
Always add 3-5 examples to User Query and AI Response nodes. They dramatically improve accuracy.
2
Handle timeouts
Add fallback paths for DTMF timeouts and unrecognized speech.
3
Keep responses focused
Each AI Response should have one clear purpose. Break complex responses into multiple nodes.
4
Use variables
Store data in variables instead of expecting the AI to remember. The AI is probabilistic, variables are reliable.
5
Test all paths
Ensure every possible route through your script has been tested, including error cases.
Next steps
Visual IDE
Learn the script editor interface
Action flows
Build deterministic workflows
Secure sessions
PCI-DSS compliant data collection