Skip to main content

Voice Nodes Reference

Voice nodes enable phone-based automation, from handling inbound calls to making AI-powered outbound calls and voice responses.


Overview

Voice workflows typically follow this pattern:

[Voice Trigger] → [Voice Agent] → [Actions] → [Voice Response/Transfer]

Node Categories

CategoryNodes
TriggersVoice Inbound, Voice Message
AI AgentVoice Agent
ActionsVoice Outbound, Transfer Call
OutputVoice Response, Text to Speech

Supported Providers

  • Telephony: Exotel, Twilio, Tata Tele
  • TTS (Text-to-Speech): ElevenLabs, Cartesia, Azure, Google, AWS Polly
  • STT (Speech-to-Text): Deepgram, Azure, Google, AWS Transcribe

Voice Inbound Trigger

Triggers workflows when incoming phone calls are received.

Configuration

FieldTypeRequiredDescription
NameTextNoName for this trigger
Voice ProviderSelectYesPhone provider integration (Twilio, Exotel)
Phone NumbersMulti-selectYesPhone numbers that trigger this workflow
Enable RecordingToggleNoEnable call recording
Call TimeoutNumberNoMax call duration (30-3600 seconds)
Business Hours OnlyToggleNoOnly trigger during business hours

Business Hours Configuration

When Business Hours Only is enabled:

Timezone: UTC
Monday: 09:00 - 17:00 (enabled)
Tuesday: 09:00 - 17:00 (enabled)
Wednesday: 09:00 - 17:00 (enabled)
Thursday: 09:00 - 17:00 (enabled)
Friday: 09:00 - 17:00 (enabled)
Saturday: 10:00 - 14:00 (disabled)
Sunday: (disabled)

Output Variables

{{voiceinboundtrigger_1.caller_number}}    - Caller's phone number
{{voiceinboundtrigger_1.called_number}} - Number that was called
{{voiceinboundtrigger_1.call_id}} - Unique call identifier
{{voiceinboundtrigger_1.call_start_time}} - When call started
{{voiceinboundtrigger_1.provider}} - Voice provider name

Voice Message Trigger

Triggers workflows on voice input from various sources (phone, WebRTC, WhatsApp, voice notes).

Configuration

FieldTypeRequiredDescription
SourceSelectNoFilter by source: any, phone, webrtc, whatsapp, voice_note
Test ModeToggleNoAllow text input for testing
Transcriber SourceSelectNodirect, voice_agent, or none
Transcriber IntegrationSelectConditionalSTT provider (when source is direct)
LanguageTextNoLanguage code (default: en)
Include TimestampsToggleNoInclude word-level timestamps
Filter ProfanityToggleNoFilter profanity from transcription

Output Variables

{{voicemessagetrigger_1.message}}          - Transcribed text
{{voicemessagetrigger_1.audio_url}} - Original audio URL
{{voicemessagetrigger_1.source}} - Input source
{{voicemessagetrigger_1.confidence}} - Transcription confidence
{{voicemessagetrigger_1.duration}} - Audio duration
{{voicemessagetrigger_1.language}} - Detected language

Voice Agent Node

Voice-enabled AI agent for handling phone conversations. Similar to Core Agent but optimized for voice interactions.

Configuration

Basic Settings

FieldTypeRequiredDescription
NameTextNoDisplay name for the agent
LLM ProviderSelectYesAI provider (OpenAI, Anthropic, etc.)
TemperatureSliderNoCreativity (0-1, default 0.7)
Max TokensNumberNoResponse length (50-500, default 250)
System PromptTextareaYesAgent instructions

Voice Settings (TTS)

FieldTypeRequiredDescription
Synthesizer IntegrationSelectYesTTS provider
Voice IDSelectYesVoice to use
SpeedSliderNoSpeech speed (0.5-2.0)
LanguageTextNoVoice language
AccentTextNoVoice accent

Provider-Specific Settings:

ElevenLabs:

  • Stability (0-1)
  • Similarity Boost (0-1)
  • Style (0-1)

Cartesia:

  • Model variant

