Capítulos14 · Les actions au démarrage

Este capítulo aún no está traducido, así que lo está leyendo en francés.

Módulo 3 · Las variables

Capítulo 4 de 4 en esta parte

Les actions au démarrage

ObjetivoVous remplissez des variables avant que l'agent ne parle, par exemple à partir du numéro de l'appelant.

Un client qui rappelle son garage n’aime pas redonner son nom à chaque fois. Si son numéro est connu, l’agent peut le retrouver avant même de décrocher la parole. C’est le rôle des actions au démarrage : au tout début de l’appel, elles interrogent un logiciel et rangent la réponse dans des variables.

Ce qu’est une action au démarrage

  • Elle se règle dans l’onglet « Initialisation », section « Actions au démarrage ». Elle vaut pour tout l’agent.
  • Elle s’exécute avant le message d’accueil, à chaque appel. L’appelant attend qu’elle ait répondu : une action lente, c’est un silence au décroché.
  • Elle a accès aux variables système, donc à {{from_number}}.
  • Sa réponse passe par un « Mapping de réponse », qui choisit les champs à garder et les range dans des variables.

Les types proposés : « Requête HTTP » (une adresse web, celle que nous utilisons ici), « Action connecteur » (une application connectée au compte), « En-tête SIP » (des informations ajoutées par l’opérateur téléphonique). « Entrée webhook » et « Entrée CSV » sont annoncés « Bientôt disponible ».

Préparez vos données d’entraînement

Pour vous entraîner, vous avez besoin d’un petit fichier clients consultable en ligne. Nous utilisons Baserow, une base de données en ligne avec une offre gratuite, hébergée en Europe. Vous n’y mettez que les données fictives de la formation.

  1. Sur baserow.io, créez un compte gratuit avec votre adresse e-mail professionnelle.
  2. Un espace de travail est créé avec votre compte. Ajoutez-y une base de données vide, nommée comme votre agent de formation.
  3. Téléchargez le fichier de votre scénario, ci-dessous.
  4. Dans la base, créez une table par import de fichier CSV (dans l’interface anglaise : « + New table », puis « Import CSV file »). Nommez-la comme indiqué, choisissez le fichier, gardez la virgule comme séparateur et l’encodage UTF-8, cochez l’option qui indique que la première ligne contient les en-têtes, puis validez.
  5. Vérifiez la table : deux colonnes, telephone et nom, trois lignes. Laissez les deux colonnes en texte : c’est le type que Baserow donne à l’import.

Fichier : clients.csv. Nom de la table : clients.

Fichier : patients.csv. Nom de la table : patients.

Fichier : contacts.csv. Nom de la table : contacts.

Les leçons 15 à 17 ajouteront les autres fichiers de votre scénario à la même base.

Deux informations à noter

L’identifiant de la table. Ouvrez la table : l’adresse dans votre navigateur ressemble à …/database/123/table/456/789. Le nombre qui suit table/ est l’identifiant de la table (ici 456). Vous le trouvez aussi dans la documentation d’API que Baserow génère pour votre base : menu ⋮ à côté du nom de la base, « View API Docs ».

Un jeton d’accès. C’est le mot de passe que votre agent utilisera pour lire la table.

  1. Ouvrez le menu de l’espace de travail, en haut à gauche, puis ses paramètres (« Settings »).
  2. Onglet des jetons de base de données (« Database tokens »), puis créez un jeton (« Create token »).
  3. Nom : Formation Manivox. Espace de travail : le vôtre. Gardez les droits proposés : les leçons 15 et 16 écriront aussi dans la base.
  4. Copiez le jeton et gardez-le à portée de main.

Créez l’action

Animation : une action au démarrage qui cherche le client et remplit nom_client

Nom de l’action : Chercher le client. Variable remplie : nom_client.

Nom de l’action : Chercher le patient. Variable remplie : nom_patient.

