Aller au contenu principal

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 plans

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 :

PhaseQuandExemples
Pré-récupérationAvant que l'agent dise bonjourRechercher 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 directPendant la conversation, déclenché par l'IA au bon momentTransfé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-appelAprès la fin de l'appelEnvoyer 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

  1. 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).
  2. 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.
  3. 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.
  4. Les échecs sont silencieux — un endpoint lent ou défaillant ne bloque jamais la salutation. L'agent commence simplement à parler sans ce bloc.

Configuration

ChampDescription
NomRequis. Étiquette interne et nom du bloc dans le prompt — gardez-le court et descriptif (par ex. crm_lookup, vip_check).
URL de l'APIRequis. Endpoint à interroger. Prend en charge les espaces réservés {phone}, {direction}, {agent_id}, {user_id}, {call_id}.
Méthode HTTPGET est la valeur par défaut et la plus adaptée. POST / PUT / PATCH / DELETE fonctionnent aussi.
En-têtesOptionnel. Statiques ou avec modèle (les espaces réservés fonctionnent ici aussi).
Paramètres de requêteOptionnel. 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 :

VariableSourceExemple de valeur
{phone}Téléphone de l'appelant (E.164) — pour les appels sortants, le numéro de destination+431234567890
{direction}inbound ou outboundinbound
{agent_id}Identifiant interne de l'agent65f1a2b3c4...
{user_id}Identifiant du propriétaire de l'espace de travail65e0b1c2d3...
{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.
astuce

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

OutilObjetQuand l'utiliser
Transfert d'appelTransférer vers un opérateur humainLe client demande une personne, problèmes complexes
Google CalendarVérifier les disponibilités et prendre des rendez-vousLe client veut planifier une réunion
Outlook CalendarIdem, via Microsoft OutlookLe client veut planifier une réunion
API Tool RAGRécupérer des données en direct depuis une API externeBesoin d'infos en temps réel (commandes, stock, état du compte)
Transfert d'agentTransférer vers un autre agent vocalL'appelant a besoin d'un autre service ou d'un spécialiste
HubSpot CRMLire/écrire des contacts et des transactions dans HubSpotConsigner l'appel dans HubSpot, rechercher un prospect
Serveurs MCPExposer les outils de n'importe lequel de vos serveurs MCP enregistrésVous 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ètreDescriptionExemple
NomRequis. Nom de la personne ou du service"Sales Manager"
Numéro de transfertNuméro de téléphone par défaut vers lequel transférer"+49 123 456 789"
Condition de déclenchementQuand l'agent doit transférer"Customer asks for manager or issue cannot be resolved"
Numéros de routage conditionnelCorrespondance condition-numéro pour le routage{"billing": "+49 111 222", "technical": "+49 333 444"}

Comment ça fonctionne :

  1. Pendant une conversation, l'IA évalue la Condition de déclenchement.
  2. Si des numéros de routage conditionnel sont définis, la condition correspondante détermine quel numéro appeler.
  3. Sinon, le Numéro de transfert est utilisé.
  4. L'agent informe l'appelant du transfert.
  5. L'appel est transféré — en cas de non-réponse, il revient à l'agent.
astuce

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 :

  1. Allez dans IntegrationCalendars et connectez d'abord votre compte Google.
  2. Ajoutez l'outil Google Calendar dans l'onglet Actions de l'agent.
  3. Sélectionnez le calendrier à utiliser.
  4. Configurez vos paramètres de disponibilité.
ParamètreDescriptionPar défaut
CalendrierRequis. Quel calendrier utiliserVotre calendrier principal
Fuseau horaireFuseau horaire des rendez-vous (format IANA)Détecté automatiquement
Heure de début de travailDébut des heures de travail9h00
Heure de fin de travailFin des heures de travail18h00
Durée du créneauLongueur du rendez-vous en minutes30
Jours travaillésJours de la semaine disponiblesLundi-Vendredi
Tampon entre rendez-vousBattement entre rendez-vous (0-60 min)0

Durées de créneau prises en charge : 15, 30, 45, 60, 75, 90, 105, 120 minutes.

astuce

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 :

  1. Allez dans IntegrationCalendars et connectez d'abord votre compte Outlook.
  2. Ajoutez l'outil Outlook Calendar dans l'onglet Actions de l'agent.
  3. Sélectionnez le calendrier à utiliser.
  4. 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ètreDescription
Agent cibleRequis. Sélectionnez l'agent vers lequel transférer
Condition de déclenchementQuand 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 :

  1. Allez sur la page Integrations et connectez votre compte HubSpot.
  2. Ajoutez l'outil HubSpot CRM dans l'onglet Actions de l'agent.
  3. 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 :

  1. Connectez votre ou vos serveur(s) MCP une seule fois sous IntegrationMCP servers. Consultez la page dédiée MCP Servers pour les étapes d'enregistrement complètes.
  2. 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.
  3. Activez celles de vos connexions enregistrées auxquelles cet agent doit avoir accès.
  4. 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ètreDescriptionExemple
NomRequis. Nom de l'outil"Order Lookup"
Description / Quand l'utiliserRequis. Quand interroger l'API"Customer asks about order status"
URL de l'APIRequis. 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 HTTPRequis. Méthode HTTPGET, POST, PUT, DELETE, PATCH
Message de chargementCe que dit l'agent pendant l'attente"Let me check that for you..."
Délai d'expirationTemps d'attente maximal (ms)5000 (par défaut)
En-têtesEn-têtes HTTP statiques envoyés à chaque requête{"Authorization": "Bearer KEY"}
Paramètres de requêteParamètres de chaîne de requête statiques ajoutés à chaque requête{"apiVersion": "v2"}
Schéma des paramètres du corpsRequis. 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
astuce

Définissez toujours un Message de chargement — un silence pendant les appels d'API donne à l'appelant l'impression que quelque chose est cassé.

remarque

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 HTTPOù vont les valeurs extraites
L'URL contient {name}La valeur correspondante est substituée dans l'URL
GET, DELETELes valeurs restantes sont ajoutées à l'URL sous forme ?key=value
POST, PUT, PATCHLes 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
ChampObjet
typeType JSON de la valeur : "string", "number", "integer", "boolean", "array", "object"
descriptionLe plus important. Indique à l'IA ce que signifie la valeur, quel format utiliser et quand la fournir. Ajoutez des exemples autant que possible.
enumRestreint 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, maximumBornes numériques. L'IA refusera/bornera les valeurs hors plage.
defaultValeur utilisée lorsque l'IA ne transmet pas ce champ. Non requis, mais documente la valeur implicite.
formatIndice 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 description pour chaque champ. Incluez des exemples (e.g. "phone", "laptop") — les exemples guident l'IA plus fiablement que des définitions abstraites.
  • Utilisez enum chaque 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 required uniquement 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_case et 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.

ActionSe déclencheEnvoie à
Envoyer un SMS en directPendant l'appelLe numéro de téléphone de l'appelant
Envoyer un e-mail en directPendant l'appelL'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 :

ConditionRé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èresRefusé — 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

ActionObjet
Envoyer un e-mailEnvoyer par e-mail un résumé structuré à votre équipe ou à votre client
Envoyer un SMSConfirmation par texto à l'appelant
Envoyer un WhatsAppMessage ou modèle WhatsApp (fonctionne à l'intérieur et à l'extérieur de la fenêtre de 24 heures)
Appel d'APITransmettre la totalité des données de l'appel à une API externe (CRM, webhook, votre entrepôt de données)

Envoyer un e-mail

ParamètreDescription
NomRequis. Identifiant de l'action
ObjetRequis. Ligne d'objet de l'e-mail
Corps du messageRequis. Corps de l'e-mail — peut inclure des variables de récupération
Condition de déclenchementQuand envoyer (vide = toujours)
DestinatairesRequis. Adresses e-mail qui reçoivent toujours l'e-mail
Destinataires conditionnelsCorrespondance 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ètreDescription
NomRequis. Identifiant de l'action
Nom de l'expéditeurNom d'expéditeur affiché
MessageRequis. Contenu du SMS (peut inclure des variables)
Condition de déclenchementQuand envoyer
DestinatairesRequis. Numéros de téléphone qui reçoivent toujours le SMS
Destinataires conditionnelsCorrespondance 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ètreDescription
NomRequis. Identifiant de l'action
Condition de déclenchementQuand envoyer
DestinatairesRequis. Numéros de téléphone qui reçoivent toujours le message
Destinataires conditionnelsCorrespondance condition-numéro
ModèleRequis. 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èlePour 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 :

VariableDescription
{{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
Pourquoi un sélecteur, pas du texte libre

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ètreDescription
NomRequis. Identifiant de l'action
Condition de déclenchementQuand se déclencher (vide = chaque appel). Évaluée par un LLM par rapport à la transcription.
URL de l'APIRequis. URL de l'endpoint de l'API
Méthode HTTPRequis. GET, POST, PUT, DELETE, PATCH
En-têtesEn-têtes de requête optionnels
Paramètres de requêteParamè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.

Pré-récupération vs Appel d'API post-appel
  • 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 :

VariableTypeDescription
EmailEmailAdresse e-mail de l'appelant
PhonePhoneNumé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

TypeCas d'usageExemple
TexteNoms, adresses, notes, saisie libreNom du client, adresse de livraison
NombreQuantités, budgets, identifiantsQuantité commandée, montant du budget
EmailAdresses e-mail avec validationE-mail du client
TéléphoneNuméros de téléphone avec validationNuméro de téléphone du client
SélecteurChoix parmi des options prédéfiniesPlan préféré (Basic/Pro/Enterprise)
Case à cocherConsentement ou confirmation oui/non« J'accepte de recevoir des e-mails marketing »

Configurer une variable

ChampDescriptionExemple
Nom de la variableRequis. Identifiant de la variablecustomer_email
Instructions pour l'IARequis. 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 formulaireS'il faut afficher ce champ dans le formulaire du widget d'appelActivé 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.

astuce

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

  1. Accédez à l'onglet Actions de votre agent.
  2. Cliquez sur Ajouter un outil.
  3. Choisissez la bonne phase dans le menu déroulant — Pré-récupération, Appel en direct ou Post-appel.
  4. Configurez les paramètres.
  5. 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é