Transcriber Settings (STT)

FieldTypeRequiredDescription
Transcriber IntegrationSelectYesSTT provider
LanguageTextNoTranscription language
ModelSelectNoSTT model (Deepgram)
Profanity FilterToggleNoFilter profanity
Smart FormattingToggleNoFormat numbers, dates
Speaker DiarizationToggleNoIdentify speakers

Timing Settings:

  • Silence Timeout: 100-5000ms (when to finalize transcript)
  • Max Segment Duration: 20-70s
  • Utterance Timeout: 500-3000ms

Channel Configuration

FieldTypeDescription
ChannelSelectphone, webrtc, or auto
Voice ProviderSelectTelephony provider for phone calls

Output Variables

{{voiceagent_1.output}}              - Final agent response
{{voiceagent_1.transcript}} - Full conversation transcript
{{voiceagent_1.call_duration}} - Call duration
{{voiceagent_1.success}} - true/false
{{voiceagent_1.tool_calls}} - Tools used during call

Voice Outbound Call Node

Make outbound phone calls - either manual (connect two humans) or AI-powered.

Configuration

Call Type

TypeDescription
ManualConnect two humans (e.g., agent to customer)
AIAI Voice Agent handles the call

Core Settings

FieldTypeRequiredDescription
Call TypeSelectYesmanual or ai
Voice ProviderSelectYesTelephony integration
Caller IDTextYesDisplay number for customer
Call Input ModeSelectNosingle or batch

Single Call Input

Phone: {{contact.phone}}
Variables: [
{key: "name", value: "{{contact.first_name}}"},
{key: "company", value: "{{contact.company.name}}"}
]

Batch Call Input

Data Source: {{databasequery_1.contacts}}
Phone Field: phone
Variable Mappings: [
{key: "name", value: "first_name"},
{key: "deal_value", value: "deal.value"}
]

Manual Call Configuration

FieldTypeDescription
From NumberTextAgent's phone number
Connect OrderSelectfrom_first (call agent first) or to_first (call customer first)
Call PurposeTextNotes for CRM logging

AI Call Configuration

FieldTypeDescription
Voice Agent NodeSelectVoice Agent to handle call
Conversation VariablesKey-ValueVariables to pass to agent

Output Variables

{{voiceoutbound_1.call_id}}          - Unique call ID
{{voiceoutbound_1.status}} - Call status
{{voiceoutbound_1.duration}} - Call duration
{{voiceoutbound_1.recording_url}} - Recording URL (if enabled)
{{voiceoutbound_1.success}} - true/false

# For batch calls
{{voiceoutbound_1.total_calls}} - Total calls attempted
{{voiceoutbound_1.successful}} - Successful calls
{{voiceoutbound_1.failed}} - Failed calls
{{voiceoutbound_1.results}} - Array of call results

Transfer Call Node

Transfer the current call to another phone number or department. Works as a tool for Voice Agent.

Configuration

FieldTypeRequiredDescription
DestinationsArrayYesList of transfer destinations
Transfer MessageTextNoMessage before transfer
Fallback MessageTextNoMessage if transfer fails

Destination Configuration

[
{
"name": "Sales Team",
"number": "+919876543210",
"description": "For pricing and purchase inquiries"
},
{
"name": "Support",
"number": "+919876543211",
"description": "For technical issues and troubleshooting"
},
{
"name": "Billing",
"number": "+919876543212",
"description": "For payment and invoice questions"
}
]

How It Works

  1. Voice Agent recognizes transfer intent from conversation
  2. AI calls this tool with the destination name
  3. Node speaks transfer message and initiates transfer
  4. If transfer fails, fallback message is played

Supported Providers

  • Exotel: Passthru → Connect flow
  • Tata Tele: API-based transfer
  • Twilio: SIP REFER or REST API

Output Variables

{{transfercall_1.transferred}}       - true/false
{{transfercall_1.destination}} - Destination transferred to
{{transfercall_1.transfer_time}} - When transfer occurred

Voice Response Node

Convert text to speech and send as audio response (primarily for active calls).

