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
string
Greeting message that the agent will use to start the conversation with the caller.
string
required
Main instructions defining the behavior, personality, and guidelines the agent should follow during the call.
object
required
Configuration for the agent’s voice synthesis engine.
Show child attributes
Show child attributes
object
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"
}
}
object
required
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
array
required
List of languages supported by the agent (
ISO 639-1 codes).string
required
Unique identifier of the selected voice in the Volubile catalog.
string
Identifier of the voice synthesis model to use for this voice.Allowed values:
eleven_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.
number
default:"1800"
Maximum allowed duration for the call before hanging up, expressed in seconds.
object
Configuration of the RAG (Retrieval-Augmented Generation) database.
Show child attributes
Show child attributes
array
required
List of unique identifiers of the RAG databases to be used to enrich the agent’s responses.
array
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"
}
]
array
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..."
}
]
array
List of actions the agent can perform during the call.
Show child attributes
Show child attributes
string
required
Name of the action.
string
required
Type of action. Possible values:
TRANSFER_CALL.string
required
Detailed instructions for using the action form as a prompt.
object
Custom HTTP headers to be transmitted during the execution of the action.
Available only in SIP transfer
number
default:"20"
Maximum wait time during a call transfer, expressed in seconds.
string
Identifier for the outgoing SIP connection used for transfers.
object
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
array
array
Time slots available on Tuesday.
array
Time slots available on Wednesday.
array
Time slots available on Thursday.
array
Time slots available on Friday.
array
Time slots available on Saturday.
array
Time slots available on Sunday.
array
List of authorized phone numbers or SIP identifiers for transfers.
Show child attributes
Show child attributes
string
required
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.string
required
Description of the destination and instructions to trigger the transfer.
object
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"
}
]
string
Start time of availability in HH:MM format.
string
End time of availability in HH:MM format.
boolean
Enables (true) or disables (false) audio call recording.
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
}