<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>article [Neuer Bot Builder] API in Chatbot</title>
    <link>https://community.sinch.com/t5/Chatbot/Neuer-Bot-Builder-API/ta-p/13486</link>
    <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;So funktionieren benutzerdefinierte Integrationen&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Die API ist im Schritt "&lt;STRONG&gt;Action&lt;/STRONG&gt;" 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.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2023-10-19 at 14.54.45.png" style="width: 999px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4106iB70008E606DAC439/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2023-10-19 at 14.54.45.png" alt="Screenshot 2023-10-19 at 14.54.45.png" /&gt;&lt;/span&gt;
&lt;P&gt; &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Ein User tippt und sendet eine Textnachricht von einem Conversational Agent Interface-Kanal wie Facebook Messenger, Web-Chat, ... an den Engage Bot Builder.&lt;/LI&gt;
&lt;LI&gt;Die empfangene Nachricht durchläuft die NLP-Engine von Engage, um die Intent zu erkennen, und die zurückgegebene Absicht wird zusammen mit dem Benutzerkontext verwendet, um den nächsten Bot-Dialog in der Konversation abzurufen.&lt;/LI&gt;
&lt;LI&gt;Das API-Plugin von Engage kann in einen Bot-Dialog eingefügt werden, um eine API-Anfrage an Ihren Server mit verschiedenen Arten von statischen Daten und/oder Benutzersitzungsdaten zu senden.&lt;/LI&gt;
&lt;LI&gt;Dein Server kann mit einem Objekt mit drei Feldern antworten:
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Session&lt;/STRONG&gt;: Ein Sitzungsobjekt zum Speichern der abgerufenen Benutzersitzungsdaten&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Message&lt;/STRONG&gt;: Ein Array von Nachrichten, die an den Schnittstellenkanal zurückgesendet werden&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;nextDialogstate&lt;/STRONG&gt;: Eine Bot-Dialogstatus-Kennung, um den Benutzer zum nächsten Bot-Dialogstatus in einem Gesprächsablauf weiterzuleiten.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Sessiondaten&lt;/STRONG&gt; 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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;API-Plugin&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Engage Bot Builder bietet ein API-Plugin in der Liste der Aktions-Plugins, das Du im Dialogstatus in einem deiner Konversationsabläufe konfigurieren kannst.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="API (1).gif" style="width: 999px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4107i7F373C30995F2330/image-size/large?v=v2&amp;amp;px=999" role="button" title="API (1).gif" alt="API (1).gif" /&gt;&lt;/span&gt;
&lt;P&gt; &lt;/P&gt;
&lt;H3&gt;Senden der API-Anforderung&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Das API-Plugin sendet eine Anfrage an deinen Backend-Server. Es unterstützt verschiedene Konfigurationseinstellungen:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;HTTPS-Methode&lt;/LI&gt;
&lt;LI&gt;API-Endpunkt-URL&lt;/LI&gt;
&lt;LI&gt;Abfrage-Parameter&lt;/LI&gt;
&lt;LI&gt;Nutzdatenkörper (JSON)&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;HTTPS-Methode und API-Endpunkt-URL&lt;/STRONG&gt;&lt;BR /&gt;Das Plugin unterstützt drei HTTPS-Methoden&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;GET&lt;/LI&gt;
&lt;LI&gt;POST&lt;/LI&gt;
&lt;LI&gt;DELETE&lt;/LI&gt;
&lt;LI&gt;PUT&lt;/LI&gt;
&lt;LI&gt;PATCH&lt;/LI&gt;
&lt;/UL&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2023-10-19 at 20.20.31.png" style="width: 400px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4108iD594FA1EFDD4FEEA/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-10-19 at 20.20.31.png" alt="Screenshot 2023-10-19 at 20.20.31.png" /&gt;&lt;/span&gt;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H3&gt;Abfrage- und Nutzlastparameter&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Füge Abfrageparameter und/oder einen Nutzdatenrumpf hinzu, indem Du Schlüssel-Wert-Kombinationen definierst. Jeder Schlüssel kann drei mögliche Wertetypen haben:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;text&lt;/STRONG&gt;: statischer Text&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Variable&lt;/STRONG&gt;: eine Benutzersitzungsvariable. Der Wert der Variable wird als Wert für den Schlüssel gespeichert. Punkt- und Array-Notation werden unterstützt, z. B.: users[0].firstname&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;dialogstate&lt;/STRONG&gt;: Wähle einen Dialogstatus aus der Dropdown-Liste. Die Dialogstatus-ID wird als Wert für den Schlüssel gespeichert. Diese ID kann verwendet werden, um den Benutzer beim Zurücksenden der API-Antwort auf der Grundlage deiner Businesslogik zu einem bestimmten Dialogstatus umzuleiten.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":backhand_index_pointing_right:"&gt;👉🏼&lt;/span&gt; Du kannst nur einen Anfragekörper definieren, wenn dein Anfragemethode POST oder DELETE ist.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2023-10-19 at 20.12.58.png" style="width: 400px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4109i9220A606E57DCCCD/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-10-19 at 20.12.58.png" alt="Screenshot 2023-10-19 at 20.12.58.png" /&gt;&lt;/span&gt;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2023-10-19 at 20.15.12.png" style="width: 999px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4110i5CA01F1B368438E8/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2023-10-19 at 20.15.12.png" alt="Screenshot 2023-10-19 at 20.15.12.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Der &lt;STRONG&gt;Betragsschlüssel (amount key)&lt;/STRONG&gt;&amp;nbsp;hat den Wert der Benutzersitzungsvariablen transfer_amount (z. B. 500).&lt;/LI&gt;
&lt;LI&gt;Der &lt;STRONG&gt;Zielschlüssel (destinationkey)&lt;/STRONG&gt;hat den Wert der Benutzersitzungsvariablen transfer_destination (z. B. Elon Musk).&lt;/LI&gt;
&lt;LI&gt;Der &lt;STRONG&gt;accountType&lt;/STRONG&gt;-Schlüssel hat den Wert der Benutzersitzungsvariablen card_type (z. B. savings_account).&lt;/LI&gt;
&lt;LI&gt;Der Schlüssel &lt;STRONG&gt;transactionSuccess&lt;/STRONG&gt; enthält die Dialogstatuskennung für den Dialogstatus "erfolgreiche Transaktion". Diese Kennung kann in der Antwort auf diese API-Anfrage verwendet werden, um den Benutzer in einen neuen Dialogzustand umzuleiten.&lt;/LI&gt;
&lt;LI&gt;Der Schlüssel &lt;STRONG&gt;transactionNoMoney&lt;/STRONG&gt; enthält die Dialogstatus-Kennung für den Dialogstatus "erfolglose Transaktion". Diese Kennung kann in der Antwort auf diese API-Anfrage verwendet werden, um den Benutzer zu einem neuen Dialogstatus umzuleiten.&lt;/LI&gt;
&lt;LI&gt;Der &lt;STRONG&gt;Testschlüssel&lt;/STRONG&gt; hat den Wert "5".&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Daraus ergibt sich der folgende Body-Payload.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;{
"amount": 500,
"destination": "Elon Musk",
"accountType": "savings_account",
"transactionSuccess": "successful transaction",
"transactionNoMoney": "unsuccessful transaction",
"test": 5
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;API-Kopfzeilen&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2023-10-19 at 20.26.04.png" style="width: 400px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4111iB16E03F911D42CE1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-10-19 at 20.26.04.png" alt="Screenshot 2023-10-19 at 20.26.04.png" /&gt;&lt;/span&gt;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H3&gt;Mehrsprachig&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Senden der API-Antwort&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Session&lt;/STRONG&gt;: Ein Session-Objekt zum Speichern von Daten in der Benutzersitzung. Die Session hat zwei obligatorische Felder: Namespace: ein Schlüsselnamespace. Das Datenobjekt wird in diesem Namespace-Schlüssel in der Benutzersitzung gespeichert. Du kannst auf dieses Objekt in Chatlayer.ai zugreifen, indem du die Interpolation benutzt: *{namespace.dataKey}*data: ein Objekt, das in den Daten der Benutzersitzung im Namespace-Key gespeichert wird.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Message&lt;/STRONG&gt;: Ein Array von Nachrichten, die an den Benutzerschnittstellenkanal zurückgesendet werden. Die Struktur der verschiedenen Nachrichtentypen wie Text, Schaltflächen, Schnellantworten, Karussells, Listen, Medien, ... ist in der Struktur der Chatnachrichten verfügbar.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;action&lt;/STRONG&gt;: Ein Objekt, das eine Aktion definiert, z. B. die Weiterleitung des Benutzers zum nächsten Dialogstatus in der Konversation.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;nextDialogstate&lt;/STRONG&gt;: Ein Dialogstatus-Identifikator, der den Benutzer zum nächsten Dialogstatus im Gesprächsablauf weiterleitet.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;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:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;const result = {
session: {
namespace: 'myNamespace',
data: { variable: 'test123' },
},
messages: [{ type: 'text', config: { textMessages: [{ text: 'random message 1' }] } }],
action: {
nextDialogstate: 'dialogstate-123-abc',
},
};&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":backhand_index_pointing_right:"&gt;👉🏼&lt;/span&gt; Vergewissere dich, dass Du den richtigen Inhaltstyp in der Kopfzeile angibst: content-type: application/json;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Beispiel&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;app.post('/transaction', function (req, res) {
let nextDialogstate;
const { amount, destination, accountType, transactionSuccess, transactionNoMoney = req.body;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;// get account type (regular - savings account)
const account = account_synonyms[accountType];&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;if( accounts[account].amount + accounts[accounthlimit — amount &amp;lt; ) {
nextDialogstate = transactionNoMoney
} else {
// transfer amount
accounts[account].amount —= amount;
nextDialogstate = transactionSuccess;
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;res.json({
action: {
nextDialogstate,
},
session: {
namespace: 'account',
data: {
limit: accounts[account].limit,
amount: accounts[account].amount
}
},
})
});&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2023-10-19 at 20.17.54.png" style="width: 999px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4112i6D00B657EE51800C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2023-10-19 at 20.17.54.png" alt="Screenshot 2023-10-19 at 20.17.54.png" /&gt;&lt;/span&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;Alternativ kannst Du die Chatnachricht auch als Antwort auf die Anfragen des API-Plugins senden, indem Sie den Nachrichtenschlüssel verwenden.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":backhand_index_pointing_right:"&gt;👉&lt;/span&gt; Weitere API-Dokumentation findest Du in unserer API-Dokumentation &lt;A href="https://api.chatlayer.ai/v1/docs#section/Overview" target="_blank" rel="noopener"&gt;hier&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
    <pubDate>Wed, 29 Nov 2023 12:40:01 GMT</pubDate>
    <dc:creator>Franzi_Hilgarth</dc:creator>
    <dc:date>2023-11-29T12:40:01Z</dc:date>
    <item>
      <title>[Neuer Bot Builder] API</title>
      <link>https://community.sinch.com/t5/Chatbot/Neuer-Bot-Builder-API/ta-p/13486</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;So funktionieren benutzerdefinierte Integrationen&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Die API ist im Schritt "&lt;STRONG&gt;Action&lt;/STRONG&gt;" 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.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2023-10-19 at 14.54.45.png" style="width: 999px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4106iB70008E606DAC439/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2023-10-19 at 14.54.45.png" alt="Screenshot 2023-10-19 at 14.54.45.png" /&gt;&lt;/span&gt;
&lt;P&gt; &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Ein User tippt und sendet eine Textnachricht von einem Conversational Agent Interface-Kanal wie Facebook Messenger, Web-Chat, ... an den Engage Bot Builder.&lt;/LI&gt;
&lt;LI&gt;Die empfangene Nachricht durchläuft die NLP-Engine von Engage, um die Intent zu erkennen, und die zurückgegebene Absicht wird zusammen mit dem Benutzerkontext verwendet, um den nächsten Bot-Dialog in der Konversation abzurufen.&lt;/LI&gt;
&lt;LI&gt;Das API-Plugin von Engage kann in einen Bot-Dialog eingefügt werden, um eine API-Anfrage an Ihren Server mit verschiedenen Arten von statischen Daten und/oder Benutzersitzungsdaten zu senden.&lt;/LI&gt;
&lt;LI&gt;Dein Server kann mit einem Objekt mit drei Feldern antworten:
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Session&lt;/STRONG&gt;: Ein Sitzungsobjekt zum Speichern der abgerufenen Benutzersitzungsdaten&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Message&lt;/STRONG&gt;: Ein Array von Nachrichten, die an den Schnittstellenkanal zurückgesendet werden&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;nextDialogstate&lt;/STRONG&gt;: Eine Bot-Dialogstatus-Kennung, um den Benutzer zum nächsten Bot-Dialogstatus in einem Gesprächsablauf weiterzuleiten.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Sessiondaten&lt;/STRONG&gt; 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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;API-Plugin&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Engage Bot Builder bietet ein API-Plugin in der Liste der Aktions-Plugins, das Du im Dialogstatus in einem deiner Konversationsabläufe konfigurieren kannst.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="API (1).gif" style="width: 999px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4107i7F373C30995F2330/image-size/large?v=v2&amp;amp;px=999" role="button" title="API (1).gif" alt="API (1).gif" /&gt;&lt;/span&gt;
&lt;P&gt; &lt;/P&gt;
&lt;H3&gt;Senden der API-Anforderung&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Das API-Plugin sendet eine Anfrage an deinen Backend-Server. Es unterstützt verschiedene Konfigurationseinstellungen:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;HTTPS-Methode&lt;/LI&gt;
&lt;LI&gt;API-Endpunkt-URL&lt;/LI&gt;
&lt;LI&gt;Abfrage-Parameter&lt;/LI&gt;
&lt;LI&gt;Nutzdatenkörper (JSON)&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;HTTPS-Methode und API-Endpunkt-URL&lt;/STRONG&gt;&lt;BR /&gt;Das Plugin unterstützt drei HTTPS-Methoden&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;GET&lt;/LI&gt;
&lt;LI&gt;POST&lt;/LI&gt;
&lt;LI&gt;DELETE&lt;/LI&gt;
&lt;LI&gt;PUT&lt;/LI&gt;
&lt;LI&gt;PATCH&lt;/LI&gt;
&lt;/UL&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2023-10-19 at 20.20.31.png" style="width: 400px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4108iD594FA1EFDD4FEEA/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-10-19 at 20.20.31.png" alt="Screenshot 2023-10-19 at 20.20.31.png" /&gt;&lt;/span&gt;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H3&gt;Abfrage- und Nutzlastparameter&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Füge Abfrageparameter und/oder einen Nutzdatenrumpf hinzu, indem Du Schlüssel-Wert-Kombinationen definierst. Jeder Schlüssel kann drei mögliche Wertetypen haben:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;text&lt;/STRONG&gt;: statischer Text&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Variable&lt;/STRONG&gt;: eine Benutzersitzungsvariable. Der Wert der Variable wird als Wert für den Schlüssel gespeichert. Punkt- und Array-Notation werden unterstützt, z. B.: users[0].firstname&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;dialogstate&lt;/STRONG&gt;: Wähle einen Dialogstatus aus der Dropdown-Liste. Die Dialogstatus-ID wird als Wert für den Schlüssel gespeichert. Diese ID kann verwendet werden, um den Benutzer beim Zurücksenden der API-Antwort auf der Grundlage deiner Businesslogik zu einem bestimmten Dialogstatus umzuleiten.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":backhand_index_pointing_right:"&gt;👉🏼&lt;/span&gt; Du kannst nur einen Anfragekörper definieren, wenn dein Anfragemethode POST oder DELETE ist.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2023-10-19 at 20.12.58.png" style="width: 400px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4109i9220A606E57DCCCD/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-10-19 at 20.12.58.png" alt="Screenshot 2023-10-19 at 20.12.58.png" /&gt;&lt;/span&gt;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2023-10-19 at 20.15.12.png" style="width: 999px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4110i5CA01F1B368438E8/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2023-10-19 at 20.15.12.png" alt="Screenshot 2023-10-19 at 20.15.12.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Der &lt;STRONG&gt;Betragsschlüssel (amount key)&lt;/STRONG&gt;&amp;nbsp;hat den Wert der Benutzersitzungsvariablen transfer_amount (z. B. 500).&lt;/LI&gt;
&lt;LI&gt;Der &lt;STRONG&gt;Zielschlüssel (destinationkey)&lt;/STRONG&gt;hat den Wert der Benutzersitzungsvariablen transfer_destination (z. B. Elon Musk).&lt;/LI&gt;
&lt;LI&gt;Der &lt;STRONG&gt;accountType&lt;/STRONG&gt;-Schlüssel hat den Wert der Benutzersitzungsvariablen card_type (z. B. savings_account).&lt;/LI&gt;
&lt;LI&gt;Der Schlüssel &lt;STRONG&gt;transactionSuccess&lt;/STRONG&gt; enthält die Dialogstatuskennung für den Dialogstatus "erfolgreiche Transaktion". Diese Kennung kann in der Antwort auf diese API-Anfrage verwendet werden, um den Benutzer in einen neuen Dialogzustand umzuleiten.&lt;/LI&gt;
&lt;LI&gt;Der Schlüssel &lt;STRONG&gt;transactionNoMoney&lt;/STRONG&gt; enthält die Dialogstatus-Kennung für den Dialogstatus "erfolglose Transaktion". Diese Kennung kann in der Antwort auf diese API-Anfrage verwendet werden, um den Benutzer zu einem neuen Dialogstatus umzuleiten.&lt;/LI&gt;
&lt;LI&gt;Der &lt;STRONG&gt;Testschlüssel&lt;/STRONG&gt; hat den Wert "5".&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Daraus ergibt sich der folgende Body-Payload.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;{
"amount": 500,
"destination": "Elon Musk",
"accountType": "savings_account",
"transactionSuccess": "successful transaction",
"transactionNoMoney": "unsuccessful transaction",
"test": 5
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;API-Kopfzeilen&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2023-10-19 at 20.26.04.png" style="width: 400px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4111iB16E03F911D42CE1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2023-10-19 at 20.26.04.png" alt="Screenshot 2023-10-19 at 20.26.04.png" /&gt;&lt;/span&gt;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H3&gt;Mehrsprachig&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Senden der API-Antwort&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Session&lt;/STRONG&gt;: Ein Session-Objekt zum Speichern von Daten in der Benutzersitzung. Die Session hat zwei obligatorische Felder: Namespace: ein Schlüsselnamespace. Das Datenobjekt wird in diesem Namespace-Schlüssel in der Benutzersitzung gespeichert. Du kannst auf dieses Objekt in Chatlayer.ai zugreifen, indem du die Interpolation benutzt: *{namespace.dataKey}*data: ein Objekt, das in den Daten der Benutzersitzung im Namespace-Key gespeichert wird.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Message&lt;/STRONG&gt;: Ein Array von Nachrichten, die an den Benutzerschnittstellenkanal zurückgesendet werden. Die Struktur der verschiedenen Nachrichtentypen wie Text, Schaltflächen, Schnellantworten, Karussells, Listen, Medien, ... ist in der Struktur der Chatnachrichten verfügbar.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;action&lt;/STRONG&gt;: Ein Objekt, das eine Aktion definiert, z. B. die Weiterleitung des Benutzers zum nächsten Dialogstatus in der Konversation.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;nextDialogstate&lt;/STRONG&gt;: Ein Dialogstatus-Identifikator, der den Benutzer zum nächsten Dialogstatus im Gesprächsablauf weiterleitet.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;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:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;const result = {
session: {
namespace: 'myNamespace',
data: { variable: 'test123' },
},
messages: [{ type: 'text', config: { textMessages: [{ text: 'random message 1' }] } }],
action: {
nextDialogstate: 'dialogstate-123-abc',
},
};&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":backhand_index_pointing_right:"&gt;👉🏼&lt;/span&gt; Vergewissere dich, dass Du den richtigen Inhaltstyp in der Kopfzeile angibst: content-type: application/json;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Beispiel&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;app.post('/transaction', function (req, res) {
let nextDialogstate;
const { amount, destination, accountType, transactionSuccess, transactionNoMoney = req.body;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;// get account type (regular - savings account)
const account = account_synonyms[accountType];&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;if( accounts[account].amount + accounts[accounthlimit — amount &amp;lt; ) {
nextDialogstate = transactionNoMoney
} else {
// transfer amount
accounts[account].amount —= amount;
nextDialogstate = transactionSuccess;
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;res.json({
action: {
nextDialogstate,
},
session: {
namespace: 'account',
data: {
limit: accounts[account].limit,
amount: accounts[account].amount
}
},
})
});&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2023-10-19 at 20.17.54.png" style="width: 999px;"&gt;&lt;img src="https://community.sinch.com/t5/image/serverpage/image-id/4112i6D00B657EE51800C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2023-10-19 at 20.17.54.png" alt="Screenshot 2023-10-19 at 20.17.54.png" /&gt;&lt;/span&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;Alternativ kannst Du die Chatnachricht auch als Antwort auf die Anfragen des API-Plugins senden, indem Sie den Nachrichtenschlüssel verwenden.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":backhand_index_pointing_right:"&gt;👉&lt;/span&gt; Weitere API-Dokumentation findest Du in unserer API-Dokumentation &lt;A href="https://api.chatlayer.ai/v1/docs#section/Overview" target="_blank" rel="noopener"&gt;hier&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 29 Nov 2023 12:40:01 GMT</pubDate>
      <guid>https://community.sinch.com/t5/Chatbot/Neuer-Bot-Builder-API/ta-p/13486</guid>
      <dc:creator>Franzi_Hilgarth</dc:creator>
      <dc:date>2023-11-29T12:40:01Z</dc:date>
    </item>
  </channel>
</rss>

