API Client
Einleitung
Nutzen Sie das API-Client-Modul, wenn Sie gesammelte Daten aus LoyJoy an Ihren Dienst senden, Daten von Ihrem Dienst nach LoyJoy ziehen oder einfach externe Dienste auslösen möchten. Die in diesem Modul konfigurierten API-Anfragen werden von einem LoyJoy-Server ausgeführt, nicht vom Browser des Nutzers.
Typische Anwendungsfälle
Typische Anwendungsfälle sind das Exportieren von Daten aus LoyJoy an Ihren Webservice oder das Lesen von Daten aus externen Ressourcen.
Daten von einem externen Dienst lesen
Als Beispiel möchten wir den aktuellen Preis eines Produkts lesen, der im Chat-Ablauf angezeigt werden soll.
Dazu setzen wir die Methode auf GET und geben die URL mit der ID des Produkts ein, z. B. http://example.org/getPrice?product-id=123abc. Wir könnten auch eine dynamische Produkt-ID verwenden, z. B. gespeichert in der LoyJoy-Variable product_id. Dann wäre die URL http://example.org/getPrice?product-id=${product_id}.
Nehmen wir an, diese Anfrage erzeugt einen JSON-Antwortkörper dieser Form:
{
"price": {
"amount": 125,
"currency": "Euro",
"validUntil": "2022-12-31"
},
"productId": "123abc"
}
Wir können dann das Feld /price/amount des JSON-Antwortkörpers auf eine Variable unserer Wahl mappen, z. B. product_price:

Beim Durchlaufen dieses Prozessmoduls wird die GET-Anfrage ausgeführt und die Variable product_price mit dem Wert aus der Anfrage gefüllt. Danach kann die Variable product_price in jedem Textfeld verwendet werden.
Daten an einen externen Dienst senden
Dies kann nützlich sein, um Kundendaten in eine bestehende Datenbank zu übertragen, z. B. um sie für eine Mailing-Liste zu abonnieren oder zu registrieren. Hier verwenden wir die POST-Methode und geben eine URL wie http://example.org/subscribe ein.
In diesem Fall verwenden wir einen JSON-Post-Body und geben das JSON einfach in das Payload-Textfeld ein. Im Payload verwenden wir die ${}-Notation, um auf die im LoyJoy-Chat vorhandenen Variablen zuzugreifen:
{
"email": ${email},
"firstName": ${firstname},
"lastName": ${lastname},
"birthdate": ${birthdate},
"marketingOptIn": ${toBoolean(consent_single_opt_in_newsletter)},
"consumption": ${toInteger(consumption)},
"key": ${stringConcat(lastname, ", ", birthdate)}
}
Datentypen werden automatisch auf Basis des Datentyps in LoyJoy behandelt. Alle Variablen werden in LoyJoy als Strings gespeichert. Deshalb müssen wir Typkonvertierungsfunktionen wie toBoolean und toInteger verwenden, um diese Typen zu senden. Auf dieser Seite finden Sie die vollständige Liste der Typkonvertierungsfunktionen. Andere Datentypen existieren in LoyJoy z. B. als Ausgabe von Funktionen wie randomInt.
Sie können Ausdrücke im JSON-Body verwenden. Diese Ausdrücke sollten nicht in Anführungszeichen gesetzt werden:
{
"key": ${stringConcat(lastname, ", ", birthdate)}
}
Die Variablen in diesem Beispiel sind alle standardmäßige LoyJoy-Variablen. Sie können die Standard-LoyJoy-Variablen hier nachschlagen. Zusätzlich können Sie auch benutzerdefinierte Variablen verwenden, die durch Fragebögen oder andere Module definiert wurden.
Auch hier können wir den Antwortkörper als JSON interpretieren. Zum Beispiel erhalten wir einen Antwortkörper wie:
{
"status": "success",
"subscriberId": "9cc2d7a1-888f-49bd-a169-5d196c900ced"
}
Wir können ein Mapping erstellen, das das Feld status der Antwort liest und auf eine Variable unserer Wahl abbildet:

Abhängig vom Status können wir dem Kunden z. B. mitteilen, dass er erfolgreich abonniert wurde oder dass ein Fehler aufgetreten ist.
Verwendung des Moduls
Senden Sie eine GET- oder POST-Anfrage an eine beliebige URL. Sie können Ihren Post-Anfragen ein benutzerdefiniertes Payload hinzufügen und in diesem Payload Variablen mit der ${variable}-Syntax verwenden. Wenn die URL eine JSON-Antwort zurückgibt, können Sie mit Mappings ein JSON-Feld auf eine LoyJoy-Variable abbilden.

