État
Introduction
Les agents vocaux sont souvent utilisés pour collecter diverses données auprès des clients, patients, etc. Par exemple, on demande aux clients leur nom, leur date de naissance et le produit qu’ils souhaitent réserver ou annuler, ainsi que leur créneau préféré. Les patients, de leur côté, peuvent demander des ordonnances.
Ces données sont généralement collectées via les actions/outils définis, où les paramètres ou variables contiennent les informations extraites par le LLM à partir des réponses du client.
Pour stocker ces données entre les appels de fonctions et les stages et les transmettre à des systèmes backend (par ex. CRM, ticketing ou systèmes PVS) via un webhook, il existe un objet d’état qui est actif pendant toute la session d’appel et peut être utilisé pour stocker et récupérer ces informations.
L’objet d’état
L’objet d’état est un simple objet JavaScript qui peut stocker des informations à plat ou imbriquées.
Au début d’un appel, l’objet contient déjà des informations standard telles que le numéro de téléphone de l’appelant, à condition qu’il ne l’ait pas masqué.
{
"call": {
"from": "+49-351-1234567",
"to": "+49-351-7654321"
}
}Approche no‑code
La collecte de données se fait pendant une action, c’est‑à‑dire un appel de fonction.
Vous pouvez donc définir où les informations collectées doivent être stockées dans l’objet d’état directement dans la section actions/outils d’une définition/configuration de fonction :

La clé/chemin définit l’emplacement où les données collectées/extraites sont stockées dans l’objet d’état. La notation par points permet de stocker des données dans une structure imbriquée.
Approche low‑code
Activer l’état
Pour accéder à l’objet d’état dans un prompt dynamique ou dans un appel de fonction d’un action/outil, l’état doit être explicitement activé :
Activer pour une fonction de prompt

Activer pour une fonction d’action/outil

Utiliser/modifier l’état
Exemple
Supposons que la fonction collectName capture le nom d’un appelant et le fournit sous forme de champ name dans l’objet params. Vous pouvez ensuite stocker ce nom dans l’état comme suit :
function collectName(params) {
if (!params["state"]["user"]) params["state"]["user"] = {};
params["state"]["user"]["name"] = params["name"];
return { state: params["state"] };
}Après l’exécution de la fonction, l’objet d’état contient les informations suivantes :
{
"call": {
"from": "+49-351-1234567",
"to": "+49-351-7654321"
},
"user": {
"name": "Max"
}
}Important : après toute modification, l’objet d’état modifié doit être renvoyé — de manière similaire à la stack — sinon les changements ne seront pas visibles dans les appels de fonctions et stages suivants.