Vue d’ensemble
La configuration dynamique permet de personnaliser le comportement de votre agent vocal pendant la sonnerie d’un appel. Cette fonctionnalité offre une flexibilité complète pour adapter l’agent aux spécificités de chaque interaction.Cette configuration est destinée à être utilisée pendant les workflows pré-appel.
Structure de la configuration
La configuration s’articule autour d’un objet JSON structuré permettant de définir l’ensemble des paramètres opérationnels de l’agent :{
"initialMessage": "Message initial",
"prompt": "Prompt système",
"synthesizer": {...},
"callDurationLimit": "600",
"rag": {...},
"extractors": [...],
"classifiers": [...],
"actions": [...],
"recordAudio": false
}
Détail de la configuration
Instructions principales définissant le comportement, la personnalité et les directives que l’agent doit suivre pendant l’appel.
Configuration du moteur de synthèse vocale de l’agent.
Afficher child attributes
Afficher child attributes
Règles de substitutions vocales du texte avant synthèse vocale pour améliorer la prononciation.Les clés représentent les termes à normaliser. Les valeurs peuvent être :
- Une chaîne de caractères pour un remplacement simple
- Un objet avec des traductions spécifiques par locale
Exemple
{
"kg": "kilogramme",
"cm": {
"fr-FR": "centimètre",
"en-US": "centimeter"
}
}
Paramètres de la voix synthétisée.
Exemple
{
"locales": ["fr-FR", "en-US"],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"model": "eleven_multilingual_v2"
}
Afficher child attributes
Afficher child attributes
Identifiant du modèle de synthèse vocale à utiliser pour cette voix.Valeurs autorisées :
eleven_v4_turboeleven_v3_conversationaleleven_v3eleven_multilingual_v2eleven_flash_v2_5
Ce paramètre n’est pris en compte que pour les voix dont le fournisseur supporte les modèles. En pratique, l’override est appliqué pour les voix ElevenLabs et ignoré pour les autres fournisseurs.
Liste des extracteurs d’informations que l’agent doit utiliser pendant l’appel.
Exemple
[
{
"name": "Prénom du client",
"description": "Prénom du client"
},
{
"name": "Nom de famille du client",
"description": "Nom de famille du client"
}
]
Liste des catégories d’appels pour catégoriser automatiquement les appels.
Exemple
[
{
"name": "Classifieur par défaut",
"labels": ["Prise de RDV", "Informations pratiques", "..."],
"description": "Prompt de classification détaillé..."
},
{
"name": "Traitement",
"labels": ["Echec transfert", "Appel transféré", "..."],
"description": "Prompt de classification détaillé..."
}
]
Liste des actions que l’agent peut exécuter pendant l’appel.
Afficher child attributes
Afficher child attributes
En-têtes HTTP personnalisés à transmettre lors de l’exécution de l’action.
Uniquement disponible en transfert SIP
Disponibilité globale de l’action par jour de la semaine. Peut être
null si aucune restriction.Exemple
{
"MONDAY": [
{
"startTime": "07:30",
"endTime": "12:30"
},
{
"startTime": "13:15",
"endTime": "18:00"
}
]
}
Afficher child attributes
Afficher child attributes
Liste des numéros de téléphone ou identifiants SIP autorisés pour les transferts.
Afficher child attributes
Afficher child attributes
Numéro de téléphone ou identifiant SIP de destination pour le transfert.
Un identifiant SIP ne peut être utilisé que si une connexion SIP (matérialisée par la référence renseignée dans
actions[].sipOutboundConnectionId) a été préalablement créée.Disponibilité spécifique de cette destination par jour de la semaine. Peut être
null si aucune restriction.Structure identique à actions[].availability avec les mêmes jours de la semaine.Exemple
[
{
"startTime": "07:30",
"endTime": "12:30"
},
{
"startTime": "13:15",
"endTime": "18:00"
}
]
Exemple concis : changer la voix et la langue
{
"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"
}
}
}
Exemple complet
{
"initialMessage": "Message initial",
"prompt": "Prompt",
"synthesizer": {
"voice": {
"locales": ["fr-FR", "en-US"],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"textNormalizationPatterns": {
"kg": "kilogramme",
"cm": {
"fr-FR": "centimètre",
"en-US": "centimeter"
}
}
},
"callDurationLimit": "600",
"rag": {
"datasourceIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a", "4c90c3cc-0d44-4b50-8888-8dd25736052a"]
},
"extractors": [
{
"name": "Prénom du client",
"description": "Prénom du client"
},
{
"name": "Nom du client",
"description": "Nom du client"
}
],
"classifiers": [
{
"name": "Classifieur par défaut",
"labels": ["Prise de RDV", "Informations pratiques", "..."],
"description": "Prompt : Tu es un expert en classification d'appels téléphoniques à partir de transcriptions d’appel.\n\nVoici les règles à suivre pour attribuer un label à chaque appel :\n\n- \"Prise de RDV\" : ..."
},
{
"name": "Traitement",
"labels": ["Echec transfert", "Appel transféré", "..."],
"description": "Prompt : Tu es un expert en classification d'appels téléphoniques à partir de transcriptions d’appel.\n\nVoici les règles à suivre pour attribuer un label à chaque appel :\n\n- \"Echec transfert\" : ..."
}
],
"actions": [
{
"name": "Transfert vers le support",
"type": "TRANSFER_CALL",
"description": "Prompt : Permet de transférer l'appel vers un autre numéro. Confirme bien avec l'interlocuteur une ultime fois qu'il est d'accord pour être transféré avant d'effectuer le transfert pour de bon.",
"headers": {
"Volubile-Cli": "12345"
},
"ringTimeout": 30,
"sipOutboundConnectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"availability": null,
"allowedToPhones": [
{
"phone": "sip-cli",
"description": "Prompt permettant de déclencher le transfert vers un trunk sip",
"availability": null
},
{
"phone": "+33612345678",
"description": "Prompt permettant de déclencher le transfert vers un numéro spécifique, service client, 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
}