Actions & Outils
L'onglet Actions est l'endroit où vous gérez tout ce que votre agent peut faire au-delà de la conversation — les outils que l'agent appelle pendant une conversation en direct, les hooks de pré-récupération qui s'exécutent avant le début de l'appel, et les actions post-appel qui se déclenchent une fois l'appel terminé. Les Variables de récupération (les champs de données que l'agent extrait de chaque conversation) se trouvent dans le même onglet.
Tous les outils, actions et le nouveau hook de pré-récupération sont disponibles sur tous les plans, y compris Free.
Les trois phases
Chaque entrée de l'onglet Actions appartient à l'une des trois phases du cycle de vie. Le menu déroulant Ajouter un outil les regroupe pour qu'il soit clair quand chaque élément se déclenche :
| Phase | Quand | Exemples |
|---|---|---|
| Pré-récupération | Avant que l'agent dise bonjour | Rechercher l'appelant dans votre CRM par téléphone, récupérer la dernière commande, récupérer une salutation personnalisée depuis votre backend |
| Appel en direct | Pendant la conversation, déclenché par l'IA au bon moment | Transférer l'appel à un humain, vérifier les disponibilités du calendrier, transférer à un autre agent, interroger une API externe pour des données |
| Post-appel | Après la fin de l'appel | Envoyer un e-mail de résumé, déclencher une confirmation par SMS, transmettre les données de l'appel à votre CRM |
Le menu déroulant s'ouvre avec Pré-récupération en haut, car toutes les autres phases disposent déjà de nombreuses options — la nouvelle entrée de pré-récupération est celle que vous recherchez le plus probablement.
Pré-récupération
Les hooks de pré-récupération permettent à votre agent de commencer l'appel en sachant déjà qui appelle. Ils s'exécutent en parallèle de la configuration de l'appel et injectent la réponse dans le prompt système de l'agent avant que le tout premier mot ne soit prononcé.
Quand l'utiliser
- Reconnaître un client récurrent par son numéro de téléphone et le saluer par son nom
- Récupérer la commande ouverte, le dernier rendez-vous ou le niveau d'adhésion de l'appelant
- Précharger le contexte métier en fonction de la ligne composée
- Injecter des notes CRM pour que l'agent connaisse l'étape et l'historique du prospect
Comment ça fonctionne
- La plateforme résout le téléphone de l'appelant (depuis SIP pour les appels entrants, depuis la cible d'appel pour les appels sortants).
- Chaque action Pré-récupération active se déclenche en parallèle avec un délai d'expiration strict de 1,5 s par requête et un budget global de 2 s.
- Les réponses réussies sont concaténées dans le prompt système de l'agent sous forme de blocs nommés — l'agent les lit dès son tout premier tour.
- Les échecs sont silencieux — un endpoint lent ou défaillant ne bloque jamais la salutation. L'agent commence simplement à parler sans ce bloc.
Configuration
| Champ | Description |
|---|---|
| Nom | Requis. Étiquette interne et nom du bloc dans le prompt — gardez-le court et descriptif (par ex. crm_lookup, vip_check). |
| URL de l'API | Requis. Endpoint à interroger. Prend en charge les espaces réservés {phone}, {direction}, {agent_id}, {user_id}, {call_id}. |
| Méthode HTTP | GET est la valeur par défaut et la plus adaptée. POST / PUT / PATCH / DELETE fonctionnent aussi. |
| En-têtes | Optionnel. Statiques ou avec modèle (les espaces réservés fonctionnent ici aussi). |
| Paramètres de requête | Optionnel. Pré-rempli avec phone={phone} pour les nouvelles actions de pré-récupération. |
Variables disponibles
Ces jetons sont substitués dans l'URL, les en-têtes et les paramètres de requête/corps au moment de la requête :
| Variable | Source | Exemple de valeur |
|---|---|---|
{phone} | Téléphone de l'appelant (E.164) — pour les appels sortants, le numéro de destination | +431234567890 |
{direction} | inbound ou outbound | inbound |
{agent_id} | Identifiant interne de l'agent | 65f1a2b3c4... |
{user_id} | Identifiant du propriétaire de l'espace de travail | 65e0b1c2d3... |
{call_id} | Identifiant de l'appel (permet à votre backend de corréler ultérieurement les données post-appel) | 65f1f2c4d5... |
Les espaces réservés inconnus sont laissés tels quels — un mauvais modèle ne fait jamais planter un appel.
Ce qui atterrit dans le prompt
Si votre endpoint à https://crm.example.com/lookup?phone={phone} retourne :
{ "name": "Sarah Johnson", "tier": "Gold", "open_orders": 1 }
Le prompt système de l'agent est complété par un bloc encapsulé en XML nommé d'après l'action :
<call_context>
<block name="crm_lookup">
{ "name": "Sarah Johnson", "tier": "Gold", "open_orders": 1 }
</block>
</call_context>
Vous n'avez pas besoin d'expliquer à l'agent comment l'utiliser — le LLM capte le contexte naturellement. Vous pouvez éventuellement mentionner la pré-récupération dans votre prompt système : "If <call_context> contains a customer name, greet them by name."
Contraintes importantes
- Appels téléphoniques uniquement. La pré-récupération ne s'exécute pas pour les appels via widget (web) — il n'y a pas de numéro de téléphone à utiliser dans le modèle.
- Limite de 8 Ko sur le corps de la réponse — tout ce qui dépasse est tronqué avant l'injection. Cette limite protège votre budget de jetons du prompt et borne l'impact d'un endpoint malveillant.
- Aucune évaluation de
condition— la pré-récupération se déclenche toujours lorsqu'elle est active. Il n'y a pas encore de transcription à évaluer.
Utilisez GET avec un endpoint de recherche indexé par téléphone. Gardez les réponses petites et structurées (objet JSON de 3 à 5 champs). L'agent n'a pas besoin de la totalité de votre fiche client — seulement des éléments qui changent la conversation.
Outils d'appel en direct
Ceux-ci s'exécutent pendant la conversation. L'IA décide quand appeler chaque outil en fonction de sa description et du dialogue en cours.
Outils disponibles
| Outil | Objet | Quand l'utiliser |
|---|---|---|
| Transfert d'appel | Transférer vers un opérateur humain | Le client demande une personne, problèmes complexes |
| Google Calendar | Vérifier les disponibilités et prendre des rendez-vous | Le client veut planifier une réunion |
| Outlook Calendar | Idem, via Microsoft Outlook | Le client veut planifier une réunion |
| API Tool RAG | Récupérer des données en direct depuis une API externe | Besoin d'infos en temps réel (commandes, stock, état du compte) |
| Transfert d'agent | Transférer vers un autre agent vocal | L'appelant a besoin d'un autre service ou d'un spécialiste |
| HubSpot CRM | Lire/écrire des contacts et des transactions dans HubSpot | Consigner l'appel dans HubSpot, rechercher un prospect |
| Serveurs MCP | Exposer les outils de n'importe lequel de vos serveurs MCP enregistrés | Vous exploitez un serveur d'outils compatible MCP et voulez que l'agent utilise ses outils en cours de conversation |
Transfert d'appel
Transférez les appels vers un humain lorsque des conditions spécifiques sont remplies.
| Paramètre | Description | Exemple |
|---|---|---|
| Nom | Requis. Nom de la personne ou du service | "Sales Manager" |
| Numéro de transfert | Numéro de téléphone par défaut vers lequel transférer | "+49 123 456 789" |
| Condition de déclenchement | Quand l'agent doit transférer | "Customer asks for manager or issue cannot be resolved" |
| Numéros de routage conditionnel | Correspondance condition-numéro pour le routage | {"billing": "+49 111 222", "technical": "+49 333 444"} |
Comment ça fonctionne :
- Pendant une conversation, l'IA évalue la Condition de déclenchement.
- Si des numéros de routage conditionnel sont définis, la condition correspondante détermine quel numéro appeler.
- Sinon, le Numéro de transfert est utilisé.
- L'agent informe l'appelant du transfert.
- L'appel est transféré — en cas de non-réponse, il revient à l'agent.
Vous pouvez ajouter plusieurs outils de Transfert d'appel pour différents services — un pour « Ventes » et un autre pour « Support technique » avec des conditions et des numéros différents.
Google Calendar
Connectez votre Google Calendar pour que l'agent puisse vérifier les disponibilités et prendre des rendez-vous pendant les appels.
Configuration :
- Allez dans Integration → Calendars et connectez d'abord votre compte Google.
- Ajoutez l'outil Google Calendar dans l'onglet Actions de l'agent.
- Sélectionnez le calendrier à utiliser.
- Configurez vos paramètres de disponibilité.
| Paramètre | Description | Par défaut |
|---|---|---|
| Calendrier | Requis. Quel calendrier utiliser | Votre calendrier principal |
| Fuseau horaire | Fuseau horaire des rendez-vous (format IANA) | Détecté automatiquement |
| Heure de début de travail | Début des heures de travail | 9h00 |
| Heure de fin de travail | Fin des heures de travail | 18h00 |
| Durée du créneau | Longueur du rendez-vous en minutes | 30 |
| Jours travaillés | Jours de la semaine disponibles | Lundi-Vendredi |
| Tampon entre rendez-vous | Battement entre rendez-vous (0-60 min) | 0 |
Durées de créneau prises en charge : 15, 30, 45, 60, 75, 90, 105, 120 minutes.
Configurez précisément vos heures et jours de travail — l'agent ne proposera que des créneaux horaires dans la disponibilité que vous avez configurée.
Outlook Calendar
Connectez votre Outlook Calendar pour la prise de rendez-vous pendant les appels. Fonctionne de la même manière que Google Calendar.
Configuration :
- Allez dans Integration → Calendars et connectez d'abord votre compte Outlook.
- Ajoutez l'outil Outlook Calendar dans l'onglet Actions de l'agent.
- Sélectionnez le calendrier à utiliser.
- Configurez vos paramètres de disponibilité.
Les paramètres sont identiques à Google Calendar (fuseau horaire, heures de travail, durée du créneau, jours travaillés, tampon).
Transfert d'agent
Transférez un appel vers un autre agent vocal de votre compte. Utile lorsque vous avez des agents spécialisés pour différents services.
| Paramètre | Description |
|---|---|
| Agent cible | Requis. Sélectionnez l'agent vers lequel transférer |
| Condition de déclenchement | Quand transférer (par ex. « L'appelant demande le support technique ») |
Exemple : un agent de réception transfère les appelants vers un agent commercial lorsqu'ils posent des questions sur les tarifs, ou vers un agent de support lorsqu'ils ont un problème technique.
HubSpot CRM
Lisez et écrivez dans votre HubSpot CRM pendant l'appel. Permet à l'agent de consigner les interactions, de rechercher un contact par téléphone ou de transmettre des mises à jour de transactions sans avoir à scripter les appels d'API.
Configuration :
- Allez sur la page Integrations et connectez votre compte HubSpot.
- Ajoutez l'outil HubSpot CRM dans l'onglet Actions de l'agent.
- Sélectionnez le pipeline et les propriétés que l'agent est autorisé à manipuler.
Une fois l'outil ajouté, l'IA peut faire correspondre l'appelant à un contact HubSpot par téléphone, récupérer l'étape de la transaction et mettre à jour des champs — le tout depuis la conversation en direct.
Serveurs MCP
Exposez les outils de n'importe quel serveur compatible MCP que vous avez connecté à Hanc.AI. Un agent peut puiser dans plusieurs serveurs MCP ; un serveur MCP peut servir plusieurs agents.
Configuration :
- Connectez votre ou vos serveur(s) MCP une seule fois sous Integration → MCP servers. Consultez la page dédiée MCP Servers pour les étapes d'enregistrement complètes.
- Ajoutez l'entrée MCP servers à l'onglet Actions de cet agent — elle est regroupée sous Appel en direct dans le menu déroulant Ajouter une action.
- Activez celles de vos connexions enregistrées auxquelles cet agent doit avoir accès.
- Ajoutez une courte instruction « quand l'utiliser » pour que l'agent sache quand recourir à ces outils.
L'agent redécouvre l'ensemble d'outils de chaque serveur MCP activé au début de chaque appel, donc les modifications côté serveur apparaissent automatiquement au prochain appel. Les outils sont renommés avec l'étiquette de la connexion en préfixe afin que des outils portant des noms similaires provenant de serveurs différents n'entrent pas en collision.
API Tool RAG
Connectez-vous à des API externes pour récupérer des informations en temps réel pendant les appels — rechercher des commandes, vérifier l'inventaire, valider des comptes ou accéder à toute donnée disponible via API.
| Paramètre | Description | Exemple |
|---|---|---|
| Nom | Requis. Nom de l'outil | "Order Lookup" |
| Description / Quand l'utiliser | Requis. Quand interroger l'API | "Customer asks about order status" |
| URL de l'API | Requis. Endpoint de l'API. Peut inclure des jetons {placeholder} qui seront substitués par des valeurs du schéma des paramètres du corps (voir ci-dessous). | "https://api.yourshop.com/orders/{order_id}" |
| Méthode HTTP | Requis. Méthode HTTP | GET, POST, PUT, DELETE, PATCH |
| Message de chargement | Ce que dit l'agent pendant l'attente | "Let me check that for you..." |
| Délai d'expiration | Temps d'attente maximal (ms) | 5000 (par défaut) |
| En-têtes | En-têtes HTTP statiques envoyés à chaque requête | {"Authorization": "Bearer KEY"} |
| Paramètres de requête | Paramètres de chaîne de requête statiques ajoutés à chaque requête | {"apiVersion": "v2"} |
| Schéma des paramètres du corps | Requis. Schéma JSON décrivant les arguments que l'IA doit extraire de la conversation et transmettre à l'outil. Voir Rédiger le schéma des paramètres du corps. | Objet JSON Schema |
Définissez toujours un Message de chargement — un silence pendant les appels d'API donne à l'appelant l'impression que quelque chose est cassé.
L'ancienne case « Exécuter au début de l'appel » sur API Tool RAG a été remplacée par l'entrée dédiée Pré-récupération. Utilisez la Pré-récupération lorsque vous voulez les données avant le début de la conversation ; utilisez API Tool RAG lorsque l'agent doit décider pendant l'appel s'il faut récupérer les données.
Rédiger le schéma des paramètres du corps
Malgré son nom, le Schéma des paramètres du corps n'est pas un corps de requête brut. C'est un JSON Schema décrivant ce que l'IA doit extraire de la conversation et transmettre à votre outil. Selon la méthode HTTP et le modèle d'URL, ces valeurs atterrissent dans l'URL, la chaîne de requête ou le corps JSON :
| Méthode HTTP | Où vont les valeurs extraites |
|---|---|
L'URL contient {name} | La valeur correspondante est substituée dans l'URL |
GET, DELETE | Les valeurs restantes sont ajoutées à l'URL sous forme ?key=value |
POST, PUT, PATCH | Les valeurs restantes sont envoyées dans le corps JSON |
Structure minimale
{
"type": "object",
"properties": {
"param_name": {
"type": "string",
"description": "What this value is and how the AI should pick it"
}
},
"required": ["param_name"]
}
Le type racine est toujours "object". properties liste chaque argument. required marque ceux que l'IA doit toujours fournir — si le client ne l'a pas encore dit, l'IA le demandera avant d'appeler l'outil.
Référence des champs
| Champ | Objet |
|---|---|
type | Type JSON de la valeur : "string", "number", "integer", "boolean", "array", "object" |
description | Le plus important. Indique à l'IA ce que signifie la valeur, quel format utiliser et quand la fournir. Ajoutez des exemples autant que possible. |
enum | Restreint la valeur à l'une d'une liste fixe. L'IA fera correspondre le langage naturel à l'option la plus proche (par ex. "the blue one" → "blue"). |
minimum, maximum | Bornes numériques. L'IA refusera/bornera les valeurs hors plage. |
default | Valeur utilisée lorsque l'IA ne transmet pas ce champ. Non requis, mais documente la valeur implicite. |
format | Indice de validation, par ex. "email", "date" (YYYY-MM-DD), "uri". |
Exemples
Recherche de produit (mot-clé uniquement) :
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Product search keyword — e.g. \"phone\", \"laptop\", \"Apple\", \"Samsung\""
}
},
"required": ["query"]
}
Utilisé avec l'URL https://dummyjson.com/products/search?q={query}&limit=5 et GET : la valeur query va dans l'espace réservé de l'URL. Rien n'atterrit dans le corps.
Recherche de commande par ID :
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "Order ID the customer is asking about, usually 6 to 10 digits. Ask the customer if not provided."
}
},
"required": ["order_id"]
}
Utilisé avec l'URL https://api.example.com/orders/{order_id} et GET.
Réservation avec plusieurs champs requis :
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "Product ID returned by a previous search_products call."
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "How many items to reserve. Default 1."
},
"delivery_method": {
"type": "string",
"enum": ["pickup", "home_delivery", "locker"],
"description": "How the customer wants to receive the item."
},
"customer_email": {
"type": "string",
"format": "email",
"description": "Customer's email for order confirmation. Ask if not provided."
}
},
"required": ["product_id", "delivery_method", "customer_email"]
}
Utilisé avec POST https://api.example.com/reservations : les quatre valeurs vont dans le corps JSON. L'IA demandera au client les champs required manquants avant d'appeler l'outil.
Outil sans paramètre :
{
"type": "object",
"properties": {}
}
Utilisez ceci lorsque l'endpoint est entièrement statique (par ex. GET /store/hours) et que l'IA n'a rien à transmettre.
Bonnes pratiques pour les agents vocaux
- Gardez le schéma plat. Les objets et tableaux imbriqués fonctionnent, mais l'IA peut déraper au téléphone. Privilégiez 3 à 5 champs de premier niveau au maximum.
- Rédigez toujours une
descriptionpour chaque champ. Incluez des exemples (e.g. "phone", "laptop") — les exemples guident l'IA plus fiablement que des définitions abstraites. - Utilisez
enumchaque fois que vous avez une liste fixe de valeurs. Cela supprime le risque que l'IA invente des valeurs ou envoie"Electronics"au lieu de"electronics". - Marquez un champ
requireduniquement si l'outil ne peut pas fonctionner sans lui. Tout le reste est optionnel, et l'IA le sautera quand le client ne l'a pas mentionné — pas de questions supplémentaires gênantes. - Utilisez des noms en
snake_caseet faites-les correspondre exactement aux jetons{placeholder}de l'URL. - Documentez le comportement pour les valeurs manquantes dans la
description— par ex."Omit if no budget limit","Default 5".
Actions de messagerie en direct
(v2.4) Envoyer un SMS en direct et Envoyer un e-mail en direct permettent à l'agent d'envoyer un texto ou un e-mail en cours d'appel, pendant qu'il parle encore à l'appelant — pas seulement après la fin de l'appel comme leurs équivalents post-appel. Utilisez-les pour envoyer un lien, une confirmation de réservation, un code ou un résumé sur lequel l'appelant peut agir avant de raccrocher.
L'IA déclenche ces actions elle-même, sur le moment, en fonction de la description de l'action et de la conversation — de la même manière qu'elle décide d'appeler n'importe quel autre outil en direct.
| Action | Se déclenche | Envoie à |
|---|---|---|
| Envoyer un SMS en direct | Pendant l'appel | Le numéro de téléphone de l'appelant |
| Envoyer un e-mail en direct | Pendant l'appel | L'e-mail de l'appelant |
Limite d'envoi par appel
Chaque canal est plafonné à 3 envois par canal et par appel. Un agent peut envoyer jusqu'à trois SMS en direct et jusqu'à trois e-mails en direct dans un seul appel ; le quatrième envoi sur un canal est refusé. Cela évite qu'une conversation bavarde ou en boucle ne spamme l'appelant.
Matrice de refus
Un envoi en direct est refusé (et l'agent en connaît la raison, pour pouvoir se rattraper avec élégance) lorsque :
| Condition | Résultat |
|---|---|
| E-mail invalide ou manquant (pour Envoyer un e-mail en direct) | Refusé — l'agent demande à l'appelant de confirmer son e-mail |
| Téléphone invalide ou manquant (pour Envoyer un SMS en direct) | Refusé — l'agent demande à l'appelant de confirmer son numéro |
| Corps de plus de 160 caractères | Refusé — le message est trop long pour être envoyé tel quel |
| Limite du canal atteinte (déjà 3 envois cet appel) | Refusé — plus aucun envoi sur ce canal |
Comme l'agent reçoit en retour la raison du refus, il peut corriger le problème dans la conversation (« Pourriez-vous m'épeler cet e-mail ? ») et réessayer, plutôt que d'échouer silencieusement.
Journalisation dans la timeline CRM
Chaque envoi en direct est consigné dans la timeline CRM du contact, de sorte que le message envoyé par l'agent en cours d'appel apparaît à côté de l'enregistrement de l'appel — vous pouvez voir exactement ce qui a été envoyé, sur quel canal et quand.
Chaînage intelligent formulaire-vers-canal
Lorsqu'un appelant web soumet le formulaire du widget avec seulement certaines coordonnées, l'agent n'utilise que le canal dont il dispose réellement :
- L'appelant soumet uniquement un e-mail → l'agent déclenche Envoyer un e-mail en direct (jamais de SMS).
- L'appelant soumet uniquement un téléphone → l'agent déclenche Envoyer un SMS en direct (jamais d'e-mail).
- L'appelant soumet les deux → l'agent peut utiliser l'un ou l'autre canal selon les besoins de la conversation.
Cela signifie que l'agent n'essaie jamais d'envoyer un texto à un appelant qui n'a donné qu'un e-mail, ni d'envoyer un e-mail à un appelant qui n'a donné qu'un numéro — les données de formulaire disponibles déterminent quelle action en direct est envisageable.
Actions post-appel
Les actions post-appel se déclenchent une fois l'appel terminé et une fois que la chaîne d'analyse a produit le résumé, le sentiment et les variables extraites. Elles consomment les données de l'appel — elles ne parlent pas au client.
Actions disponibles
| Action | Objet |
|---|---|
| Envoyer un e-mail | Envoyer par e-mail un résumé structuré à votre équipe ou à votre client |
| Envoyer un SMS | Confirmation par texto à l'appelant |
| Envoyer un WhatsApp | Message ou modèle WhatsApp (fonctionne à l'intérieur et à l'extérieur de la fenêtre de 24 heures) |
| Appel d'API | Transmettre la totalité des données de l'appel à une API externe (CRM, webhook, votre entrepôt de données) |
Envoyer un e-mail
| Paramètre | Description |
|---|---|
| Nom | Requis. Identifiant de l'action |
| Objet | Requis. Ligne d'objet de l'e-mail |
| Corps du message | Requis. Corps de l'e-mail — peut inclure des variables de récupération |
| Condition de déclenchement | Quand envoyer (vide = toujours) |
| Destinataires | Requis. Adresses e-mail qui reçoivent toujours l'e-mail |
| Destinataires conditionnels | Correspondance condition-destinataire |
Utiliser des variables dans l'e-mail :
New lead from phone call:
Name: {{customer_name}}
Email: {{customer_email}}
Interested in: {{selected_plan}}
Notes: {{call_notes}}
Envoyer un SMS
| Paramètre | Description |
|---|---|
| Nom | Requis. Identifiant de l'action |
| Nom de l'expéditeur | Nom d'expéditeur affiché |
| Message | Requis. Contenu du SMS (peut inclure des variables) |
| Condition de déclenchement | Quand envoyer |
| Destinataires | Requis. Numéros de téléphone qui reçoivent toujours le SMS |
| Destinataires conditionnels | Correspondance condition-numéro |
Envoyer un WhatsApp
La messagerie WhatsApp sur HANC utilise des modèles pré-approuvés provenant d'un compte Twilio Content central — vous ne collez pas un Template SID à la main. L'éditeur d'action affiche un menu déroulant de tous les modèles actuellement actifs et approuvés, et vous en choisissez un. Les espaces réservés à l'intérieur du modèle ({{1}}, {{2}}, …) sont ensuite remplis en ligne à partir des variables d'appel ou du texte statique que vous mappez dans l'éditeur.
| Paramètre | Description |
|---|---|
| Nom | Requis. Identifiant de l'action |
| Condition de déclenchement | Quand envoyer |
| Destinataires | Requis. Numéros de téléphone qui reçoivent toujours le message |
| Destinataires conditionnels | Correspondance condition-numéro |
| Modèle | Requis. Sélecteur déroulant des modèles WhatsApp pré-approuvés synchronisés depuis le compte Twilio Content central. Chaque entrée affiche le nom du modèle, la langue et un aperçu du corps pour que vous sachiez lequel choisir. |
| Variables du modèle | Pour le modèle que vous avez choisi, l'éditeur liste chaque espace réservé ({{1}}, {{2}}, …) et vous permet de le mapper à une variable d'appel (voir ci-dessous) ou à une chaîne statique. |
Variables d'appel disponibles que vous pouvez mapper dans les espaces réservés du modèle :
| Variable | Description |
|---|---|
{{call_from}} | Numéro de téléphone de l'appelant |
{{call_to}} | Numéro qui a été appelé |
{{call_summary}} | Résumé de l'appel généré par l'IA |
{{call_sentiment}} | Sentiment (positif/neutre/négatif) |
{{call_task_achieved}} | Si la tâche de l'appel a été accomplie |
{{call_transcription}} | Transcription complète de l'appel |
WhatsApp exige que chaque message initié par l'entreprise en dehors de la fenêtre de service client de 24 heures utilise un modèle pré-approuvé. HANC synchronise la liste des modèles approuvés depuis le compte Twilio Content partagé, de sorte que le menu déroulant affiche toujours exactement ce qui est éligible à l'envoi en ce moment — vous ne pouvez pas choisir accidentellement un brouillon, un modèle rejeté ou un SID inexistant. Pour ajouter un nouveau modèle, contactez le support ; une fois approuvé par WhatsApp, il apparaît automatiquement dans le menu déroulant.
Appel d'API
L'action d'Appel d'API post-appel est votre webhook générique vers le reste de votre stack. Choisissez la méthode, définissez l'URL et nous enverrons la totalité des données de l'appel — votre endpoint reçoit un objet JSON structuré décrivant ce qui s'est passé.
| Paramètre | Description |
|---|---|
| Nom | Requis. Identifiant de l'action |
| Condition de déclenchement | Quand se déclencher (vide = chaque appel). Évaluée par un LLM par rapport à la transcription. |
| URL de l'API | Requis. URL de l'endpoint de l'API |
| Méthode HTTP | Requis. GET, POST, PUT, DELETE, PATCH |
| En-têtes | En-têtes de requête optionnels |
| Paramètres de requête | Paramètres de chaîne de requête optionnels |
Ce que reçoit votre endpoint
Pour POST / PUT / PATCH, votre endpoint reçoit un objet JSON dans le corps de la requête. Les paramètres de corps que vous avez configurés sont fusionnés avec la totalité des données de l'appel :
{
"call_from": "+431234567890",
"call_to": "+439876543210",
"direction": "inbound",
"call_type": "phone",
"call_status": "ended",
"start_timestamp": 1730000000000,
"end_timestamp": 1730000187000,
"duration": 187000,
"transcription": [
{ "speaker": "agent", "content": "Hello…", "timestamp": 1730000001000 },
{ "speaker": "user", "content": "Hi…", "timestamp": 1730000003000 }
],
"call_summary": "Customer asked about pricing…",
"task_achieved": true,
"sentiment": { "sentiment": "positive", "explanation": "…" },
"custom_analysis_data": {
"name": "John",
"email": "john@example.com"
},
"collected_data": { /* in-call form submissions */ },
"transfer_history": [ /* if any agent transfer happened */ ],
"recording_url": "https://…",
"disconnection_reason": "user_hangup",
"is_anonymous": false,
"is_simulation": false,
"created_at": 1730000000000,
"updated_at": 1730000187000
}
Pour GET / DELETE, les mêmes champs sont aplatis dans la chaîne de requête — mais les valeurs imbriquées comme transcription, sentiment et custom_analysis_data sont abandonnées (les URL ne peuvent pas transporter de données structurées de manière saine). Utilisez POST/PUT/PATCH si vous avez besoin de la transcription.
Chaque requête reçoit également un en-tête X-Correlation-Id pour le traçage, et expire après 30 secondes.
- La Pré-récupération insère
{phone}etc. dans l'URL/les en-têtes/la requête/le corps. Retourne dans le prompt, avant l'appel. - L'Appel d'API post-appel envoie l'intégralité du contenu de l'appel dans le corps ou la requête. Pas de modèle d'URL — votre endpoint reçoit une URL statique + un corps dynamique.
Variables de récupération
Les Variables de récupération sont des champs de données personnalisés que l'IA extrait automatiquement des conversations. Par exemple, l'agent peut capturer le nom, l'e-mail, le numéro de téléphone de l'appelant, ou toute autre information que vous définissez.
Variables par défaut
Chaque nouvel agent est créé avec deux variables de récupération par défaut :
| Variable | Type | Description |
|---|---|---|
| Adresse e-mail de l'appelant | ||
| Phone | Phone | Numéro de téléphone de l'appelant |
Elles sont activées par défaut et affichées dans le formulaire du widget d'appel. Vous pouvez les modifier ou les supprimer, et ajouter vos propres variables personnalisées.
Types de variables
| Type | Cas d'usage | Exemple |
|---|---|---|
| Texte | Noms, adresses, notes, saisie libre | Nom du client, adresse de livraison |
| Nombre | Quantités, budgets, identifiants | Quantité commandée, montant du budget |
| Adresses e-mail avec validation | E-mail du client | |
| Téléphone | Numéros de téléphone avec validation | Numéro de téléphone du client |
| Sélecteur | Choix parmi des options prédéfinies | Plan préféré (Basic/Pro/Enterprise) |
| Case à cocher | Consentement ou confirmation oui/non | « J'accepte de recevoir des e-mails marketing » |
Configurer une variable
| Champ | Description | Exemple |
|---|---|---|
| Nom de la variable | Requis. Identifiant de la variable | customer_email |
| Instructions pour l'IA | Requis. Instructions pour l'IA sur quand et comment extraire cette valeur | "The customer's email address. Ask if not provided." |
| Format d'exemple | (Optionnel) Exemple du format attendu | "john@example.com" |
| Options (pour Sélecteur) | (Sélecteur uniquement) Liste des options autorisées | ["Basic", "Pro", "Enterprise"] |
| Afficher dans le formulaire | S'il faut afficher ce champ dans le formulaire du widget d'appel | Activé par défaut |
Afficher dans le formulaire
Lorsque Afficher dans le formulaire est activé, la variable apparaît comme un champ de saisie visible dans le widget web avant et pendant l'appel. Cela permet aux appelants de renseigner leurs informations directement, en plus de l'extraction par l'IA depuis la conversation.
L'IA demandera naturellement les informations manquantes pendant la conversation. Définissez une description claire comme « Adresse e-mail du client, demander poliment si non fournie » et l'agent s'en chargera.
Ajouter des outils et actions
- Accédez à l'onglet Actions de votre agent.
- Cliquez sur Ajouter un outil.
- Choisissez la bonne phase dans le menu déroulant — Pré-récupération, Appel en direct ou Post-appel.
- Configurez les paramètres.
- Enregistrez — les modifications s'appliquent au prochain appel.
Toutes les entrées sont listées ensemble dans le tableau Actions. Cliquez sur n'importe quelle ligne pour la modifier, ou utilisez l'icône de corbeille pour la supprimer.
Lié
- Aperçu des agents vocaux
- Ingénierie de prompt — Référencer les outils dans votre prompt
- Base de connaissances — Sources d'information
- Intégrations — Systèmes externes avec lesquels vos outils peuvent communiquer