Your AI Connector Docs

Fonctions personnalisées

Les fonctions personnalisées permettent à votre bot IA de se connecter à d’autres systèmes pendant les conversations en direct. Au lieu de dire « Je vais vérifier et revenir vers vous », le bot peut rechercher le statut d’une commande, vérifier les stocks ou créer un enregistrement dans votre CRM (système de gestion de la relation client - le logiciel que vous utilisez pour suivre les prospects et les clients, comme HubSpot ou Salesforce) - tout cela en temps réel, pendant que le client attend.


Fonctions personnalisées vs Webhooks

C’est le point de confusion le plus courant, il est donc utile de clarifier la situation avant de commencer à construire quoi que ce soit.

Webhooks Fonctions personnalisées
Direction Unidirectionnel (envoyer et oublier) Bidirectionnel (appeler et attendre)
Ce que fait le bot Envoie une notification lorsqu’un événement se produit, puis continue son chemin. Appelle, fait une pause, attend la réponse, et utilise les données reçues pour poursuivre la conversation.
Visibilité sur la conversation Le résultat en aval est invisible pour le bot — il ne voit jamais ce qui s’est passé. La réponse est directement réinjectée dans l’IA, afin que le bot puisse la citer, l’analyser et répondre au client en s’appuyant dessus.
Idéal pour Enregistrer des événements, synchroniser des données vers un CRM, déclencher des automatisations externes (Zapier, Make, n8n). Tout ce pour quoi le bot a besoin d’une réponse avant de pouvoir répondre — recherches en direct, tarifs en temps réel, génération de contenu à la volée.

Quand choisir quoi : Si vous avez simplement besoin de signaler à un autre système qu’un événement s’est produit, utilisez un webhook - un message automatisé unidirectionnel envoyé à un autre système (voir Paramètres → Intégrations → Webhooks). Si le bot doit apprendre quelque chose d’un autre système avant de poursuivre la conversation, utilisez une fonction personnalisée.


Exemples de ce que permettent les fonctions personnalisées

Comme la réponse est réinjectée dans la conversation, les fonctions personnalisées permettent des choses que les webhooks ne peuvent tout simplement pas faire :

  • Consultation des stocks Shopify ou WooCommerce en direct — Avant de faire une offre à un client, le bot vérifie les stocks en temps réel et répond « Oui, nous en avons 12 en taille M » au lieu de « laissez-moi vérifier et je reviens vers vous ».
  • Tarification dynamique depuis un Google Sheet — Votre équipe commerciale met à jour les prix dans une feuille ; le bot lit la dernière ligne au milieu de la conversation et indique le prix actuel sans que personne n’ait à toucher à la configuration de l’IA.
  • Agent de rappel par IA vocale — Lorsque le bot qualifie un prospect, il déclenche un agent vocal (par exemple, un appelant propulsé par ElevenLabs) pour rappeler le prospect en quelques minutes, et confirme au client « très bien, attendez-vous à un appel dans les 5 prochaines minutes ».
  • PDF de devis personnalisé, généré et envoyé par e-mail en plein chat — Le bot recueille les besoins, appelle votre générateur de devis, récupère une URL de PDF et dit au client « Je viens de vous envoyer votre devis par e-mail — vérifiez votre boîte de réception ».

Que peuvent faire les fonctions personnalisées ?

Considérez les fonctions personnalisées comme un moyen de donner à votre bot des super-pouvoirs qui vont au-delà de la simple discussion. Voici des exemples concrets :

  • Suivi de commande - Un client demande « Où est ma commande ? » et le bot vérifie votre système e-commerce et répond avec le statut d’expédition et le lien de suivi
  • Vérification des stocks - « Avez-vous cet article en taille 10 ? » Le bot vérifie votre système de stock et donne une réponse en temps réel
  • Mises à jour CRM - Lorsque le bot qualifie un prospect, il crée ou met à jour automatiquement un enregistrement dans HubSpot, Salesforce ou tout autre CRM
  • Génération de devis - Le bot recueille les besoins du client et génère un devis personnalisé à partir de votre système de tarification
  • Réservation - Le bot crée un rendez-vous dans votre système de réservation externe
  • Vérification de remise - « Ce code promo est-il valide ? » Le bot vérifie et confirme
  • Consultation de compte - Un client récurrent est automatiquement reconnu et les détails de son compte sont récupérés

Le client ne voit jamais ce qui se passe en coulisses. Il fait simplement l’expérience d’un bot capable de répondre à ses questions avec des informations réelles et à jour.


Comment fonctionnent les fonctions personnalisées (version simple)

Voici ce qui se passe lorsqu’une fonction personnalisée est déclenchée au cours d’une conversation :

  1. Le client demande quelque chose qui nécessite des données en temps réel (par ex. « Où est ma commande ? »)
  2. Le bot reconnaît qu’il doit utiliser une fonction personnalisée pour répondre
  3. Le bot collecte toute information manquante auprès du client (par ex. « Quel est votre numéro de commande ? »)
  4. La plateforme envoie une requête à votre système (votre site web, CRM ou tout autre outil) avec les détails pertinents
  5. Votre système répond avec les données (par ex. statut de la commande, numéro de suivi, date de livraison)
  6. Le bot lit la réponse et rédige une réponse naturelle : « Votre commande ORD-4582 a été expédiée et devrait arriver d’ici vendredi ! »

Coût d’un appel de fonction personnalisée

Chaque appel de fonction personnalisée est facturé selon le niveau de qualité IA de votre agent :

Niveau de qualité IA Crédits par appel de fonction personnalisée Avec votre propre clé Anthropic (BYOK) connectée
Pro 1 crédit 0 crédit — s’exécute sur votre clé
Économique (obsolète) 0,5 crédit 0 crédit — s’exécute sur votre clé
Max 0,25 crédit toujours 0,25 crédit, facturé même avec votre propre clé connectée, car Max s’exécute sur notre propre modèle
Mini 0,15 crédit toujours 0,15 crédit, facturé même avec votre propre clé connectée, car Mini s’exécute sur notre propre modèle

