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:Copy
Ask AI
{
"initialMessage": "Initial message",
"prompt": "System prompt",
"synthesizer": {...},
"callDurationLimit": "600",
"rag": {...},
"extractors": [...],
"classifiers": [...],
"actions": [...],
"recordAudio": false
}
Configuration Detail
Greeting message that the agent will use to start the conversation with the caller.
Main instructions defining the behavior, personality, and guidelines the agent should follow during the call.
Configuration for the agent’s voice synthesis engine.
Hide child attributes
Hide 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
Copy
Ask AI
{
"kg": "kilogram",
"cm": {
"fr-FR": "centimeter",
"en-US": "centimeter"
}
}
Parameters for the synthesized voice.
Example
Copy
Ask AI
{
"locales": ["fr-FR", "en-US"],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
Maximum allowed duration for the call before hanging up, expressed in seconds.
Configuration of the RAG (Retrieval-Augmented Generation) database.
Hide child attributes
Hide child attributes
List of unique identifiers of the RAG databases to be used to enrich the agent’s responses.
List of extractors of information that the agent should use during the call.
Example
Copy
Ask AI
[
{
"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
Copy
Ask AI
[
{
"name": "Default Classifier",
"type": "PRIMARY",
"labels": ["Appointment Booking", "General Information", "..."],
"description": "Detailed classification prompt..."
},
{
"name": "Processing",
"type": "SECONDARY",
"labels": ["Transfer Failed", "Call Forwarded", "..."],
"description": "Detailed classification prompt..."
}
]
Hide child attributes
Hide child attributes
Name of the classifier.
Type of classifier. Possible values:
PRIMARY, SECONDARY.- A
PRIMARYclassifier is mandatory - Only one
PRIMARYclassifier is accepted
List of available classification labels.
Detailed instructions in the form of a prompt defining the classification rules for each label.
List of actions the agent can perform during the call.
Hide child attributes
Hide child attributes
Type of action. Possible values:
TRANSFER_CALL.Detailed instructions for using the action form as a prompt.
Custom HTTP headers to be transmitted during the execution of the action.
Available only in SIP transfer
Maximum wait time during a call transfer, expressed in seconds.
Identifier for the outgoing SIP connection used for transfers.
Global availability of the action by day of the week. Can be
null if no restriction.Example
Copy
Ask AI
{
"MONDAY": [
{
"startTime": "07:30",
"endTime": "12:30"
},
{
"startTime": "13:15",
"endTime": "18:00"
}
]
}
Hide child attributes
Hide child attributes
Time slots available on Tuesday.
Time slots available on Wednesday.
Time slots available on Thursday.
Time slots available on Friday.
Time slots available on Saturday.
Time slots available on Sunday.
List of authorized phone numbers or SIP identifiers for transfers.
Hide child attributes
Hide 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.Description of the destination and instructions to trigger the transfer.
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
Copy
Ask AI
[
{
"startTime": "07:30",
"endTime": "12:30"
},
{
"startTime": "13:15",
"endTime": "18:00"
}
]
Start time of availability in HH:MM format.
End time of availability in HH:MM format.
Enables (true) or disables (false) audio call recording.
Concise Example: Changing Voice and Language
Copy
Ask AI
{
"initialMessage": "Hello! I'm your virtual assistant. How can I help you today?",
"synthesizer": {
"voice": {
"locales": ["en-US"],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
}
Copy
Ask AI
{
"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
Copy
Ask AI
{
"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",
"type": "PRIMARY",
"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",
"type": "SECONDARY",
"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": [
{
"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
}