In diesem Dokument wird erläutert, wie Du deinen Bot in dein Backend oder in Dienste von Drittanbietern integrieren kannst. Diese Integration ermöglicht es dir, Daten, die während der Konversation mit dem Bot gesammelt wurden, zu teilen oder den Bot mit zuvor erfassten Daten zu erweitern.
Der Engage Bot Builder bietet eine Lösung zur Integration deiner Konversationsagenten in deine Backend-Geschäftslogik, APIs und Datenbanken. Diese Integration ermöglicht es dir, kontextbezogene, personalisierte und umsetzbare Konversationserlebnisse für deine Benutzer zu erstellen.
Die API ist im Schritt "Action" verfügbar und ermöglicht es dir, Chatbot-Nachrichten auf der Grundlage von benutzerspezifischen Informationen und anderen externen Daten zu erstellen. Darüber hinaus kannst Du deine Benutzer auf der Grundlage deiner eigenen Businesslogik zu verschiedenen Konversationsabläufen umleiten. Du kannst diese Lösung auf jeder Plattform verwenden, die den Empfang und die Beantwortung von HTTP-Anfragen unterstützt.
Sessiondaten werden zunächst in der Benutzersitzung gespeichert, so dass Du diese Daten in Nachrichten, die im Array von Nachrichten definiert sind, oder in Nachrichten, die in einem als nextDialogstate definierten Dialogzustand in der API-Antwort definiert sind, verwenden kannst. Anschließend werden die Nachrichten gesendet, und der Benutzer wird zum nextDialogstate weitergeleitet. Alle Felder sind optional.
Engage Bot Builder bietet ein API-Plugin in der Liste der Aktions-Plugins, das Du im Dialogstatus in einem deiner Konversationsabläufe konfigurieren kannst.
Das API-Plugin sendet eine Anfrage an deinen Backend-Server. Es unterstützt verschiedene Konfigurationseinstellungen:
HTTPS-Methode und API-Endpunkt-URL
Das Plugin unterstützt drei HTTPS-Methoden
Füge Abfrageparameter und/oder einen Nutzdatenrumpf hinzu, indem Du Schlüssel-Wert-Kombinationen definierst. Jeder Schlüssel kann drei mögliche Wertetypen haben:
👉🏼 Du kannst nur einen Anfragekörper definieren, wenn dein Anfragemethode POST oder DELETE ist.
In diesem Beispiel, das eine Geldüberweisung darstellt, senden wir fünf Schlüssel im Body-Payload einer HTTPS-POST-Anforderung an unseren API-Endpunkt.
Daraus ergibt sich der folgende Body-Payload.
{
"amount": 500,
"destination": "Elon Musk",
"accountType": "savings_account",
"transactionSuccess": "successful transaction",
"transactionNoMoney": "unsuccessful transaction",
"test": 5
}
Neben den Query- und Body-Parametern unterstützt der Engage Bot Builder auch API-Header in seinen POST-, GET- und DELETE-Anfragen. Header können mit der gleichen Kombination aus Schlüssel, Typ und Wert wie die anderen Parameter hinzugefügt werden.
Wenn die API-Antwort Agentennachrichten an den Benutzer zurücksendet und der Agent mehrere Sprachen unterstützt, vergessen Sie nicht, die Benutzersprache in der Anfrage zu senden. Die Benutzersprache ist in der Benutzersitzungsvariablen 'locale' verfügbar. Ihr Backend-Dienst kann diese Spracheinstellung verwenden, um die Antwort in der vom Benutzer bevorzugten Sprache zurückzusenden.
Du musst das API-Plugin nicht so konfigurieren, dass es auf eine Antwort wartet. Dies geschieht automatisch, und das API-Plugin wartet auf das, was deine API zurückgibt. Das API-Plugin unterstützt 3 Arten von Rückgabevariablen:
Die oben genannten 3 Optionen werden in der oben gezeigten Reihenfolge ausgeführt: Zuerst werden Sitzungsvariablen gesetzt, dann werden Nachrichten gesendet und dann wird zum nächsten Dialogzustand gesprungen. Ein JSON-Beispiel für diese 3 Fälle findest Du im nachstehenden Codeschnipsel:
const result = {
session: {
namespace: 'myNamespace',
data: { variable: 'test123' },
},
messages: [{ type: 'text', config: { textMessages: [{ text: 'random message 1' }] } }],
action: {
nextDialogstate: 'dialogstate-123-abc',
},
};
👉🏼 Vergewissere dich, dass Du den richtigen Inhaltstyp in der Kopfzeile angibst: content-type: application/json;
Beispiel
Dieses Beispiel veranschaulicht einen API-Endpunkt für die Überweisung eines Geldbetrags von einem Konto (Normal- oder Sparkonto) an eine Person. Je nach Ergebnis der Transaktion wird der Benutzer zu einem bestimmten Dialogstatus weitergeleitet.
app.post('/transaction', function (req, res) {
let nextDialogstate;
const { amount, destination, accountType, transactionSuccess, transactionNoMoney = req.body;
// get account type (regular - savings account)
const account = account_synonyms[accountType];
if( accounts[account].amount + accounts[accounthlimit — amount < ) {
nextDialogstate = transactionNoMoney
} else {
// transfer amount
accounts[account].amount —= amount;
nextDialogstate = transactionSuccess;
}
res.json({
action: {
nextDialogstate,
},
session: {
namespace: 'account',
data: {
limit: accounts[account].limit,
amount: accounts[account].amount
}
},
})
});
Wir erhalten das Body-Payload-Objekt wie im API-Plugin definiert. Wenn der Benutzer keinen ausreichenden Geldbetrag auf seinem Konto hat, setzen wir den nächsten Dialogstatus auf 'transactionNoMoney'. Andernfalls subtrahieren wir den gewünschten Betrag und setzen den nächsten Dialogstatus auf "transactionSuccess".
Als Antwort auf die Anfrage senden wir den nächsten Dialogstatus, um den Benutzer zu diesem Status umzuleiten, und wir speichern den Geldbetrag und das Limit seines Kontos in seinen Sitzungsdaten unter dem Namensraum account. Diese Daten können in diesem nächsten Dialogzustand verwendet werden.
Alternativ kannst Du die Chatnachricht auch als Antwort auf die Anfragen des API-Plugins senden, indem Sie den Nachrichtenschlüssel verwenden.
👉 Weitere API-Dokumentation findest Du in unserer API-Dokumentation hier.