Collecter des informations

Faire recueillir une information par l'IA pendant la conversation, la ranger, l'enregistrer dans une base et la retrouver après l'appel.

Un numéro de contrat, le motif d'un appel, une note de satisfaction : ces informations sont dites par l'appelant au fil de la conversation. Pour qu'elles servent, il faut que l'IA les recueille sous une forme précise, que le flow les garde, puis qu'elles arrivent quelque part : une base de données, la fin de session, votre CRM.

Cette page suit le trajet d'une information, de la bouche de l'appelant jusqu'à vos systèmes. La syntaxe des variables ({{…}}, valeurs de repli, chemins) est décrite dans Variables et données dynamiques.

Le trajet d'une information

ÉtapeMécanismeCe qu'il fait
RecueillirArguments d'une fonctionL'IA remplit les paramètres de l'outil qu'elle appelle, par exemple numero_contrat.
GarderÉcritures d'étatLa fonction range l'argument ou le retour de l'outil dans une variable du flow, par exemple parameters.numero_contrat.
EnregistrerBloc Datastore ou outil généré depuis une baseLa valeur est écrite dans une de vos bases de données.
TransmettreParamètres de fin du bloc RaccrocherLa valeur est attachée à la session, à la fin de la conversation.
EnvoyerWebhook de fin de sessionLe transcript complet de la session part vers votre serveur.

Vous n'avez pas besoin de toutes les étapes à chaque fois : une note de satisfaction peut aller directement dans les paramètres de fin, une adresse de livraison directement dans une base.

Faire recueillir une information par l'IA

L'IA recueille une information quand elle appelle une fonction qui en a besoin. Les informations attendues sont les paramètres de l'outil que la fonction appelle : c'est en les décrivant bien que vous obtenez des valeurs exploitables.

Préparer l'outil

Créez l'outil qui reçoit l'information, avec un paramètre par information attendue :

  • pour enregistrer dans une base, générez l'outil Ajouter depuis la page Datastores : il a un paramètre par champ de la base (voir Datastores) ;
  • pour envoyer à votre application, créez un outil HTTP / API dans Paramètres > Tools et décrivez chaque paramètre (voir Outils).

Décrivez chaque paramètre avec son format : « Numéro de contrat à 8 chiffres, ex. 12345678 ».

Ajouter la fonction au bloc

  1. Dans un bloc Agent LLM (ou le Déclencheur), cliquez sur + Fonction.
  2. Dans le champ du nom, choisissez l'identifiant de l'outil parmi les suggestions.
  3. Rédigez Quand l'appeler ? : « Appelle cette fonction quand le client a donné son numéro de contrat et le motif de son appel. »

Ranger les valeurs

  1. Cliquez sur détail (ou N params) sous la fonction.
  2. Dans Écritures d'état (après exécution), cliquez sur Écriture.
  3. Choisissez l'opération, saisissez le chemin (il commence toujours par parameters.) et la valeur.

Exemple : set parameters.numero_contrat ← args.numero_contrat.

Une fonction et ses écritures d'état dans le panneau de configuration

Note

La section Arguments (fournis par le LLM) du détail affiche les arguments que le flow déclare pour la fonction, en lecture seule. Pour changer les informations demandées, modifiez les paramètres de l'outil, pas le flow.

Les écritures d'état

Les écritures s'appliquent dans l'ordre, après l'exécution de la fonction.

OpérationEffetExemple
setAssigne une valeur à la variable.set parameters.motif ← args.motif
appendAjoute une valeur à une liste.append parameters.produits ← args.produit pour garder chaque produit cité
mergeFusionne un objet dans la variable.merge parameters.client ← result pour compléter une fiche
deleteSupprime la variable.delete parameters.brouillon

La valeur est un texte fixe ou un chemin :

CheminCe qu'il désigne
args.…Un argument fourni par l'IA dans cet appel.
result.…Le retour de l'outil, par exemple result.statut. result seul désigne le retour entier.
state.…Une variable déjà connue du flow.

Une fois rangée, la valeur est disponible dans tous les blocs suivants : dans un prompt ({{state.parameters.numero_contrat}}), dans une condition de Sortie Conditionnelle, dans un champ de bloc qui accepte un chemin (state.parameters.numero_contrat).

Astuce

Une fonction sans écriture d'état n'oublie pas l'information : l'IA la garde dans la conversation. Mais seule une écriture d'état la rend utilisable par les blocs d'action, les conditions et les paramètres de fin.

Enregistrer dans une base de données

Deux façons d'écrire dans une base pendant l'appel :

FaçonQuand l'utiliser
Fonction nommée comme l'outil Ajouter ou Modifier de la baseL'IA décide du moment et fournit elle-même les valeurs des champs.
Bloc Datastore, opération Ajouter ou ModifierL'enregistrement doit avoir lieu à coup sûr à cet endroit du parcours, avec des valeurs déjà rangées dans les variables.

Dans le bloc Datastore, chacun des Champs de l'enregistrement reçoit un texte fixe ou un chemin state.*, par exemple state.parameters.numero_contrat. Voir Référence des blocs.