Configuration d’une fonction personnalisée (étape par étape)

  1. Dans la barre latérale principale, sous AI Studio, cliquez sur Custom Functions.
  1. Cliquez sur le bouton vert + Add Function (ou New function) en haut à droite.

La liste des fonctions personnalisées affiche un tableau avec les colonnes suivantes :

Colonne Ce qu’elle affiche
Nom Le nom de la fonction (par ex. check_order_status)
Description Un court résumé de ce que fait la fonction (tronqué à 50 caractères dans le tableau)
Méthode La méthode HTTP utilisée, affichée sous forme de badge coloré : GET (bleu), POST (vert), PUT (orange), DELETE (rouge)
Créé le La date à laquelle la fonction a été créée

Cela permet de parcourir facilement vos fonctions en un coup d’œil et de trouver celle dont vous avez besoin.

Étape 1 : Donnez-lui un nom et une description

Champ Ce qu’il faut saisir Exemple
Nom Un nom court utilisant des lettres, des chiffres et des traits de soulignement check_order_status
Description Expliquez ce que fait cette fonction (l’IA lit ceci pour décider quand l’utiliser) « Recherche le statut actuel de la commande d’un client en utilisant son numéro de commande »
Objectif (Action IA) Dites précisément à l’IA quand et comment utiliser cette fonction « Utilisez ceci lorsqu’un client pose une question sur le statut de sa commande, l’expédition ou la livraison. Demandez d’abord son numéro de commande. »

Conseil : Soyez très précis dans la description et l’objectif. Plus vous êtes clair sur le moment où la fonction doit être utilisée, plus le bot l’utilisera de manière fiable au bon moment.

Étape 2 : Configurer la connexion

Vous devez indiquer à l’application où envoyer la requête :

Champ Ce qu’il faut saisir Exemple
URL L’adresse web du point de terminaison de votre système (l’adresse spécifique sur votre système qui reçoit la requête et renvoie des données) https://api.yourstore.com/v1/orders/status
Méthode Le type de requête à envoyer Voir les options ci-dessous

Quelle méthode choisir :

Méthode Quand l’utiliser
GET Recherche d’informations (statut de commande, inventaire, détails du compte)
POST Création de nouveaux enregistrements (tickets de support, prospects, réservations) ou recherches complexes
PUT Mise à jour complète d’un enregistrement existant
PATCH Mise à jour partielle d’un enregistrement existant
DELETE Suppression d’un enregistrement

Si vous n’êtes pas sûr de la méthode à utiliser, vérifiez auprès de votre développeur ou consultez la documentation du système auquel vous vous connectez. GET (pour les recherches) et POST (pour la création d’enregistrements) sont les plus courantes.

Étape 3 : Ajouter les en-têtes d’authentification

La plupart des systèmes exigent une authentification pour accepter les requêtes. Ajoutez tous les en-têtes requis :

En-tête Valeur d’exemple
Authorization Bearer your-api-key-here
Content-Type application/json

Conseil de sécurité : Utilisez une clé API dédiée avec des autorisations limitées. N’utilisez pas d’identifiants de niveau administrateur.

Où trouver les clés API : Consultez les paramètres ou la section développeur du système auquel vous vous connectez (par exemple, votre CRM, votre plateforme e-commerce ou votre outil de réservation).

Étape 4 : Définir l’entrée (ce que le bot envoie)

Les paramètres d’entrée sont les informations que le bot collecte lors de la conversation et envoie à votre système.

Pour chaque paramètre, vous spécifiez :

Propriété Signification
Nom Le nom du paramètre (doit correspondre à ce que votre système attend)
Type Le type de données (texte, nombre, vrai/faux, etc.)
Description Indiquez à l’IA ce qu’est cette information et où la trouver dans la conversation
Requis Si défini sur Oui, le bot demandera cette information au client avant de continuer

Types de paramètres disponibles :

Type Signification
string Texte (noms, numéros de commande, adresses)
number Une valeur numérique (quantité, prix)
boolean Vrai ou faux (valeurs oui/non)
array Une liste d’éléments. Envoyée sous forme de liste JSON réelle — dans Run Test, vous pouvez la saisir sous la forme [8624], ["a", "b"] ou simplement séparée par des virgules (8624, 8625) et elle est convertie pour vous. Si votre API est stricte quant au contenu de la liste — par exemple, uniquement des nombres — définissez le Type d’élément optionnel à côté du type et chaque valeur de la liste y sera convertie.
query_param Texte envoyé en tant que paramètre d’URL au lieu d’être dans le corps de la requête. Utilisez ceci lorsque votre API attend des données dans l’URL (par exemple, ?order_id=123).

Chaque paramètre dispose également d’un champ optionnel Chemin du corps de la requête. Normalement, un paramètre est envoyé en tant que champ de premier niveau dans le corps de la requête (ou en tant que valeur de chaîne de requête, pour le type query_param). Si votre point de terminaison attend une imbrication — par exemple {"order": {"id": "ORD-123"}} — définissez le chemin sur order.id et la plateforme y imbriquera la valeur pour vous.

Exemple : Pour une recherche de statut de commande, vous pourriez définir :

  • order_number (string, requis) : “Le numéro de commande du client. Commence généralement par ORD- suivi de chiffres. Demandez-le au client s’il ne l’a pas mentionné.”
  • email (string, optionnel) : “L’adresse e-mail du client pour une vérification supplémentaire. Nécessaire uniquement si le numéro de commande seul ne permet pas de trouver une correspondance.”

Ce que votre système reçoit automatiquement

