VoiceBooker

Webhooks

Los webhooks permiten que el asistente interactúe con sistemas externos e integrarlos en tu flujo de trabajo. Con webhooks, el asistente puede recuperar información actualizada (p. ej., datos de clientes, productos disponibles o turnos libres) o enviar/trasmitir información recopilada (p. ej., después de que un usuario completó una transacción/reserva).

Cómo configurar webhooks

Los webhooks pueden configurarse directamente dentro de una función/acción activando el interruptor webhook y proporcionando la URL del webhook como se muestra a continuación:

El bot de voz enviará los parámetros extraídos como cuerpo de la solicitud en una petición POST.

Post‑procesamiento

Si el webhook se usa para recuperar datos, a veces es necesario transformar esos datos, por ejemplo filtrar elementos o formatear valores.

Si se necesita post‑procesamiento, el campo Post hook JS function call puede usarse para especificar el nombre de una función que debe llamarse justo después de que el webhook haya recuperado los datos.

El parámetro de la función será el cuerpo de la respuesta del webhook: un objeto JSON anidado si el cuerpo es JSON válido; de lo contrario, una cadena (si el cuerpo no pudo parsearse como JSON).

Ejecución programática de webhooks

Los webhooks también pueden ejecutarse programáticamente desde cualquier fragmento de código JavaScript en cualquier momento de la siguiente manera:

function myFunction(params) {
    response = webhook("https://mydomain.com/apiEndpoint", {"sample": "data"});
    return response;
}

Ejemplos

Envía un cuerpo JSON con un encabezado de solicitud personalizado:

webhook("https://httpbingo.org/json", {"test": "hello world"}, {
    headers: {"Token": "xyz"}
});

Devuelve la respuesta completa, incluidos los encabezados de respuesta, estableciendo raw en true:

const raw = webhook("https://httpbingo.org/json", {"test": "hello world"}, {
    headers: {"Token": "xyz"},
    raw: true
});
log(raw);

Envía datos de formulario codificados en URL proporcionando un cuerpo de tipo cadena y estableciendo el tipo de contenido:

webhook("https://httpbingo.org/post", "test=we343", {
    headers: {"Content-Type": "application/x-www-form-urlencoded"}
});

Llama a endpoints que devuelven un estado de error HTTP, como 500 o 404:

webhook("https://httpbingo.org/status/500");
webhook("https://httpbingo.org/status/404");

Establece un tiempo de espera de la solicitud en segundos:

webhook("http://127.0.0.1:9999/timeout", {timeout: 3});

Parámetros

ParámetroDescripción
urlLa URL que incluye todos los parámetros GET que deben llamarse
bodyEl cuerpo/un objeto JavaScript que se enviará como cuerpo en solicitudes POST/PUT
options (Opcional)method: "get"|"put"|"post"|"delete"|"head"
options (Opcional)headers: un objeto que contiene encabezados HTTP de solicitud adicionales
options (Opcional)ttlCache: 0 (si la solicitud debe almacenarse en caché)
options (Opcional)raw: true|false - si también deben devolverse los encabezados de respuesta
options (Opcional)timeout: el tiempo de espera de la solicitud en segundos

On this page