Nom de l’action : Chercher le contact. Variable remplie : nom_appelant.

  1. Onglet « Initialisation », section « Actions au démarrage » : « Ajouter un initialiseur ». Une entrée « #1 » apparaît.
  2. Cliquez sur le cadenas à côté du nom, tapez le nom de votre action, puis appuyez sur Entrée.
  3. « Type » : « Requête HTTP ».
  4. « Méthode » : GET.
  5. « URL » : l’adresse ci-dessous, en remplaçant VOTRE_ID_DE_TABLE par l’identifiant noté plus haut.
  6. « En-têtes » : « + Ajouter un en-tête ». « Clé » : Authorization. « Valeur » : Token VOTRE_JETON, avec votre jeton. Le mot est bien Token, pas Bearer.
  7. « Mapping de réponse » : « + Ajouter un mapping ». À gauche, le « Nom de variable » de votre scénario ; à droite, le chemin $.results[0].nom. Laissez « Aucune transformation ».
  8. « En cas d’erreur » : « Continuer (ignorer cet appel) ».
  9. « Enregistrer » : v14 – action au démarrage.
https://api.baserow.io/api/database/rows/table/VOTRE_ID_DE_TABLE/?user_field_names=true&filter__telephone__equal={{from_number}}

Ce que dit cette adresse : « dans cette table, donne-moi les lignes dont la colonne telephone est égale au numéro de l’appelant ». user_field_names=true demande à Baserow d’utiliser les noms de colonnes (telephone, nom) au lieu de numéros internes.

Lire la réponse

Pour un numéro connu, Baserow répond ceci :

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    { "id": 1, "order": "1.00000000000000000000", "telephone": "33199000101", "nom": "Claire Dubois" }
  ]
}

$.results[0].nom se lit « dans results, la première ligne ([0]), la colonne nom ». La variable reçoit Claire Dubois.

Pour un numéro inconnu, results est vide : la variable reste vide, et ce n’est pas une erreur. Une erreur, c’est une requête qui échoue : jeton faux, mauvais identifiant de table, service qui ne répond pas. Avec « Continuer (ignorer cet appel) », l’appel se déroule alors normalement, sans le nom. Avec « Arrêter l’appel », l’appelant entend le « Message d’erreur » et la ligne est coupée : réservez ce choix aux agents qui ne peuvent vraiment rien faire sans cette information.

Vérifiez le mapping dans l’onglet « Variables », section « Variables d’initialisation » : votre variable y figure, avec le nom de l’action et le chemin.

Servez-vous du nom

La variable est remplie avant l’accueil, mais ne sert à rien tant qu’aucun texte ne l’utilise. Laissez le « Message d’accueil » tel quel : il est dit mot pour mot, y compris quand l’appelant est inconnu et que la variable est vide. C’est le prompt qui s’en sert, car l’IA sait faire la différence.

En tête du prompt de « Rendez-vous », ajoutez :

Nom du client, s'il est déjà connu (vide sinon) : {{nom_client}}.
S'il est connu, ne le redemande pas : appelle le client par son nom et passe directement à la plaque.

La variable nom_client reste cochée dans « Collecter » : si l’appelant donne un autre nom, c’est le sien qui compte.

En tête des prompts de « Rendez-vous » et de « Modifier », ajoutez :

Nom du patient, s'il est déjà connu (vide sinon) : {{nom_patient}}.
S'il est connu, ne le redemande pas : appelle le patient par son nom et passe à la question suivante.

La variable nom_patient reste cochée dans « Collecter » : si l’appelant donne un autre nom, c’est le sien qui compte.

En tête du prompt de « Prise de message », ajoutez :

Nom de l'appelant, s'il est déjà connu (vide sinon) : {{nom_appelant}}.
S'il est connu, ne le redemande pas : appelle la personne par son nom et passe au numéro de rappel.

La variable nom_appelant reste cochée dans « Collecter » : si l’appelant donne un autre nom, c’est le sien qui compte.

Essayez

Le nom trouvé au démarrage n’apparaît pas dans le compteur « … variables » de la fenêtre de test, qui ne montre que les valeurs écrites pendant l’appel. La preuve, c’est ce que dit l’agent.

Vérifiez

Point d’étape

L’agent cherche l’appelant par son numéro avant l’accueil. L’action au démarrage n’est pas un nœud : elle n’apparaît pas sur le canevas, seulement dans l’Initialisation. Cliquez sur l’Accueil pour la retrouver dans le schéma.