Collecte d'informations et Transmettre un résumé — prendre et envoyer des messages
Choisir les informations que l'agent recueille, puis les destinations qui reçoivent le message : e-mail, Slack ou webhook.
Dernière mise à jour :
À quoi ça sert
Deux compétences travaillent ensemble :
- Collecte d’informations : l’agent recueille, au fil de la conversation, les informations que vous avez choisies (nom, téléphone, motif…) ;
- Transmettre un résumé : le message ainsi pris est envoyé aux destinations que vous avez choisies.
Elles équipent l’agent Boîte vocale intelligente, et peuvent s’ajouter à un autre agent : un agent d’accueil qui répond aux questions continue alors de répondre, et prend aussi les messages. Attention : une fois la Collecte active, chaque conversation où la personne a écrit ou parlé est transmise à l’équipe, même sans demande de sa part, marquée « Informations incomplètes » s’il manque des informations.
Les pages se trouvent dans votre agent → Compétences → Collecte d’informations et Transmettre un résumé. Elles sont réservées au propriétaire du compte.
Collecte d’informations
Ajoutez jusqu’à 10 informations. Pour chacune :
- Libellé : ce que l’agent demande (60 caractères au plus) ;
- Type : texte, nom, téléphone, e-mail ou choix (de 2 à 6 réponses possibles) ;
- Obligatoire : l’agent la demande avant de transmettre, sauf si la personne veut arrêter là ;
- Consigne (facultative) : une précision pour l’agent, par exemple « demander le numéro de dossier s’il en a un » (200 caractères au plus).
Pendant la conversation, l’agent pose une question à la fois et relit le numéro de téléphone et l’adresse e-mail pour les faire confirmer. Ce que la personne n’a pas donné est signalé « non fourni » dans le message.
Transmettre un résumé
Ajouter une destination
Ajoutez jusqu’à 5 destinations :
- E-mail : à choisir parmi les membres de votre organisation dont l’adresse est vérifiée. Un membre retiré de l’organisation ne reçoit plus les messages. L’e-mail part de
[email protected], avec l’objet « Nouveau message — {nom de l’agent} » (dans la langue de l’agent). Y répondre vous écrit à vous, le propriétaire du compte : jamais à la personne qui a laissé le message. - Slack : un canal Slack, via un connecteur Slack. Voir Slack : envoyer une notification.
- Webhook : votre CRM, Zapier, Make ou votre propre serveur, via un connecteur webhook (voir Webhook générique). Le connecteur s’utilise comme pour les actions : avec le type
bearer, saisissez le jeton seul (Sens Ai ajouteBearerlui-même) ; avec le typeheader, le nom d’en-tête choisi est bien utilisé, sauf un nom réservé ou commençant parX-SensAI-. L’adresse doit être enhttps://, avec un nom de domaine public (pas d’adresse IP) ; la valeur d’authentification ne doit contenir que des caractères simples (sans accent). Sinon l’envoi est refusé : vérifiez avec Tester l’envoi. La signature est expliquée plus bas.
Le bouton Tester l’envoi envoie tout de suite un message d’exemple, marqué « TEST », à la destination choisie (5 essais par heure au plus).
Quand le message part
| Canal | Envoi |
|---|---|
| Téléphone et voix sur votre site | environ une minute après la fin de l’appel (jusqu’à 15 minutes si la fin de l’appel n’a pas pu être enregistrée) |
| Chat du site, Telegram, e-mail | dans la minute qui suit l’annonce de l’agent (« je transmets votre message à l’équipe ») |
| Chat du site, si la conversation s’arrête avant | après 15 minutes sans nouveau message |
| Telegram, si la conversation s’arrête avant | après 2 heures sans nouveau message |
| E-mail, si la conversation s’arrête avant | après 24 heures sans nouveau message |
Un message incomplet part quand même : les informations manquantes y sont signalées. Une fois le message envoyé, si la personne revient, l’agent prend un nouveau message.
Ce que contient le message
- un résumé de l’échange et des textes fixes (« Résumé », « non fourni »…) dans la langue principale de l’agent : français, anglais, espagnol ou allemand, le français sinon. Les libellés restent ceux que vous avez saisis, et les réponses libres sont résumées dans la langue de la conversation ;
- les informations recueillies, chacune avec son origine : « numéro de l’appel », « saisi », « entendu — orthographe à vérifier » (un nom, un numéro ou une adresse e-mail dictés à la voix), « adresse déclarée par l’expéditeur » (un e-mail reçu), ou « note de l’assistant (non vérifiée) » pour les réponses libres et les choix, que l’agent résume sans nom, numéro, e-mail ni lien ;
- les informations manquantes. « non fourni » peut aussi vouloir dire « non confirmé » : un nom, un numéro ou une adresse e-mail n’est repris que si la personne l’a bien donné elle-même. En cas de doute, ouvrez la conversation ;
- un lien Voir la conversation, qui ouvre l’échange dans votre boîte de réception (connexion requise).
Sur Slack, le message est limité à environ 2 900 caractères : au-delà, la fin (dernières informations, résumé) est coupée sans avertissement. Ouvrez Voir la conversation pour l’échange complet.
Dans l’e-mail et sur Slack, les liens présents dans les réponses de la personne sont désactivés (hxxp, [.]) : ne les ouvrez pas sans vérifier leur origine.
Limites
Pour éviter les abus : 200 messages par jour et par agent, et 10 messages par heure depuis une même origine (la même connexion internet sur le chat du site, le même appel en voix sur le site, le même numéro au téléphone, le même expéditeur sur Telegram et par e-mail). Au-delà, la conversation reste dans votre boîte de réception, mais aucun message n’est envoyé, et rien n’apparaît dans le Journal.
L’onglet Journal
L’onglet Journal liste les messages envoyés, destination par destination, avec leur état. Il n’affiche jamais le contenu des messages ni les adresses.
Recevoir les messages par webhook
Chaque message est envoyé en POST, au format JSON ("schema": "sensai.message.v1"), avec deux en-têtes :
X-SensAI-Timestamp: l’heure d’envoi, en secondes (horodatage Unix) ;X-SensAI-Signature:v1=suivi du HMAC-SHA256, en hexadécimal, de{horodatage}.{corps brut}, calculé avec le secret de la destination.
Le secret s’affiche une seule fois, à l’ajout de la destination : conservez-le. Il sert de clé tel quel, comme texte. Perdu ou compromis : supprimez la destination et recréez-la, un nouveau secret est alors créé.
Côté serveur :
- recalculez la signature sur le corps brut, avant tout décodage, et comparez-la en temps constant. Refusez toute requête dont la signature est absente, mal formée ou différente, avant tout autre traitement ;
- refusez un horodatage qui n’est pas un nombre entier, ou qui est éloigné de plus de 5 minutes de l’heure actuelle (chaque nouvelle tentative est signée à nouveau, avec un horodatage frais) ;
- un même message peut arriver plusieurs fois (nouvelles tentatives après 1, 5 et 30 minutes) : dédoublonnez sur le champ
deliveryIddu corps, gardez les identifiants traités au moins 2 heures, et ne marquez un message « traité » qu’une fois son traitement réussi ; - un message dont le corps porte
"test": truevient du bouton Tester l’envoi : répondez2xxsans le traiter (un autre code s’afficherait comme un échec du test) ; - répondez par un code
2xxen moins de 8 secondes : une absence de réponse, un code429ou5xxdéclenche une nouvelle tentative ; une redirection ou un autre code4xxest un refus définitif.
Les valeurs arrivent brutes, telles que vos correspondants les ont données : traitez-les comme non fiables. Dans un tableur, par exemple, une valeur qui commence par = peut être interprétée comme une formule.