Présentation
Les actions API personnalisées permettent à vos agents IA de s’intégrer avec des systèmes externes pendant les conversations. Vos agents peuvent récupérer des données clients, mettre à jour des enregistrements CRM, vérifier les stocks, créer des tickets et exécuter la logique métier - le tout en temps réel pendant qu’ils parlent avec les clients.

- Configurez l’endpoint API - Définissez la méthode HTTP, l’URL, l’authentification, les en-têtes et le corps de la requête
- Définissez les variables - Spécifiez les informations que l’agent doit collecter avant d’appeler l’API
- L’agent l’utilise - Pendant la conversation, l’agent collecte les variables et appelle votre API
- L’API répond - Votre système renvoie des données que l’agent utilise pour poursuivre la conversation
Les actions personnalisées s’exécutent de manière synchrone pendant les conversations. Pour les opérations qui ne nécessitent pas de réponses immédiates (journalisation, analytique, traitement post-appel), utilisez plutôt les Webhooks.
Exemple de flux
Exemple sécurisé avec vérification
Pour les recherches de données sensibles, vérifiez d’abord l’identité du client :- Première action : “Vérifier client” - authentifie en utilisant l’ID client + PIN/mot de passe
- Deuxième action : “Rechercher commande” - exécutée uniquement si la vérification réussit
Créer une action personnalisée
Accéder aux actions
Allez dans votre agent → Capacités → Actions → Ajouter action → API personnalisée
Configurer les informations de base
- Nom : Nom descriptif (ex : “Rechercher statut commande”)
- Description : Quand l’utiliser (10-200 caractères)
Ajouter des variables
Définissez les informations que l’agent doit collecter (voir section Variables)
Configuration
Onglet Endpoint
Méthode HTTP (Obligatoire)- GET - Récupérer des données
- POST - Créer des enregistrements
- PUT - Remplacer des enregistrements entiers
- PATCH - Mettre à jour des champs spécifiques
- DELETE - Supprimer des enregistrements
- URL API complète :
https://api.company.com/customers - Supporte les variables de template :
https://api.company.com/orders/{{order_id}} - Ajoute automatiquement
https://si aucun protocole n’est spécifié
Onglet Authentification
Choisissez le type d’authentification :Aucune
Aucune
Aucune authentification requiseUtiliser pour :
- APIs publiques
- Endpoints internes sur réseau privé
Bearer Token
Bearer Token
Plus commun pour les APIs modernesConfiguration :Utiliser pour :
- Token : Votre token API/JWT
- Tokens d’accès OAuth 2.0
- Authentification JWT
- APIs REST modernes
Basic Auth
Basic Auth
Authentification nom d’utilisateur/mot de passeConfiguration :Utiliser pour :
- Nom d’utilisateur : Nom d’utilisateur API
- Mot de passe : Mot de passe API (masqué par des puces lors de l’édition)
- APIs héritées
- Authentification simple
En-tête
En-tête
Authentification personnalisée basée sur les en-têtesConfiguration :Utiliser pour :
- Nom de l’en-tête : ex.
X-API-Key - Valeur de l’en-tête : Votre clé API (masquée lors de l’édition)
- Authentification par clé API
- Schémas d’authentification personnalisés
Corps
Corps
Identifiants dans le corps de la requêteConfiguration :Utiliser pour :
- Nom du paramètre : ex.
api_key - Valeur du paramètre : Vos identifiants (masqués lors de l’édition)
- Schémas d’authentification non standards
- Endpoints de connexion
Onglet Paramètres
En-têtes- Ajoutez des en-têtes HTTP personnalisés (paires clé-valeur)
- Exemple :
Content-Type: application/json
- Ajoutez des paramètres de requête URL (paires clé-valeur)
- Exemple :
include=orders&limit=100
- Zone de texte JSON avec police de style Monaco
- Supporte les variables de template :
{{variable_name}} - Valide la structure JSON tout en autorisant les espaces réservés de variables
Onglet Variables
C’est la partie la plus importante. Les variables définissent les informations que votre agent doit collecter avant d’appeler l’API. Chaque variable crée un paramètre de fonction que le LLM voit et collecte pendant la conversation. Champs de variable :- Nom : Nom de la variable (ex :
order_number,customer_email) - Type : string, integer, float, boolean, date, email, phone
- Description : À quoi sert cette variable (aide le LLM à comprendre)
- Exemple : Valeur d’exemple (guide le LLM)
- Obligatoire : Basculer - si vrai, le LLM doit collecter avant d’appeler l’API
- Valeur par défaut : Utilisée si non obligatoire et non fournie
Utilisation dans les instructions
Référencez l’action par son nom et expliquez quand l’utiliser :Collection de variables
L’agent collecte automatiquement les variables obligatoires avant d’appeler l’API :Utilisation de variables optionnelles
Variables de template
Utilisez la syntaxe{{variable_name}} dans les URLs, en-têtes, paramètres de requête et corps de requête.
Variables d’action
Variables que vous avez définies dans l’onglet Variables :Variables de contexte
Disponibles automatiquement depuis l’enregistrement de contact et le contexte de l’appel : Informations de contact :Conversion de type
Les variables sont automatiquement converties selon leurs types définis :integer→ nombre en JSONfloat→ décimal en JSONboolean→ true/false en JSONstring→ chaîne entre guillemets en JSON
Tests
Tester l'endpoint indépendamment
Utilisez Postman ou cURL pour vérifier :
- L’endpoint est accessible
- L’authentification fonctionne
- Le format de requête est correct
- La réponse est comme prévu
Commencer avec des valeurs statiques
Configurez l’action avec des valeurs codées en dur d’abord (pas de variables)Vérifiez la fonctionnalité de base avant d’ajouter de la complexité
Ajouter des variables
Remplacez les valeurs codées en dur par des variablesTestez avec un enregistrement de contact qui a les champs requis
Tester dans l'agent
- Démarrez un appel web
- Déclenchez l’action via la conversation
- Vérifiez que l’agent collecte correctement les variables
- Vérifiez que l’API est appelée avec les bonnes données
- Confirmez que l’agent utilise la réponse de manière appropriée
Dépannage
401 Non autorisé
401 Non autorisé
Cause : Identifiants invalides ou mauvais type d’authentificationSolution :
- Vérifiez que les identifiants sont corrects
- Vérifiez que le type d’authentification correspond aux exigences de l’API
- Testez avec Postman en utilisant les mêmes identifiants
- Vérifiez que le token n’a pas expiré
404 Non trouvé
404 Non trouvé
Cause : URL incorrecte ou ressource inexistanteSolution :
- Vérifiez que l’URL de l’endpoint est correcte
- Vérifiez que les variables de template se remplissent correctement
- Testez d’abord avec des valeurs statiques
L'agent ne collecte pas les variables
L'agent ne collecte pas les variables
Cause : Variables non configurées ou descriptions peu clairesSolution :
- Vérifiez que les variables sont définies dans l’onglet Variables
- Ajoutez des descriptions et exemples clairs
- Définissez required=true pour les variables essentielles
- Référencez l’action par son nom exact dans les instructions
Les variables ne se remplacent pas
Les variables ne se remplacent pas
Cause : Syntaxe incorrecte ou variable inexistanteSolution :
- Utilisez la syntaxe exacte :
{{variable_name}} - Vérifiez que la variable est définie dans l’onglet Variables
- Vérifiez que l’enregistrement de contact a le champ rempli
- Définissez une valeur par défaut dans l’onglet Variables pour les variables optionnelles
Erreurs de timeout
Erreurs de timeout
Cause : L’API répond lentement (>2 minutes)Solution :
- Optimisez le temps de réponse de l’API
- Envisagez d’utiliser des webhooks pour les opérations lentes
- Mettez en cache les données fréquemment consultées
L'agent ne peut pas utiliser les données de réponse
L'agent ne peut pas utiliser les données de réponse
Cause : L’API renvoie du non-JSON ou du JSON malforméSolution :
- Vérifiez que l’API renvoie du JSON valide
- Vérifiez l’en-tête Content-Type dans la réponse
- Testez la réponse avec un validateur JSON
Meilleures pratiques de sécurité
Utiliser uniquement HTTPS
Utiliser uniquement HTTPS
Utilisez toujours des endpoints HTTPS pour chiffrer les données en transit✅
https://api.company.com/endpoint
❌ http://api.company.com/endpointSécuriser les identifiants
Sécuriser les identifiants
- Ne codez jamais les identifiants en dur dans les URLs
- Utilisez la configuration d’authentification
- Faites tourner régulièrement les clés API
- Utilisez des clés séparées pour les tests et la production
- Révoquez immédiatement les identifiants compromis
Limiter les permissions
Limiter les permissions
- Accordez les permissions API minimales nécessaires
- Utilisez des clés en lecture seule pour les actions de recherche
- Restreignez les permissions d’écriture à des endpoints spécifiques
- Surveillez l’activité inhabituelle
Valider les entrées
Valider les entrées
Votre API devrait valider toutes les entrées :
- Vérifier les tentatives d’injection
- Valider les types et formats de données
- Limiter la longueur des chaînes
- Utiliser des requêtes paramétrées
Exemples concrets
Recherche client CRM
Recherche client CRM
Scénario : Rechercher un client dans SalesforceConfiguration :
- Méthode : GET
- URL :
https://api.salesforce.com/customers/{{customer_id}} - Auth : Bearer token
- Variable :
customer_id(string, obligatoire)
Créer un ticket de support
Créer un ticket de support
Scénario : Créer un ticket dans ZendeskConfiguration :Instructions agent :
- Méthode : POST
- URL :
https://company.zendesk.com/api/v2/tickets - Auth : Basic (email/token)
- Variables :
issue_description(string),priority_level(string) - Corps :
Vérifier inventaire produit
Vérifier inventaire produit
Scénario : Vérifier la disponibilité d’un produitConfiguration :
- Méthode : GET
- URL :
https://inventory.company.com/products/{{sku}}/availability - Auth : En-tête (
X-API-Key) - Variable :
sku(string, obligatoire, exemple : “PROD-12345”)