VoiceBooker

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ètreDescription
urlL’URL incluant tous les paramètres GET à appeler
bodyLe 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

On this page