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
| Parametro | Descrizione |
|---|---|
| url | L’URL che include tutti i parametri GET da chiamare |
| body | Il 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 |