Webhooks
Les webhooks permettent à l’assistant d’interagir avec des systèmes externes et de les intégrer à votre workflow. Avec les webhooks, l’assistant peut soit récupérer des informations à jour (par ex. données client, produits disponibles ou créneaux libres) soit envoyer/transmettre des informations collectées (par ex. après qu’un utilisateur a terminé une transaction/réservation).
Comment configurer des webhooks
Les webhooks peuvent être configurés directement dans une fonction/action en activant le switch webhook et en fournissant l’URL du webhook comme indiqué ci‑dessous :

Le bot vocal enverra alors les paramètres extraits comme corps de requête dans une requête POST.
Post‑traitement
Si le webhook est utilisé pour récupérer des données, il est parfois nécessaire de transformer ces données, par ex. filtrer des éléments ou formater des valeurs.
Si un post‑traitement est nécessaire, le champ Post hook JS function call peut être utilisé pour spécifier le nom d’une fonction qui doit être appelée juste après que le webhook a récupéré les données.
Le paramètre de la fonction sera le corps de la réponse du webhook : un objet JSON imbriqué si le corps est un JSON valide ; sinon une chaîne (si le corps n’a pas pu être analysé comme JSON).
Exécution programmatique des webhooks
Les webhooks peuvent aussi être exécutés par programmation depuis n’importe quel extrait de code JavaScript à tout moment comme suit :
function myFunction(params) {
response = webhook("https://mydomain.com/apiEndpoint", {"sample": "data"});
return response;
}Exemples
Envoyer un corps JSON avec un en-tête de requête personnalisé :
webhook("https://httpbingo.org/json", {"test": "hello world"}, {
headers: {"Token": "xyz"}
});Renvoyer la réponse complète, y compris les en-têtes de réponse, en définissant raw sur true :
const raw = webhook("https://httpbingo.org/json", {"test": "hello world"}, {
headers: {"Token": "xyz"},
raw: true
});
log(raw);Envoyer des données de formulaire encodées dans l’URL en fournissant un corps de type chaîne et en définissant le type de contenu :
webhook("https://httpbingo.org/post", "test=we343", {
headers: {"Content-Type": "application/x-www-form-urlencoded"}
});Appeler des points de terminaison qui renvoient un statut d’erreur HTTP, comme 500 ou 404 :
webhook("https://httpbingo.org/status/500");
webhook("https://httpbingo.org/status/404");Définir un délai d’expiration de la requête en secondes :
webhook("http://127.0.0.1:9999/timeout", {timeout: 3});Paramètres
| Paramètre | Description |
|---|---|
| url | L’URL incluant tous les paramètres GET à appeler |
| body | Le corps / un objet JavaScript qui sera envoyé comme corps des requêtes POST/PUT |
| options (Optionnel) | method: "get"|"put"|"post"|"delete"|"head" |
| options (Optionnel) | headers : un objet contenant des en-têtes HTTP supplémentaires |
| options (Optionnel) | ttlCache: 0 (si la requête doit être mise en cache) |
| options (Optionnel) | raw: true|false - si les en-têtes de réponse doivent aussi être renvoyés |
| options (Optionnel) | timeout : le délai d’expiration de la requête en secondes |