Reference

Template configuration

The configurations object on every template — controls STT, TTS, VAD, LLM, audio, interruptions, IVR, and more.

Overview

Each template carries an optional configurations object (ConfigurationModel). All fields are optional — sensible defaults apply when omitted.

Global Defaults
Template Config
Node Override

Config cascade

Node-level config replaces (not merges with) template-level config. If a node sets its own stt_configuration, it fully overrides the template setting.

Configuration categories

CategoryKey fieldsDetails
Speech-to-Textstt_configurationSTT Config
Text-to-Speechtts_configuration, tts_configuration_overrides, tts_selection_configTTS Config
Voice Activityvad_configVAD Config
LLMllm_configurationsLLM Config
Audioenable_background_sound, noise_filter, keyword_filterAudio Config
Idle Handlinguser_idle_configurationUser Idle
Telephonyenable_inbound, transfer_number, ivr_configurationTelephony

Fields reference

FieldTypeDefaultDescription
stt_configurationSTTConfigurationnullSTT provider, language, turn detection.
tts_configurationTTSConfignullDefault TTS provider + voice for the template.
tts_configuration_overridesDict[str, TTSConfig]nullPer-provider override map. The dict key is the provider ("cartesia", "elevenlabs", etc.); provider is auto-filled.
tts_selection_configTTSSelectionConfignullLLM-based per-utterance TTS provider selection.
enable_background_soundboolfalseMix ambient audio into the call.
background_sound_fileBackgroundSoundFilenullAmbient file — e.g. office-ambience.
background_sound_volumefloat2.0Gain multiplier for background sound.
initial_greetingstrnullFirst bot utterance. Supports {variable} placeholders.
vad_configVadConfignullSilero VAD tuning: confidence, start/stop secs.
interruptionInterruptionConfignullInterruption mode and min_words threshold.
input_collectionInputCollectionConfignullMulti-segment input collection (enabled, user_speech_timeout).
user_idle_configurationUserIdleHandlingConfignullIdle timer: timeout, message, max retries.
llm_configurationsLLMConfigurationnullLLM model and temperature.
enable_inboundboolfalseAccept inbound calls on this template.
transfer_numberstrnullE.164 number for warm transfer. Required to let connect_to_live_agent succeed.
ivr_configurationIvrConfignullIVR menu options when multiple templates share an inbound number. See IVR configuration.
noise_filterNoiseFilterConfignullAIC-based noise enhancement on incoming audio.
keyword_filterKeywordFilterConfignullDrop matching user transcriptions while the bot is speaking.

Playground overrides

When a lead carries metaData.playground=true (equivalent to the push field is_playground: true), the template’s configurations are replaced at runtime by whatever is in the lead’s configurations_override (stored into metaData.configurations). Use this for iterating on templates from the dashboard without modifying the stored config.

IVR configuration

ivr_configuration holds this template’s menu option when multiple templates share an inbound number. The IVR agent concatenates each template’s greeting in priority order.

FieldTypeDescription
greetingstrMenu line spoken for this option (e.g. “Press 1 or say Sales to speak with our sales team”).
goodbyestrMessage played when the caller provides no input.
priorityint (≥1)Ordering within the menu. Lower number is spoken first.
tts_configurationTTSConfigOptional TTS override for IVR menu playback.

The flat fields ivr_greeting, ivr_goodbye, and ivr_priority are deprecated shorthand — prefer ivr_configuration.

Full JSON example

Complete Configuration Object
json
{
  "configurations": {
    "stt_configuration": {
      "provider": "deepgram",
      "language": "en",
      "turn_detection": "smart_turn",
      "deepgram": { "model": "nova-3-general", "endpointing_ms": 25 },
      "smart_turn": { "stop_secs": 3.0, "pre_speech_ms": 500.0 }
    },
    "tts_configuration": {
      "provider": "elevenlabs",
      "voice_id": "pFZP5JQG7iQjIQuC4Bku",
      "model_id": "eleven_turbo_v2_5",
      "language": "en"
    },
    "tts_configuration_overrides": {
      "cartesia": {
        "voice_id": "a0e99841-438c-4a64-b679-ae501e7d6091",
        "language": "en",
        "speed": 1.1
      }
    },
    "vad_config": {
      "confidence": 0.5, "start_secs": 0.2,
      "stop_secs": 0.8, "min_volume": 0.6
    },
    "interruption": { "mode": "enabled", "min_words": 2 },
    "input_collection": { "enabled": false, "user_speech_timeout": 1.5 },
    "user_idle_configuration": {
      "enabled": true, "timeout": 5.0,
      "idle_message": "Are you still there?", "max_retries": 3
    },
    "llm_configurations": { "model": "gpt-4o", "temperature": 0.7 },
    "enable_background_sound": true,
    "background_sound_file": "office-ambience",
    "initial_greeting": "Hello {customer_name}, calling from {company}.",
    "transfer_number": "+14155551234"
  }
}

Start simple

Begin with initial_greeting and tts_configuration, then layer in STT, VAD, and interruption tuning as needed.

Was this helpful?