Overview
Dynamic configuration allows you to personalize the behavior of your voice agent during the ringing of a call. This feature offers complete flexibility to adapt the agent to the specifics of each interaction.This configuration is intended for use during pre-call workflows.
Configuration Structure
The configuration revolves around a structured JSON object that defines all of the agent’s operational parameters:{
"initialMessage": "Initial message",
"prompt": "System prompt",
"synthesizer": {...},
"callDurationLimit": "600",
"rag": {...},
"extractors": [...],
"classifiers": [...],
"actions": [...],
"recordAudio": false
}
Configuration Detail
Main instructions defining the behavior, personality, and guidelines the agent should follow during the call.
Configuration for the agent’s voice synthesis engine.
Show child attributes
Show child attributes
Rules for vocal substitutions of text before voice synthesis to improve pronunciation.The keys represent the terms to be normalized. The values can be:
- A string for a simple replacement
- An object with specific translations by locale
Example
{
"kg": "kilogram",
"cm": {
"fr-FR": "centimeter",
"en-US": "centimeter"
}
}
Parameters for the synthesized voice.
Example
{
"locales": ["fr-FR", "en-US"],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"model": "eleven_multilingual_v2"
}
Show child attributes
Show child attributes
Identifier of the voice synthesis model to use for this voice.Allowed values:
eleven_v4_turboeleven_v3_conversationaleleven_v3eleven_multilingual_v2eleven_flash_v2_5
This parameter is only applied for voices whose provider supports model selection. In practice, the override is applied for ElevenLabs voices and ignored for other providers.
List of extractors of information that the agent should use during the call.
Example
[
{
"name": "Client's First Name",
"description": "Client's First Name"
},
{
"name": "Client's Last Name",
"description": "Client's Last Name"
}
]
List of classifiers to automatically categorize calls.
Example
[
{
"name": "Default Classifier",
"labels": ["Appointment Booking", "General Information", "..."],
"description": "Detailed classification prompt..."
},
{
"name": "Processing",
"labels": ["Transfer Failed", "Call Forwarded", "..."],
"description": "Detailed classification prompt..."
}
]
List of actions the agent can perform during the call.
Show child attributes
Show child attributes
Custom HTTP headers to be transmitted during the execution of the action.
Available only in SIP transfer
Global availability of the action by day of the week. Can be
null if no restriction.Example
{
"MONDAY": [
{
"startTime": "07:30",
"endTime": "12:30"
},
{
"startTime": "13:15",
"endTime": "18:00"
}
]
}
Show child attributes
Show child attributes
List of authorized phone numbers or SIP identifiers for transfers.
Show child attributes
Show child attributes
Phone number or SIP identifier of the destination for the transfer.
A SIP identifier can only be used if a SIP connection (materialized by the reference provided in
actions[].sipOutboundConnectionId) has been previously created.Specific availability of this destination by day of the week. Can be
null if no restriction.Structure identical to actions[].availability with the same days of the week.Example
[
{
"startTime": "07:30",
"endTime": "12:30"
},
{
"startTime": "13:15",
"endTime": "18:00"
}
]
Concise Example: Changing Voice and Language
{
"initialMessage": "Hello! I'm your virtual assistant. How can I help you today?",
"synthesizer": {
"voice": {
"locales": ["en-US"],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
}
{
"initialMessage": "Bonjour! Je suis votre assistant virtuel. Comment puis-je vous aider aujourd'hui?",
"synthesizer": {
"voice": {
"locales": ["fr-FR"],
"id": "24b1c3cc-0d44-4b50-8888-8dd25736052a"
}
}
}
Complete Example
{
"initialMessage": "Initial message",
"prompt": "Prompt",
"synthesizer": {
"voice": {
"locales": ["fr-FR", "en-US"],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"textNormalizationPatterns": {
"kg": "kilogram",
"cm": {
"fr-FR": "centimeter",
"en-US": "centimeter"
}
}
},
"callDurationLimit": "600",
"rag": {
"datasourceIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a", "4c90c3cc-0d44-4b50-8888-8dd25736052a"]
},
"extractors": [
{
"name": "Client's First Name",
"description": "Client's First Name"
},
{
"name": "Client's Last Name",
"description": "Client's Last Name"
}
],
"classifiers": [
{
"name": "Default Classifier",
"labels": ["Appointment Booking", "General Information", "..."],
"description": "Prompt: You are an expert in classifying phone calls from call transcriptions.\n\nHere are the rules to follow to assign a label to each call:\n\n- \"Appointment Booking\": ..."
},
{
"name": "Processing",
"labels": ["Transfer Failed", "Call Forwarded", "..."],
"description": "Prompt: You are an expert in classifying phone calls from call transcriptions.\n\nHere are the rules to follow to assign a label to each call:\n\n- \"Transfer Failed\": ..."
}
],
"actions": [
{
"name": "Support transfer",
"type": "TRANSFER_CALL",
"description": "Prompt: Allows you to transfer the call to another number. Confirm once more with the interlocutor that they agree to be transferred before proceeding with the transfer.",
"headers": {
"Volubile-Cli": "12345"
},
"ringTimeout": 30,
"sipOutboundConnectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"availability": null,
"allowedToPhones": [
{
"phone": "sip-cli",
"description": "Prompt to trigger transfer to a sip trunk",
"availability": null
},
{
"phone": "+33612345678",
"description": "Prompt to trigger transfer to a specific number, customer service, etc.",
"availability":
{
"MONDAY": [
{
"startTime": "07:30",
"endTime": "12:30"
},
{
"startTime": "13:15",
"endTime": "18:00"
}
],
"TUESDAY": [],
"WEDNESDAY": [],
"THURSDAY": [
{
"startTime": "07:30",
"endTime": "12:30"
},
{
"startTime": "13:15",
"endTime": "18:00"
}
],
"FRIDAY": [],
"SATURDAY": [],
"SUNDAY": []
}
}
]
}
],
"recordAudio": true
}