Das folgende Video bietet einen kurzen Überblick:

Anfrage
Beginnen Sie mit der Eingabe der notwendigen Informationen Ihres Dienstes. Wenn Sie nicht sicher sind, welche Informationen relevant sind, fragen Sie den zuständigen Entwickler.
Autorisierung
LoyJoy unterstützt drei verschiedene HTTP-Autorisierungsmethoden, die als Authorization-Header gesendet werden: Basic, Bearer und OAuth2.
Basic
Bei der Basic-HTTP-Autorisierungsmethode werden Benutzername und Passwort als Teil des Authorization-Headers gesendet, getrennt durch einen Doppelpunkt und Base64-kodiert. Sie geben Benutzername und Passwort einfach in LoyJoy ein.
Bearer
Die Bearer-HTTP-Autorisierungsmethode verwendet tokenbasierte Authentifizierung, bei der ein Token (normalerweise ein JWT) mit dem Präfix "Bearer" im Authorization-Header gesendet wird. Hier geben Sie das Token in LoyJoy ein (ohne das Präfix Bearer).
OAuth2
OAuth2 ist ein branchenübliches Autorisierungsframework für delegierte Authentifizierung und Autorisierung. Es ermöglicht Nutzern, einem anderen Dienst eingeschränkten Zugriff auf ihre Ressourcen zu gewähren, ohne ihre Zugangsdaten weiterzugeben.
Um die OAuth2-Authentifizierung zu verwenden, müssen Sie die folgenden Informationen eingeben:
- Header-Präfix: Präfix für den
Authorization-Header. Üblicherweise und standardmäßigBearer - Token-URL: URL, von der das Token abgerufen werden kann
- Grant-Typ: Der Grant-Typ des OAuth2-Flows.
client_credentialsoderpassword - Client ID: ID des OAuth2-Clients
- Client Secret: Secret zur Verifizierung des Clients
- Passwort: Für den Grant-Typ
password - Scope: Scope des OAuth2-Tokens
- Authentifizierung:
bodyoderheader. Wenn Siebodywählen, wird das Token im Body der Anfrage an die Token-URL gesendet. Wenn Sieheaderwählen, wird das Token imAuthorization-Header gesendet.
HTTP-Anfragemethode
LoyJoy kann die HTTP-Anfrage als GET, POST oder PUT senden.
POST-/PUT-Body-Typen
Drei verschiedene POST- und PUT-Body-Typen werden unterstützt:
- JSON
- Datei (Base64-kodiert)
- Datei (Multipart)
- Datei (Octet-Stream)
- x-www-form-urlencoded (Schlüssel-Wert-Paare)
API-URL
Geben Sie die URL des Endpunkts des Dienstes ein, in der Sie LoyJoy-Variablen verwenden können, z. B. https://example.org/some_endpoint?param1=${variable1}.
Payload
Um einen HTTP-Body zusammen mit Ihrer Anfrage zu senden, verwenden Sie bitte die Methoden POST oder PUT. Strukturieren Sie Ihr Payload gemäß dem Schema, das Ihr Endpunkt definiert. Wenn Sie sich nicht sicher sind, fragen Sie bitte den zuständigen Entwickler. Beachten Sie, dass Sie LoyJoy-Variablen verwenden können. Beispielsweise können Sie ein JSON wie folgt senden.
{
"source": "loyjoy",
"firstname": ${firstname},
"lastname": ${lastname},
"variable1": ${variable1},
"location_href": ${locationHref()}
}
Header
Sie können jeden benutzerdefinierten Header einrichten, der für die Anfrage nötig ist, indem Sie Header-Schlüssel-Wert-Paare hinzufügen.

Antwort
Der HTTP-Statuscode der Antwort wird immer in der Variable api_client_status_code gespeichert. Der Antwortkörper wird in der Variable api_client_response_body gespeichert. Bei einer JSON-Antwort wäre der Antwortkörper das vollständige JSON-Objekt.
Sie können jedoch Mappings verwenden, um Informationen aus JSON oder XML auszuwählen und in LoyJoy-Variablen zu speichern. So können Sie die Informationen aus der JSON- oder XML-Antwort im Chat-Ablauf verwenden.
Testen und Debuggen
Um die API-Client-Konfiguration zu testen, können Sie die Chat-Vorschau verwenden und die Schritte durchgehen, die zur Aktivierung des API-Client-Moduls nötig sind. Um zu sehen, welche Daten übertragen wurden, können Sie das Debug-Logging im Modul aktivieren:
Klicken Sie zuerst oben rechts auf das Checklisten-Symbol.