En plus des paramètres d’entrée que vous définissez, la plateforme inclut automatiquement des données système avec chaque requête. Votre point de terminaison reçoit ces informations dans un champ system :

Champ système Ce qu’il contient
system.contactId L’ID de plateforme du contact dans la conversation
system.campaignId L’ID de campagne auquel appartient la conversation
system.userId Votre ID utilisateur
system.channel Le canal de messagerie (par ex., "whatsapp", "instagram")
system.contact L’enregistrement complet du contact (nom, téléphone, e-mail, tags, etc.)
system.campaign La configuration de la campagne
system.test true s’il s’agit d’un test « Try Out », false pour les conversations en direct

Ceci est utile si votre système doit identifier le contact, vérifier quelle campagne a déclenché la fonction ou se comporter différemment lors des tests.

Vous n’avez pas besoin des données système ? Activez l’option Ignorer les données système dans le générateur de fonctions. Le bot enverra alors uniquement les paramètres d’entrée que vous avez définis — sans données de contact ou de campagne. Utilisez cette option si votre point de terminaison rejette les champs inattendus ou si vous souhaitez simplement une charge utile plus légère.

Étape 5 : Testez, puis laissez le bot lire la réponse

Vous n’avez normalement pas besoin de mapper les champs de réponse du tout. Une fois que votre point de terminaison répond, le bot lit l’intégralité de la réponse JSON et utilise la Description et l’Objectif (Action IA) de votre fonction — ainsi que la description propre à chaque paramètre — pour déterminer ce qui est important et le présenter naturellement. Une description claire de la fonction elle-même (« Récupère le statut actuel d’une commande client, y compris les informations d’expédition et de suivi ») est plus efficace ici qu’un mappage champ par champ.

Si votre point de terminaison renvoie une réponse volumineuse et que vous souhaitez que le bot ne voie que quelques valeurs spécifiques, ouvrez la section Mappage de réponse (réduite par défaut, juste au-dessus de Test). Chaque ligne sélectionne un champ de premier niveau dans la réponse : Champ de réponse est le nom du champ dans la réponse JSON de votre API, et Champ de sortie est le nom sous lequel le bot le reçoit. Avec au moins une ligne remplie, le bot ne reçoit que vos valeurs mappées au lieu du corps de réponse complet. Laissez la section vide pour conserver le comportement par défaut de réponse complète.

Avant d’enregistrer, utilisez la section Test en bas du générateur pour envoyer la requête exactement comme configurée et voir la réponse réelle, sans quitter l’application :

La réponse que vous voyez ici est la réponse brute du point de terminaison. Si vous avez configuré un Mappage de réponse ci-dessus, le bot dans une discussion réelle ne reçoit que ces champs mappés — le test affiche toujours la réponse brute complète afin que vous puissiez voir ce qui est disponible pour le mappage. Si quelque chose semble incorrect (noms de champs inattendus, imbrication supplémentaire), corrigez-le sur votre point de terminaison ou ajustez votre mappage.


Attribution de fonctions à un agent

Après avoir créé une fonction personnalisée, vous devez indiquer à chaque agent quelles fonctions il peut utiliser :

  1. Ouvrez l’Agent sous AI Studio → Agents IA.
  2. Accédez à son onglet Capacités IA (AI Abilities). (Pour une campagne qui conserve ses propres paramètres IA directement plutôt que via un Agent séparé, la même liste apparaît à la place sur l’étape Capacités IA de cette campagne.)
  3. Vous verrez une liste de toutes les fonctions personnalisées que vous avez créées. Activez chaque fonction que vous souhaitez que le bot de cet Agent puisse appeler.
  4. Cliquez sur Enregistrer les modifications en bas. Les sélections ne s’appliquent qu’une fois enregistrées.

Seules les fonctions attribuées sont disponibles pour le bot de cet agent. Cela évite au bot d’utiliser accidentellement des fonctions non pertinentes.


Tester vos fonctions personnalisées

Avant de passer en production, testez minutieusement :

  1. Exécutez le test intégré - Utilisez la section Test dans le générateur de fonctions (voir ci-dessus) pour une vérification rapide sans quitter l’application — saisissez des valeurs réalistes et cliquez sur Exécuter le test.
  2. Testez directement le point de terminaison de votre système - Pour la liste de contrôle complète ci-dessous, un outil dédié comme Postman (ou votre développeur) permet d’aller plus loin qu’un simple test d’exécution.
  3. Testez dans Essayer - Simulez une conversation où le client demande quelque chose qui devrait déclencher la fonction.
  4. Vérifiez la réponse - Assurez-vous que le bot lit et présente correctement les données.
  5. Testez les scénarios d’erreur - Que se passe-t-il si le client donne un numéro de commande invalide ? Que se passe-t-il si votre système est temporairement hors service ?

Lorsque le test renvoie 401 ou 403

Une erreur 401 ou 403 signifie que votre point de terminaison a reçu la requête et l’a refusée. L’indice est que rien n’apparaît dans vos propres journaux — la plupart des outils rejettent un appel non autorisé avant même de démarrer le flux de travail, il n’y a donc rien à voir de votre côté et il semble que la requête ne soit jamais arrivée.

Il s’agit presque toujours d’une incompatibilité d’authentification : votre point de terminaison attend un type d’identifiant et la fonction en envoie un différent. Vérifiez que l’en-tête que vous avez ajouté à l’étape 3 est exactement celui attendu par votre système.

La version la plus courante est un webhook protégé par une authentification de base (Basic Auth) (n8n, Make et la plupart des outils auto-hébergés proposent cette option via une case à cocher sur le webhook lui-même) alors que la fonction envoie un en-tête secret personnalisé comme X-My-Secret. L’authentification de base n’accepte qu’un en-tête Authorization, donc un en-tête personnalisé est ignoré et l’appel est rejeté. Vous avez deux options :

  • Désactivez l’authentification de base sur le webhook et vérifiez plutôt votre en-tête personnalisé dans le flux de travail.
  • Gardez l’authentification de base activée et ajoutez un en-tête Authorization à la fonction dont la valeur est le mot Basic suivi de votre username:password encodé en base64.