Configuration

FieldTypeRequiredDescription
TextTextYesText to speak (supports variables)
Synthesizer SourceSelectYesdirect, voice_agent, or none
Synthesizer IntegrationSelectConditionalTTS provider
Output FormatSelectNomp3, wav, ogg, m4a
Output DestinationSelectNofile, stream, phone, webrtc

Voice Settings

SettingRangeDefaultDescription
Voice ID--Voice to use
Speed0.5-2.01.0Speech speed
Pitch-20 to 200Voice pitch
Volume0.0-1.00.8Audio volume

Output Variables

{{voiceresponse_1.audio_url}}        - URL to audio file
{{voiceresponse_1.audio_data}} - Audio binary (base64)
{{voiceresponse_1.duration}} - Audio duration
{{voiceresponse_1.success}} - true/false

Text to Speech Node

Convert text to speech audio file (for generating audio assets, not live calls).

Configuration

FieldTypeRequiredDescription
Synthesizer IntegrationSelectNoTTS provider
Voice IDTextNoVoice to use
LanguageTextNoLanguage code (e.g., en-US)
Voice GenderSelectNomale, female, neutral, auto
Speaking RateSliderNoSpeed (0.5-2.0)
PitchSliderNoPitch (-20 to 20)
VolumeSliderNoVolume (0-100)
Audio FormatSelectNomp3, wav, ogg, opus, flac, aac

Text Source Options

SourceDescription
inputFrom previous node output
staticFixed text in configuration
templateTemplate with variables
previous_nodeSpecific node's output

Advanced Options

FieldDescription
Use SSMLEnable SSML markup for advanced control
Output Modebase64, url, file, or stream

Output Variables

{{texttospeech_1.audio_data}}        - Audio as base64
{{texttospeech_1.audio_url}} - URL to audio file
{{texttospeech_1.duration}} - Audio duration
{{texttospeech_1.format}} - Audio format used
{{texttospeech_1.success}} - true/false

Common Workflow Patterns

Inbound Call → AI Agent

[Voice Inbound Trigger]

[Voice Agent]
- System: "You are a helpful customer service agent..."
- Tools: [KB Search, CRM Manager, Transfer Call]

[CRM Manager: Log Activity]

AI Outbound Campaign

[Database Query: Get contacts]

[Voice Outbound Call]
- Call Type: AI
- Batch Mode
- Voice Agent: Sales Agent

[CRM Manager: Update status]

Manual Call Connect

[Click Trigger: "Call Customer"]

[CRM Manager: Get Contact]

[Voice Outbound Call]
- Call Type: Manual
- From: {{user.phone}}
- To: {{contact.phone}}

Voice Note Processing

[Voice Message Trigger]
- Source: voice_note

[LLM Integration: Summarize]

[CRM Manager: Create Note]

[Text Response: "Note saved!"]

IVR with Transfer

[Voice Inbound Trigger]

[Voice Agent]
- "How can I help today?"
- Tools: [Transfer Call, KB Search]

[Condition: Transfer requested?]
→ Yes → [Transfer Call]
→ No → [Voice Response: "Goodbye!"]

Best Practices

Voice Agent Prompts

Keep prompts concise for voice:

You are a friendly customer service agent for Acme Corp.
- Keep responses under 2-3 sentences
- Speak naturally, avoid technical jargon
- Confirm understanding before actions
- Offer to transfer to human if needed

Transcription Settings

For real-time conversations:

  • Silence Timeout: 300ms (faster response)
  • Max Segment: 30s
  • VAD Threshold: 0.03 (balanced)

Call Recording

Always inform callers about recording:

Transfer Message: "This call may be recorded for quality purposes.
Please hold while I transfer your call."

Error Handling

[Voice Agent] → [Condition: Success?]
→ Yes → [Log: Call completed]
→ No → [Voice Response: Apology] → [Create Task: Follow up]

Batch Call Limits

  • Start with small batches (10-20 calls)
  • Monitor success rates before scaling
  • Implement retry logic for failed calls
  • Respect carrier rate limits