Aktivieren Sie dann den Schalter, um das Logging für die nächsten 60 Minuten zu aktivieren.

Das Log zeigt Ihnen dann, welche Anfragen gestellt wurden sowie das gesendete Payload und die empfangene Antwort. Payloads und Antworten werden nur gespeichert, wenn das Debugging aktiv ist. Andernfalls wird nur der HTTP-Statuscode nicht erfolgreicher Anfragen geloggt. Grundsätzlich deuten HTTP-Statuscodes, die mit 4 beginnen, auf einen Fehler in der Anfrage hin; Statuscodes, die mit 5 beginnen, auf einen internen Fehler im Dienst.
Eine Liste der HTTP-Statuscodes finden Sie hier.
Beispiel für ein Log einer erfolgreichen Anfrage:

Beispiel für ein Log einer nicht erfolgreichen Anfrage:

Hier sehen wir, dass der Antwortstatus 404 war, was für "Not Found" (Nicht gefunden) steht. Beachten Sie den unterstrichenen Tippfehler in der URL. Die URL hätte /todos/1 statt /todoes/1 lauten müssen. Deshalb konnte der Server die Ressource nicht finden und antwortete mit dem Statuscode 404.
Ein weiteres Beispiel für eine nicht erfolgreiche Anfrage:

Hier sehen wir, dass die Ressource mit dem Statuscode 415 antwortete, was für "Unsupported Media Type" (Nicht unterstützter Medientyp) steht. Das bedeutet, dass der Server den Medientyp der Anfrage nicht unterstützt. In diesem Fall unterstützt der Server nur application/json, aber die Anfrage wurde mit application/x-www-form-urlencoded als Medientyp gesendet. Dies kann behoben werden, indem Sie den Request body type in der Modulkonfiguration ändern.
Wir sehen auch, dass der Antwortkörper oft weitere Informationen über den Fehler enthält und beim Debuggen des Problems helfen kann.
Cookies
Diese Felder ermöglichen es Ihnen, Namen von Cookies einzugeben, die Sie senden oder empfangen möchten. Wenn der Server mit einem Cookie des angegebenen Namens antwortet, wird es in der LoyJoy-Session gespeichert. Wenn ein Cookie mit dem angegebenen Namen in der LoyJoy-Session gespeichert ist, wird es mit der Anfrage gesendet.
Header
Header können in beide Richtungen verwendet werden. Um einen Request-Header hinzuzufügen, können Sie einfach einen gültigen Ausdruck und einen Header-Namen eingeben.

Timeouts
Das Prozessmodul wartet rund 20 Sekunden auf eine Antwort vom Server. Wenn der Server nicht innerhalb dieser Zeit antwortet, wird dies vom Prozessmodul als Timeout eingestuft. Es gibt mehrere Lösungen für dieses Problem.
Nicht erfolgreiche Anfragen wiederholen
Die Replay-Funktion ermöglicht es Ihnen, fehlgeschlagene Anfragen erneut auszuführen. Die Anfrage wird gespeichert und kann wiederholt werden. Dies ist nützlich, wenn Sie Anfragen wiederholen möchten, die aufgrund eines Timeouts oder aus anderen Gründen fehlgeschlagen sind.
Statische IP-Adresse
Standardmäßig sendet LoyJoy API-Anfragen von dynamisch zugewiesenen IP-Adressen. Wenn die Ziel-API nur Anfragen von freigegebenen (allowlisted) IP-Adressen akzeptiert, aktivieren Sie "Statische IP-Adresse verwenden" im Tab "Ausführung" des Moduls. Die Anfrage wird dann über einen Proxy mit einer statischen IP-Adresse gesendet, die unter der Einstellung angezeigt wird.
Diese Option ist nicht für hohe Last geeignet. Bitte kontaktieren Sie den LoyJoy-Support, bevor Sie sie aktivieren.
Prozessspezifische Variablen
Dieses Modul erzeugt Variablen, die im gesamten aktuellen Prozess verfügbar sind. Sie gelten nur für diesen spezifischen Prozess und können sich mit Plattform-Updates weiterentwickeln. Eine detaillierte Liste finden Sie in der Liste der prozessspezifischen Variablen.