VoiceBooker

Webhook

I webhook permettono all’assistente di interagire con sistemi esterni e integrarli nel tuo workflow. Con i webhook, l’assistente può recuperare informazioni aggiornate (ad es. dati cliente, prodotti disponibili o slot liberi) oppure inviare/trasmettere informazioni raccolte (ad es. dopo che un utente ha completato una transazione/prenotazione).

Come configurare i webhook

I webhook possono essere configurati direttamente all’interno di una funzione/azione attivando l’interruttore webhook e fornendo l’URL del webhook come mostrato di seguito:

Il bot vocale invierà quindi i parametri estratti come corpo della richiesta in una POST.

Post‑processing

Se il webhook è usato per recuperare dati, a volte è necessario trasformare i dati, ad es. filtrare elementi o formattare valori.

Se è necessario un post‑processing, il campo Post hook JS function call può essere usato per specificare il nome di una funzione da chiamare subito dopo che il webhook ha recuperato i dati.

Il parametro della funzione sarà il corpo della risposta del webhook: un oggetto JSON annidato se il corpo è un JSON valido; altrimenti una stringa (se il corpo non è stato parsato come JSON).

Esecuzione programmatica dei webhook

I webhook possono anche essere eseguiti programmaticamente da qualsiasi snippet di codice JavaScript in qualsiasi momento come segue:

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

Esempi

Invia un corpo JSON con un header di richiesta personalizzato:

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

Restituisci la risposta completa, inclusi gli header della risposta, impostando raw su true:

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

Invia dati di un modulo codificati nell’URL fornendo un corpo stringa e impostando il tipo di contenuto:

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

Chiama endpoint che restituiscono uno stato di errore HTTP, come 500 o 404:

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

Imposta un timeout della richiesta in secondi:

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

Parametri

ParametroDescrizione
urlL’URL che include tutti i parametri GET da chiamare
bodyIl corpo/un oggetto JavaScript che verrà inviato come corpo nelle richieste POST/PUT
options (Opzionale)method: "get"|"put"|"post"|"delete"|"head"
options (Opzionale)headers: un oggetto contenente header HTTP aggiuntivi
options (Opzionale)ttlCache: 0 (se la richiesta deve essere messa in cache)
options (Opzionale)raw: true|false - se devono essere restituiti anche gli header di risposta
options (Opzionale)timeout: il timeout della richiesta in secondi

On this page