Attention

Modifier remplace l'enregistrement entier : un champ laissé vide est perdu. Renseignez tous les champs, par exemple à partir du résultat d'une recherche rangé plus tôt dans parameters.client.

Transmettre en fin de conversation

Les Paramètres de fin du bloc Raccrocher attachent des informations à la session au moment où elle se termine. Ils sont enregistrés sur la transcription de la session, et inclus dans son export JSON.

  1. Sélectionnez le bloc Raccrocher.
  2. Sous Paramètres de fin, cliquez sur Paramètre libre (ou sur Paramètre si la liste contient déjà une ligne).
  3. Saisissez la clé, par exemple numero_contrat (lettres, chiffres et _ uniquement).
  4. Basculez la valeur en path et saisissez state.parameters.numero_contrat, ou laissez-la en abc pour une valeur fixe, par exemple issue = resolu.

Une valeur fixée ici n'est jamais écrasée par l'IA. Utilisez des valeurs fixes pour décrire l'issue que représente chaque bloc Raccrocher, et des chemins pour les informations recueillies.

En chat, les paramètres de fin sont reçus avec la fin de session.

Envoyer à vos systèmes

Un webhook de fin de session rattaché à l'agent envoie le transcript complet de chaque session d'appel à votre serveur, dès qu'elle se termine. Votre équipe technique y retrouve les échanges et les appels d'outils, avec leurs arguments. Voir Webhooks.

Pour envoyer une information pendant l'appel plutôt qu'après, appelez un outil HTTP / API depuis une fonction, ou un bloc Outil MCP (voir Outils).

Cas d'un agent sans flow : la sortie structurée

Un agent qui ne suit pas de flow peut répondre directement au format JSON grâce à la capacité Sortie structurée (JSON) : vous décrivez les Propriétés du schéma (nom, type, description, requis) et chaque réponse de l'agent respecte ce schéma. Voir Définir une sortie structurée.

Cette option convient à un agent de traitement, par exemple le template Extraction de données, qui renvoie nom, e-mail, téléphone et sujet à partir d'un texte libre. Elle ne convient pas à un agent qui dialogue avec un client : sa réponse entière devient un objet JSON.

Vérifier ce qui a été collecté

  1. Ouvrez le testeur de l'agent, activez Debug avant le premier message, puis menez la conversation.
  2. Ouvrez la session dans Transcriptions.
  3. Le journal de diagnostic affiche chaque écriture de variable (nom de la fonction, variable, nouvelle valeur) et, en cliquant sur une ligne Entrée dans « Nœud », toutes les variables connues à cet instant.

Un avertissement orange signale une variable utilisée dans un prompt mais absente à l'entrée du bloc : l'écriture d'état attendue n'a pas eu lieu, ou son chemin est mal orthographié.

Exemple : enquête de satisfaction en fin d'appel

Vous voulez une note de 1 à 5, le motif de la note et l'accord du client pour être recontacté.

  1. Dans Datastores, créez la base satisfaction avec les champs note (Entier), motif (Texte) et recontact (Texte, « oui » ou « non »), puis générez son outil Ajouter : ajouter_satisfaction.
  2. Dans le bloc Agent LLM « Enquête », Prompt de tâche : « Demande au client une note de 1 à 5, puis la raison de cette note, puis s'il accepte d'être recontacté. Appelle ensuite ajouter_satisfaction. »
  3. Ajoutez la fonction ajouter_satisfaction, avec les écritures set parameters.note ← args.note et set parameters.recontact ← args.recontact.
  4. Sortie Conditionnelle : branche state.parameters.note ≤ inf. ou égal 2 vers un Agent LLM « Rattrapage » qui s'excuse et propose un rappel ; repli sinon vers le bloc Raccrocher.
  5. Dans le bloc Raccrocher, ajoutez les paramètres de fin note → state.parameters.note et recontact → state.parameters.recontact, en path.

Chaque réponse est enregistrée dans la base satisfaction, consultable et exportable en CSV depuis Datastores, et la note reste attachée à la session.

Bonnes pratiques

  • Un nom de variable par information, stable d'un flow à l'autre (numero_contrat, motif) : vos exports et vos règles côté serveur restent lisibles.
  • Demandez une information à la fois dans le prompt, et faites confirmer les valeurs dictées (numéros, adresses) avant d'appeler la fonction.
  • Décrivez le format dans le paramètre de l'outil, pas seulement dans le prompt : c'est la description que l'IA lit au moment de remplir l'argument.
  • Vérifiez en mode debug que chaque écriture d'état se produit, avant de publier.

Limites

  • Il n'y a pas d'extraction automatique en fin d'appel : une information n'est rangée que si une fonction l'a reçue en argument, ou si un outil l'a renvoyée.
  • Les arguments d'une fonction ne se modifient pas dans l'éditeur de flow : ils viennent de l'outil appelé.
  • Les écritures d'état ne visent que des chemins qui commencent par parameters..

Pour aller plus loin

Sur cette page