L’une ou l’autre fonctionne — assurez-vous simplement que les deux parties sont en accord.

Lorsque le test renvoie 404

L’URL du point de terminaison est incorrecte ou le flux de travail n’est pas publié. Dans n8n spécifiquement, chaque webhook possède une URL de Test et une URL de Production distinctes, et celle de test n’écoute que lorsque l’éditeur est ouvert. Copiez l’URL de production et assurez-vous que le flux de travail est actif.

Voir les échecs dans Essayer et Discussions

Lorsque l’IA appelle une fonction personnalisée au cours d’une conversation et que l’appel échoue — identifiants incorrects, point de terminaison hors ligne, délai d’attente — la conversation l’affiche désormais : un marqueur rouge « (nom de la fonction) a échoué » apparaît dans le fil de discussion, à la fois dans l’onglet Essayer de l’agent et dans les conversations réelles dans Discussions. Cliquez sur le marqueur pour développer les détails : le code d’état renvoyé par votre point de terminaison et son corps de réponse, ce qui suffit généralement à vous indiquer exactement ce qu’il faut corriger (un 401 avec un message « unauthorized » signifie que l’en-tête d’authentification est en cause, un délai d’attente signifie que votre point de terminaison a pris plus de 30 secondes).

Les appels réussis affichent également un marqueur — cliquez dessus pour voir ce que votre point de terminaison a réellement renvoyé. C’est le moyen le plus rapide de déboguer une intégration de bout en bout : effectuez la conversation de test dans Essayer, puis cliquez sur le marqueur de fonction pour voir le résultat réel de la requête sans quitter la page.


Exemple complet : Recherche du statut de commande

Voici un exemple entièrement configuré que vous pouvez utiliser comme modèle :

Informations de base :

  • Nom : check_order_status
  • Description : “Récupère le statut actuel d’une commande client, y compris les informations d’expédition et de suivi”
  • Action de l’IA : “Appelez cette fonction lorsqu’un client pose des questions sur le statut de sa commande, l’emplacement de son colis ou sa date d’arrivée. Demandez toujours le numéro de commande en premier.”

Connexion :

  • URL : https://api.mystore.com/orders/lookup
  • Méthode : POST

En-têtes :

  • Authorization : Bearer sk_live_abc123
  • Content-Type : application/json

Paramètres d’entrée :

  • order_number (texte, requis) : “Le numéro de commande fourni par le client”
  • customer_email (texte, optionnel) : “E-mail du client pour une vérification supplémentaire”

Aucun mappage de réponse nécessaire — avec une description et une action IA claires définies ci-dessus, le bot lit tout JSON renvoyé par votre point de terminaison (statut, numéro de suivi, date de livraison, articles) et détermine comment en parler.

À quoi ressemble la conversation :

Client : Hé, où est ma commande ?

Bot : Bonjour ! Je serais ravi de vérifier votre commande. Pourriez-vous me communiquer votre numéro de commande ?

Client : C’est ORD-78234

Bot : Laissez-moi vérifier cela pour vous…

Votre commande ORD-78234 a été expédiée et est en route ! La date de livraison estimée est le 10 mars. Vous pouvez suivre votre colis ici : https://tracking.example.com/1Z999AA1

Puis-je vous aider pour autre chose ?


Exemple complet : Statut de commande Shopify

Si la boutique fonctionne sur Shopify, vous n’avez pas besoin d’un développeur pour créer un point de terminaison de recherche — le système de Shopify peut répondre directement aux questions sur les commandes. (Pour les questions sur les produits et les stocks d’une boutique Shopify, vous n’avez pas besoin de fonction personnalisée : connectez plutôt le serveur intégré de la boutique — voir Connecter une boutique Shopify.)

