VoiceBooker

Webhooks

Webhooks ermöglichen es dem Assistenten, mit externen Systemen zu interagieren und diese zu integrieren. Mit Webhooks kann der Assistent entweder aktuelle Informationen abrufen (z. B. Kundendaten, verfügbare Produkte oder freie Termine) oder gesammelte Informationen senden/übermitteln (z. B. nachdem der Benutzer eine Transaktion/Buchung abgeschlossen hat).

So konfigurieren Sie Webhooks

Webhooks können direkt innerhalb einer Aktion/Funktion, die der Assistent ausführt, konfiguriert werden, indem Sie den Webhook-Schalter aktivieren und die Webhook-URL wie unten gezeigt angeben:

Der Voicebot sendet die als Parameter extrahierten Daten als Body in einem POST-Request.

Post Processing

Wenn der Webhook zum Abrufen von Daten verwendet wird, ist es manchmal notwendig, die Daten zu transformieren, z. B. Einträge zu filtern oder zu formatieren.

Wenn Post Processing erforderlich ist, kann das Feld Post hook JS function call verwendet werden, um den Namen einer Funktion anzugeben, die direkt nach dem Abrufen der Daten durch den Webhook aufgerufen werden soll.

Der Funktionsparameter ist ein verschachteltes JSON-Objekt mit dem vom Webhook zurückgegebenen Body, sofern es sich um ein JSON-Objekt handelt. Andernfalls ist der Parameter ein String (wenn der Body nicht als JSON geparst werden konnte).

Programmgesteuerte Ausführung von Webhooks

Webhooks können auch via Code in jedem JavaScript-Code-Snippet zu jedem Zeitpunkt wie folgt ausgeführt werden:

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

Beispiele

Senden Sie einen JSON-Body mit einem benutzerdefinierten Request-Header:

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

Geben Sie die vollständige Antwort einschließlich der Response-Header zurück, indem Sie raw auf true setzen:

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

Senden Sie URL-kodierte Formulardaten, indem Sie einen String als Body und den passenden Content-Type angeben:

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

Rufen Sie Endpunkte auf, die einen HTTP-Fehlerstatus wie 500 oder 404 zurückgeben:

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

Legen Sie ein Request-Timeout in Sekunden fest:

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

Parameter

ParameterBeschreibung
urlDie URL einschließlich aller GET-Parameter, die aufgerufen werden soll
bodyDer Body/ein JavaScript-Objekt, das als Body in POST/PUT-Requests gesendet wird
options (Optional)method: "get"|"put"|"post"|"delete"|"head"
options (Optional)headers: ein Objekt mit zusätzlichen HTTP-Request-Headern
options (Optional)ttlCache: 0 (falls der Request gecacht werden soll)
options (Optional)raw: true|false - falls auch die Header mit zurückgegeben werden sollen
options (Optional)timeout: das Request-Timeout in Sekunden

On this page