Nodes are the building blocks of your conversation flow. Each type serves a specific purpose in guiding the conversation from start to finish.
Node Types at a Glance
| Node | Purpose | When to Use |
|---|
| Default | Conversation step | Each conversation point where the agent speaks and listens |
| API Call | External data | Fetch or send data mid-conversation |
| Transfer Call | Handoff to human | Connect caller to a live agent |
| End Call | Terminate call | Natural conversation endings |
| Pre-Call API | Load context | Get data before the call starts |
| Post-Call API | Save data | Send data after the call ends |
Default Node
The workhorse of your flow. Each Default node represents one step in the conversation where your agent speaks and waits for a response.
Configuration
Click a Default node to open its settings panel.
| Field | Description |
|---|
| Name | Identifier shown on the canvas |
| Prompt | What the agent says at this step |
| Branches | Output paths based on caller response |
Uninterruptible Mode
When enabled, the user cannot interrupt the bot while it is speaking on this node. This ensures the bot completes its message before any user interaction is allowed.
| Setting | Behavior |
|---|
| OFF (default) | Caller can interrupt at any time |
| ON | Bot must finish speaking before caller input is processed |
Use Uninterruptible mode for critical messages like legal disclaimers, confirmation summaries, or important instructions that shouldn’t be cut off.
Example Prompts
Greeting
Question
Confirmation
Hi! Thanks for calling Acme Support. My name is Alex.
How can I help you today?
I'd be happy to help with that. First, could you tell
me your account number or the email on file?
Just to confirm — you'd like to schedule a demo for
next Tuesday at 2pm. Is that correct?
API Call Node
Connect your agent to external systems mid-conversation. Fetch data, book appointments, update records — anything your APIs can do.
Requirements
API Call nodes have connection requirements:
- Must have at least one incoming connection
- Must have at least one outgoing connection
- Must have an endpoint URL configured
Configuration
Click an API Call node to configure the request.
Select the HTTP method and enter the full API endpoint URL you want to call.| Field | Description |
|---|
| Method | HTTP method (GET, POST, PUT, PATCH, DELETE) |
| URL | Full endpoint URL (e.g., https://api.example.com/customers) |
Use variables in the URL for dynamic requests:https://api.example.com/customers/{{caller_phone}}
Construct the data payload for your request. This is typically required for POST, PUT, or PATCH methods.{
"phone": "{{caller_phone}}",
"name": "{{customer_name}}",
"action": "lookup"
}
Variables are replaced with actual values at runtime.
Branching on Results
After extracting response data, you can branch based on the results:
[API Call: Check Account]
├── Success ({{account_tier}} == "premium") → VIP Flow
├── Success ({{account_tier}} == "basic") → Standard Flow
├── Error → Fallback / Transfer
Transfer Call Node
Hand the conversation to a human when needed — for escalations, complex issues, or high-value opportunities.
Configuration
| Field | Required | Description |
|---|
| Name | Yes | Identifier (e.g., transfer_to_sales) |
| Description | Yes | When this transfer should trigger |
| Phone Number | Yes | Transfer destination with country code |
| Transfer Type | Yes | Cold or Warm |
Transfer Types
Cold Transfer
Warm Transfer
Immediate handoff. The caller is connected directly to the destination without any briefing to the receiving agent.| Pros | Cons |
|---|
| Fast | No context for receiving agent |
| Simple | Caller may repeat themselves |
Best for:
- Simple escalations
- When context isn’t needed
- Time-sensitive transfers
- High call volume scenarios
AI briefs the agent first. The receiving agent gets context before the caller joins.| Pros | Cons |
|---|
| Human has context | Slightly longer |
| Better experience | More configuration |
Best for:
- Complex issues needing context
- VIP callers
- When continuity matters
Warm Transfer Options
| Setting | Description |
|---|
| On-hold Music | What the caller hears while waiting for connection |
| Transfer if Human | Skip transfer if voicemail detected (coming soon) |
| Whisper Message | Private message only the agent hears before connecting |
| Handoff Message | What the AI says to brief the receiving agent |
| Three-way Message | Message both parties hear when connected |
Example Whisper Message:Incoming transfer: Customer calling about a billing dispute.
They've been charged twice for order #12345.
Identity already verified.
Example Three-way Message:I've connected you with Sarah from our billing team.
Sarah, this customer is calling about a duplicate charge.
End Call Node
Gracefully conclude the conversation when the interaction is complete.
Configuration
| Field | Description |
|---|
| Name | Identifier for this ending |
| Closing Message | Final words before hanging up |
Example Closings
Successful
Transferred
Not Qualified
Great! You're all set. Is there anything else I can
help you with today? ... Perfect, thank you for calling
Acme. Have a wonderful day!
I'm connecting you now. Thanks for calling Acme, and
have a great day!
Thanks so much for your interest. I'll have someone
send over some resources that might be helpful. Take care!
Every path must end. Make sure all branches in your flow eventually reach an End Call or Transfer Call node.
Pre-Call API Node
Execute API calls before your agent says hello. Perfect for loading personalized data that shapes the entire conversation.
When It Runs
The Pre-Call API executes immediately when the call connects, before any conversation:
- Phone rings / Call connects
- Pre-Call API executes ← Here
- Data available in variables
- Conversation starts (first Default node)
Configuration
Pre-Call API uses the same configuration as the API Call node:
- Request: Method + URL
- Headers: Key-value pairs
- Body: JSON payload (for POST requests)
- Extract Response Data: Variable name + JSONPath
Use Cases
| Scenario | What to Fetch |
|---|
| CRM Lookup | Customer history before greeting |
| Account Status | Check for open issues or alerts |
| Personalization | Load name, preferences, language |
| Routing Logic | VIP status, time zone, special handling |
Example
GET https://crm.example.com/lookup?phone={{caller_phone}}
Response Mapping:
$.customer_name → customer_name
$.last_ticket → last_issue
$.tier → account_tier
Your greeting node can now say:
"Hi {{customer_name}}! Thanks for calling back.
Are you still having trouble with {{last_issue}}?"
Post-Call API Node
Trigger actions after the call ends. Perfect for logging outcomes, updating CRMs, and triggering follow-ups.
When It Runs
The Post-Call API executes after the conversation ends:
- Conversation ends (End Call node reached)
- Call terminates
- Post-Call API executes ← Here
- Data saved externally
Configuration
Post-Call API uses the same configuration as the API Call node:
- Request: Method + URL
- Headers: Key-value pairs
- Body: JSON payload (typically POST)
- Extract Response Data: Variable name + JSONPath
Use Cases
| Scenario | What to Send |
|---|
| CRM Logging | Call summary, outcome, duration |
| Ticket Creation | Issue details, priority level |
| Follow-up Triggers | Send email confirmations, SMS receipts |
| Analytics | Custom metrics, conversion tracking |
Example
POST https://crm.example.com/calls
Body:
{
"phone": "{{caller_phone}}",
"duration": "{{call_duration}}",
"outcome": "{{disposition}}",
"notes": "{{call_summary}}",
"agent_id": "{{agent_id}}",
"collected": {
"name": "{{collected_name}}",
"budget": "{{collected_budget}}"
}
}
Choosing the Right Node
| If you need to… | Use |
|---|
| Ask a question or give information | Default Node |
| Make the bot uninterruptible for a message | Default Node with Uninterruptible ON |
| Get external data mid-conversation | API Call Node |
| Transfer to a human | Transfer Call Node |
| End the conversation | End Call Node |
| Load data before the call starts | Pre-Call API Node |
| Save data after the call ends | Post-Call API Node |
Next