Tout d’abord, créez un jeton d’accès dans Shopify. Shopify a modifié cela en 2026 : les applications ne peuvent plus être créées depuis l’interface d’administration Shopify, et le nouvel écran de création d’application vous fournit un ID client et un Secret client au lieu d’un jeton prêt à l’emploi. Les étapes ci-dessous permettent de les convertir en un jeton permanent. Prévoyez environ dix minutes, une fois par boutique. (Si la boutique possède déjà une ancienne application créée selon l’ancienne méthode, son jeton existant continuera de fonctionner — passez directement à la fonction personnalisée ci-dessous.)

  1. Accédez au tableau de bord Shopify Dev sur dev.shopify.com, ouvrez votre organisation et cliquez sur Apps → Create app. Nommez-la par exemple Order lookup.
  2. Donnez à l’application la permission read_orders, publiez une version et installez l’application sur la boutique.
  3. Ouvrez les Paramètres de l’application et ajoutez l’adresse web de la boutique (par exemple https://www.yourstore.com/) aux URL de redirection autorisées. Enregistrez.
  4. Toujours dans Paramètres, copiez l’ID client et le Secret client.
  5. Dans un navigateur où vous êtes connecté à l’administration Shopify de cette boutique, ouvrez l’adresse ci-dessous en remplaçant le nom de la boutique, l’ID client et l’adresse de redirection par les vôtres : https://YOUR-STORE.myshopify.com/admin/oauth/authorize?client_id=YOUR-CLIENT-ID&scope=read_orders&redirect_uri=https://www.yourstore.com/&state=12345 Approuvez l’écran qui s’affiche. Le navigateur atterrit sur votre adresse de redirection et la barre d’adresse contient maintenant code= suivi d’une longue valeur — copiez cette valeur. Elle n’est valide que pendant quelques minutes, alors passez directement à l’étape suivante.
  6. Échangez ce code contre le jeton, ce que vous pouvez faire dans Your AI Connector. Dans le générateur de fonctions personnalisées, réglez Méthode sur POST et URL sur https://YOUR-STORE.myshopify.com/admin/oauth/access_token, ajoutez trois paramètres d’entrée texte nommés client_id, client_secret et code, puis cliquez sur Test, remplissez les trois valeurs et exécutez-le. La réponse contient access_token — c’est votre jeton permanent. Copiez-le dans un endroit sûr, puis videz le générateur et configurez la fonction réelle ci-dessous.

Ensuite, configurez la fonction personnalisée :

Informations de base :

  • Nom : check_shopify_order
  • Description : “Recherche une commande dans le système Shopify de la boutique et renvoie son statut, son suivi et ses articles”
  • Action IA : “Appelez ceci lorsqu’un client pose une question sur le statut de sa commande ou sa livraison. Demandez toujours le numéro de commande en premier.”

Connexion :

  • URL : https://YOUR-STORE.myshopify.com/admin/api/2026-01/orders.json?status=any — remplacez YOUR-STORE par le nom .myshopify.com de la boutique (cette adresse utilise le domaine technique de Shopify, pas le domaine personnalisé de la boutique)
  • Méthode : GET

En-têtes :

  • X-Shopify-Access-Token : shpat_... (le jeton obtenu ci-dessus)

Paramètres d’entrée :

  • name (query_param, requis) : “Le numéro de commande du client tel qu’il apparaît exactement dans sa confirmation de commande, y compris le signe # — par exemple #1001. Demandez-le au client s’il ne l’a pas mentionné.”

Aucun mappage de réponse nécessaire — le bot lit la commande renvoyée (statut de paiement, statut d’exécution, suivi, articles) et répond naturellement.

Bon à savoir : un jeton créé de cette manière peut voir les commandes des 60 derniers jours — suffisant pour les questions de support quotidiennes, mais pas pour un historique complet des commandes.


Exemple complet : Prendre un rendez-vous

Informations de base :

  • Nom : create_booking
  • Description : “Crée un nouveau rendez-vous dans notre système de réservation”
  • Action de l’IA : “Utilisez cette fonction après avoir confirmé la date, l’heure et les coordonnées avec le client. N’appelez pas la fonction tant que le client n’a pas explicitement confirmé qu’il souhaite réserver.”

Connexion :

  • URL : https://booking.mycompany.com/api/appointments
  • Méthode : POST

Paramètres d’entrée :

  • date (texte, requis) : “Date du rendez-vous au format AAAA-MM-JJ”
  • time (texte, requis) : “Heure du rendez-vous au format HH:MM”
  • name (texte, requis) : “Nom complet du client”
  • phone (texte, requis) : “Numéro de téléphone du client”
  • service_type (texte, requis) : “Le type de service réservé”

Exemple complet : ajouter un abonné à la newsletter dans votre CRM

Un scénario très courant : le bot finit de répondre, propose votre newsletter, le contact répond avec son adresse e-mail, et cette adresse doit être transmise immédiatement à votre outil d’e-mailing. La plupart des CRM (FluentCRM, ActiveCampaign, MailerLite, Brevo, et autres) acceptent une simple requête POST pour cela, il n’est donc pas nécessaire d’utiliser une plateforme d’automatisation intermédiaire.

Cet exemple utilise FluentCRM sur WordPress. La structure est identique pour tout autre outil vous fournissant un « webhook entrant » ou un point de terminaison « créer un abonné ».

Tout d’abord, récupérez l’URL depuis votre CRM. Dans WordPress, ouvrez FluentCRM → Settings → Incoming Webhooks et créez un webhook. Choisissez la liste, les tags et le statut d’abonnement que les nouveaux contacts doivent recevoir, puis copiez l’URL du webhook générée. Tout ce que vous configurez ici est appliqué automatiquement, le bot n’a donc qu’à envoyer l’adresse e-mail.

Ensuite, configurez la fonction personnalisée :

Informations de base :

  • Nom : add_newsletter_subscriber
  • Description : “Ajoute une personne à notre liste de newsletter en utilisant l’adresse e-mail fournie dans le chat”
  • Action de l’IA : “Utilisez ceci dès que le contact accepte de s’abonner à la newsletter et donne son adresse e-mail. Ne l’appelez pas avant qu’il n’ait réellement fourni une adresse, et ne l’appelez pas deux fois pour la même personne.”

Connexion :

  • URL : l’URL du webhook que vous avez copiée depuis votre CRM
  • Méthode : POST

Paramètres d’entrée :

  • email (chaîne de caractères, requis) : “L’adresse e-mail que le contact a donnée dans la conversation”
  • first_name (chaîne de caractères, optionnel) : “Le prénom du contact, s’il l’a mentionné”

Ignorer les données système : activez cette option (on). Votre CRM n’a besoin que des champs ci-dessus, et une charge utile plus légère évite les erreurs provenant d’outils qui rejettent les champs inattendus.

Mappage de réponse : inutile ici. Rien n’a besoin d’être renvoyé pour que le bot puisse continuer.

N’oubliez pas d’activer la fonction pour l’Agent qui gère la conversation (voir Assigner des fonctions à un agent). C’est la raison la plus courante pour laquelle une fonction correctement construite ne se déclenche jamais.

Astuce : le bot dispose également d’un outil intégré Mettre à jour l’e-mail du contact, qui enregistre l’adresse dans la fiche du contact au sein de la plateforme. C’est distinct de cette fonction, et utile en complément : l’outil intégré maintient votre propre fiche contact complète, tandis que la fonction personnalisée envoie l’adresse à votre CRM.


Conseils pour des fonctions personnalisées fiables

  1. Assurez-vous que les requêtes répétées sont sans danger. Si la même requête est envoyée deux fois par accident, elle ne doit pas créer d’enregistrements en double. Des problèmes de réseau peuvent parfois provoquer cela.

  2. Renvoyez des messages d’erreur clairs. Si un problème survient de votre côté, renvoyez une erreur lisible par l’humain. Le bot la transmettra au client avec courtoisie.

  3. Maintenez les temps de réponse sous les 10 secondes. Si votre système prend plus de temps, envisagez de renvoyer d’abord un accusé de réception rapide.

  4. Gérez les identifiants expirés ou invalides. Si votre clé API expire, assurez-vous que le message d’erreur est clair afin que le bot sache qu’il doit alerter un humain au lieu de réessayer.

  5. Rédigez des descriptions détaillées. L’IA utilise vos descriptions pour déterminer quand appeler la fonction et comment extraire les bonnes informations de la conversation. Des descriptions vagues mènent à des erreurs.

  6. Testez avec des conversations réelles. « Try Out » est idéal pour les tests initiaux, mais surveillez vos premières conversations en direct pour vous assurer que tout fonctionne avec les requêtes réelles des clients.

  7. Conservez des journaux de votre côté. Demandez à votre développeur d’enregistrer les requêtes provenant de l’application afin que vous puissiez déboguer rapidement tout problème.

  8. Utilisez une URL finale publique. L’URL de votre fonction doit être une adresse web publique (HTTP/HTTPS). Les adresses internes, localhost et de réseau privé sont rejetées pour des raisons de sécurité, et la plateforme ne suit pas les redirections — pointez la fonction directement vers l’URL finale, et non vers une URL qui y redirige.


Limites d’exécution

Chaque fonction personnalisée dispose d’une section optionnelle Limites d’exécution en bas de l’éditeur. Elle permet de contrôler la fréquence à laquelle l’IA peut exécuter la fonction et si un résultat précédent peut être réutilisé. Tout ici est optionnel : laissez tout vide et la fonction se comportera exactement comme avant.

Fonction en lecture seule. Activez cette option si votre fonction ne fait que lire des données — une recherche d’actions, une vérification de prix, une recherche de statut de commande — et ne crée ou ne modifie jamais rien. Lorsqu’un problème réseau temporaire interrompt l’IA en pleine réponse, la plateforme peut alors relancer le tour de conversation en toute sécurité au lieu de laisser le client sans réponse. Ne l’activez que si la fonction n’écrit vraiment jamais rien : une fonction qui crée des enregistrements doit rester désactivée, afin qu’une nouvelle tentative ne puisse jamais l’exécuter deux fois par accident.

Servir le résultat mis en cache lors d’appels répétés. Lorsque l’IA appelle à nouveau la fonction avec les mêmes entrées (par exemple, si le client pose deux fois la même question), le résultat précédent est réutilisé au lieu d’appeler à nouveau votre point de terminaison. Les résultats mis en cache sont conservés jusqu’à 24 heures, et un appel avec des entrées différentes interroge toujours votre point de terminaison.

Nombre max d’exécutions par conversation. Un plafond strict sur le nombre de fois que la fonction peut être exécutée au sein d’une même conversation. Réglez-le sur 1 pour les fonctions qui ne doivent être déclenchées qu’une seule fois par chat — générer un devis, déclencher un rappel, démarrer une automatisation. Lorsque le plafond est atteint, l’IA est informée que la fonction a déjà été exécutée et reçoit le résultat le plus récent, afin qu’elle puisse toujours répondre au client au lieu de rester silencieuse.

Nombre max d’exécutions par fenêtre de temps. Une limite de débit dans le temps : par exemple, au maximum 5 exécutions en 60 minutes. Utile pour les fonctions qui appellent des services tiers payants ou déclenchent des automatisations plus lourdes. Les deux cases doivent être remplies ensemble (un nombre d’exécutions et une fenêtre en minutes, jusqu’à 7 jours).

Quelques points à noter :

  • Les limites ne comptent que les exécutions réussies. Un appel qui a échoué du côté de votre point de terminaison n’entame pas le quota.
  • Lorsqu’une exécution est bloquée par une limite, le client n’est jamais laissé sans réponse — l’IA est informée de la raison et travaille avec les informations dont elle dispose déjà.
  • Les limites s’appliquent partout où la fonction est exécutée : chats réguliers sur tous les canaux, et fonctions gérées par une automatisation. Les conversations de test dans « Essayer » ne sont ni comptées ni limitées.

Outils de bot intégrés

En plus des fonctions personnalisées que vous créez vous-même, la plateforme est fournie avec une bibliothèque d’outils prédéfinis que le bot IA peut utiliser pendant une conversation. Ceux-ci couvrent les actions les plus courantes dont un bot a besoin — alerter un coéquipier, réserver un rendez-vous, étiqueter un contact, rechercher sur votre site web, planifier un suivi, et plus encore — afin que vous n’ayez pas à les configurer à partir de zéro.

Le bot décide quand utiliser chaque outil en fonction de ce qui se passe dans la conversation et de la configuration de votre agent (et de la campagne qui lui est associée). La plupart de ces outils s’activent automatiquement lorsque la fonctionnalité associée est activée (par exemple, les outils de réservation ne deviennent disponibles qu’une fois que vous avez connecté un calendrier et activé les réservations).

Coût en crédits : Chaque appel d’outil est facturé selon le niveau de qualité IA de votre agent, et les fonctions personnalisées que vous créez vous-même sont facturées de la même manière :

Niveau de qualité IA Crédits par appel d’outil Avec votre propre clé Anthropic (BYOK) connectée
Pro 1 crédit 0 crédit — s’exécute sur votre clé
Économique (obsolète) 0,5 crédit 0 crédit — s’exécute sur votre clé
Max 0,25 crédit toujours 0,25 crédit, facturé même avec votre propre clé connectée, car Max s’exécute sur notre propre modèle
Mini 0,15 crédit toujours 0,15 crédit, facturé même avec votre propre clé connectée, car Mini s’exécute sur notre propre modèle

Outils d’équipe et de tâches

Outil Ce qu’il fait Quand le bot l’utilise
Alerter un membre de l’équipe Met le bot en pause pour ce contact et envoie un e-mail à votre équipe pour signaler qu’une intervention humaine est nécessaire. Le chat est marqué pour qu’un coéquipier puisse le prendre en charge. Lorsque le client demande un humain, est frustré ou demande quelque chose que le bot n’est pas autorisé ou capable de répondre.
Créer une tâche Crée une nouvelle tâche sur votre tableau de tâches, éventuellement liée au contact et à la conversation. Le bot continue de répondre normalement — la tâche est juste une note pour que votre équipe assure le suivi. Pour les éléments non urgents comme une demande de fonctionnalité, une opportunité de vente incitative ou un rappel que l’équipe doit gérer plus tard.
Suggérer une mise à jour de la FAQ Lorsque le bot rencontre une question à laquelle il ne peut pas bien répondre, il crée une tâche demandant à votre équipe d’ajouter une réponse à la base de connaissances. Lorsqu’un contact demande quelque chose qui n’est pas couvert par vos FAQ existantes — afin que la lacune soit corrigée pour la prochaine fois.
Ajouter du contexte à une suggestion de FAQ Si un autre contact pose plus tard une question similaire sous un angle différent, le bot ajoute ce contexte à la suggestion de FAQ existante au lieu de créer une tâche en double. Automatique — garde votre liste de tâches propre lorsque plusieurs personnes soulèvent la même lacune de connaissances.

Outils de contact

Outil Ce qu’il fait Quand le bot l’utilise
Étiquetage S’exécute automatiquement après chaque réponse du bot — ce n’est pas un outil que le bot en contact avec le client décide d’appeler. Le système examine la conversation récente et applique les étiquettes pertinentes, en réutilisant vos étiquettes existantes si possible (et en n’en créant une nouvelle qu’en cas de besoin). Automatique — chaque fois que la conversation révèle quelque chose qui mérite une segmentation, comme l’intérêt, l’intention, la qualité du prospect ou la langue.
Mettre à jour le nom du contact Enregistre le prénom et/ou le nom de famille du contact lorsqu’il les partage. Lorsque le client se présente ou corrige un nom.
Mettre à jour l’e-mail du contact Enregistre l’adresse e-mail du contact lorsqu’il la partage. Lorsque le client fournit un e-mail — pour les newsletters, les reçus, les recherches de compte, etc.

Outils de rendez-vous et de réservation

Ces outils ne sont disponibles que lorsque les réservations sont activées sur la campagne liée à votre agent et qu’un type d’événement de calendrier est configuré.

Outil Ce qu’il fait Quand le bot l’utilise
Vérifier les créneaux disponibles Recherche les heures libres dans votre calendrier connecté pour une date ou une plage de dates donnée. Lorsque le client souhaite réserver et que le bot doit proposer une disponibilité réelle.
Prendre un rendez-vous Crée le rendez-vous dans votre calendrier et confirme la réservation au client. Une fois que le client a confirmé une date et une heure précises.
Déplacer un rendez-vous Reprogramme un rendez-vous existant à une nouvelle date et heure. Lorsque le client demande à reprogrammer.
Annuler un rendez-vous Annule un rendez-vous existant. Lorsque le client demande à annuler.
Rechercher des rendez-vous Récupère les rendez-vous existants d’un contact afin que le bot sache ce qui est déjà prévu. Lorsque le client demande « quand est mon rendez-vous ? » ou avant de proposer de reprogrammer.

Outils de connaissances et Web

Outil Ce qu’il fait Quand le bot l’utilise
Rechercher sur votre site web Analyse les URL que vous avez ajoutées à la liste des URL dynamiques de la campagne pour trouver des pages produits, des articles ou d’autres contenus répondant à la question du client. Disponible uniquement lorsque la Recherche Web IA est activée et que vous avez ajouté au moins une URL dynamique. Si la recherche Web IA est désactivée, le bot ne peut pas lire les pages ou les liens, même ceux que le client colle dans le chat. Lorsque le client pose une question sur un sujet probablement présent sur votre site web : produits, tarifs, emplacements, politiques.
Vérifier un lien Lit le contenu d’une URL spécifique afin que le bot puisse répondre aux questions concernant cette page. Disponible uniquement lorsque la Recherche Web IA est activée et que vous avez ajouté au moins une URL dynamique. Si la recherche Web IA est désactivée, le bot ne peut pas lire les pages ou les liens, même ceux que le client colle dans le chat. Lorsque le client partage un lien ou pose une question sur une page spécifique de votre site.
Rechercher sur le Web Effectue une recherche Google publique et renvoie les meilleurs résultats, afin que le bot puisse répondre à des questions en dehors de votre propre contenu. Lorsque le client pose une question générale (ex. : itinéraires, informations publiques) qui ne figure pas dans votre base de connaissances. Utilisé uniquement si la recherche web est activée.

Outils de suivi

Ces outils nécessitent que les suivis soient activés sur la campagne liée à votre Agent.

Outil Ce qu’il fait Quand le bot l’utilise
Planifier un suivi intelligent Planifie un message de suivi intelligent en utilisant votre séquence de suivi ; choisit le modèle et le moment appropriés en fonction de la conversation. Lorsque le client ne répond plus ou demande au bot de « revenir plus tard ».
Planifier un suivi Planifie un suivi de base à un moment précis. Lorsque le bot doit faire avancer la conversation à un moment défini.

Exécuteur de fonctions personnalisées

Outil Ce qu’il fait Quand le bot l’utilise
Exécuter une fonction personnalisée Exécute l’une des fonctions personnalisées que vous avez créées et attribuées à l’Agent (voir le reste de cette page). Lorsque la demande du client correspond à l’objectif de l’une de vos fonctions personnalisées.

Outils de réservation de restaurant (Zenchef et Formitable)

Ces outils ne sont disponibles que lorsqu’une intégration Zenchef ou Formitable est connectée. Ils permettent au bot de gérer les réservations de restaurant de bout en bout.

Outil Ce qu’il fait Quand le bot l’utilise
Vérifier la disponibilité du restaurant Recherche les créneaux de réservation ouverts pour une date, un nombre de personnes et (facultatif) une zone de salle donnés. Lorsqu’un client demande à réserver une table.
Créer une réservation de restaurant Crée une nouvelle réservation. Une fois que le client a confirmé un créneau spécifique.
Mettre à jour une réservation de restaurant Modifie la date, l’heure, le nombre de personnes ou les notes d’une réservation existante. Lorsque le client demande à modifier sa réservation.
Annuler ou modifier le statut de la réservation Annule une réservation ou met à jour son statut (ex. : confirmé, non-présentation). Lorsque le client annule, ou lorsque le bot doit marquer un changement de statut.
Rechercher des réservations Trouve les réservations existantes correspondant à des critères tels que le nom, l’e-mail ou la date. Lorsqu’un client habitué pose une question sur une réservation existante.
Mettre à jour le profil client Met à jour le profil du client dans le système du restaurant (préférences, notes, coordonnées). Lorsque le client partage des préférences alimentaires, un nouveau numéro de téléphone ou d’autres informations au niveau du profil.
Lister les produits du restaurant Récupère la liste des menus, menus fixes ou suppléments disponibles à la réservation. Lorsque le client demande « quels menus fixes proposez-vous ? » ou que le bot doit joindre un menu à une réservation.

Activer et désactiver les outils

La plupart des outils sont contrôlés dans l’onglet Capacités IA de l’Agent (ou à l’étape Capacités IA de la campagne, si vous travaillez à partir d’une campagne classique) :

  • Outils de réservation : s’activent lorsque vous activez les réservations et connectez un calendrier. Il s’agit pour l’instant d’un paramètre par campagne, avec un lien direct vers l’étape correspondante de la campagne depuis l’onglet Capacités IA de l’Agent.
  • Outils de suivi : s’activent lorsque vous activez les suivis.
  • Outils de restauration : s’activent lorsque vous connectez un compte Zenchef ou Formitable.
  • Recherche Web : possède son propre bouton d’activation dans l’onglet FAQ et connaissances.
  • Outils de tâches : peuvent être désactivés par Agent avec le bouton Autoriser l’IA à créer des tâches (ils sont activés par défaut ; l’interrupteur Tâches au niveau du compte dans Paramètres → Profil → Fonctionnalités désactive le système de tâches partout).
  • Outils de mise à jour des contacts : sont contrôlés dans le même onglet Capacités IA (détermine si l’IA peut renommer des contacts ou enregistrer des informations supplémentaires collectées sur eux).
  • Outils d’alerte : sont toujours disponibles ; le tagging s’exécute automatiquement après chaque réponse du bot (ce n’est pas un outil que le bot choisit d’appeler).

Si vous souhaitez que le bot cesse d’utiliser un outil intégré spécifique, le moyen le plus simple consiste à désactiver la fonctionnalité sous-jacente (par exemple, désactivez les réservations pour désactiver tous les outils de réservation).


Fonctions gérées par une automatisation

Certaines entrées de votre page Fonctions personnalisées peuvent porter un badge Géré par une automatisation. Elles n’ont pas été créées ici — elles proviennent d’une automatisation avec un déclencheur Fonction d’agent IA, qui confère à votre agent une capacité dont vous construisez les étapes visuellement sur le canevas d’automatisation au lieu de pointer vers une adresse web externe.

Une fonction gérée est prise en charge pour vous : son nom, sa description et ses champs suivent toujours ce qui est défini sur le déclencheur de l’automatisation. Elle ne peut donc pas être modifiée ou supprimée depuis cette page — utilisez son lien Ouvrir l’automatisation pour modifier l’automatisation elle-même. Vous pouvez toujours choisir quels agents en disposent de la manière habituelle : dans l’onglet Capacités IA d’un agent, elle apparaît aux côtés des autres capacités de l’agent avec un bouton marche/arrêt standard (si son automatisation est en pause, la ligne l’indique — la capacité devient active lorsque l’automatisation est activée). Tout le reste se comporte comme n’importe quelle autre fonction personnalisée : l’IA décide quand l’appeler, collecte les détails que vous avez définis et peut utiliser la réponse de l’automatisation dans la même conversation.

Si vous devez choisir entre les deux : dirigez une fonction personnalisée classique vers un système qui possède déjà une adresse à appeler ; créez une automatisation avec un déclencheur de fonction d’agent IA lorsque le travail est quelque chose que vous préférez assembler par étapes — effectuer une recherche dans une feuille de calcul ou une base de données, créer une branche selon une condition, créer des enregistrements — sans avoir à gérer votre propre serveur. Voir Automatisations.


Exigences du plan

Les fonctions personnalisées sont disponibles sur les plans qui incluent la fonctionnalité de fonctions personnalisées. Vérifiez votre abonnement pour confirmer la disponibilité.


Étapes suivantes

  • Connecter des serveurs MCP à votre bot — un ensemble d’outils prêts à l’emploi plutôt qu’une fonction à la fois.
  • Agents IA — la page principale du groupe AI Studio où résident les fonctions personnalisées, et où les fonctions personnalisées sont assignées à un bot.