Verwenden von API-Aufrufantworten in benutzerdefinierten Aktionen custom-action-enhancements
API-Aufrufantworten können in benutzerdefinierten Aktionen genutzt und Journeys basierend auf diesen Antworten orchestriert werden.
Wichtige Hinweise custom-action-enhancements-notes
-
Skalare Arrays werden in der Antwort-Payload unterstützt:
code language-none "dummyScalarArray": [ "val1", "val2" ]
-
Heterogene Arrays werden in der Antwort-Payload nicht unterstützt:
code language-none "dummyRandomArray": [ 20, "aafw", false ]
Konfigurieren der benutzerdefinierten Aktion config-response
-
Erstellen Sie die benutzerdefinierte Aktion. Mehr dazu erfahren Sie auf dieser Seite.
-
Klicken Sie in das Feld Antwort.
{width="80%"}
-
Fügen Sie ein Beispiel der vom Aufruf zurückgegebenen Payload ein. Überprüfen Sie, ob die Feldtypen korrekt sind (Zeichenfolge, Ganzzahl usw.). Hier ist ein Beispiel für die Antwort-Payload, die während des Aufrufs erfasst wird. Unser lokaler Endpunkt sendet die Anzahl der Treuepunkte und den Status eines Profils.
code language-none { "customerID" : "xY12hye", "status":"gold", "points": 1290 }
{width="80%"}
Jedes Mal, wenn die API aufgerufen wird, ruft das System alle im Payload-Beispiel enthaltenen Felder ab.
-
Fügen Sie außerdem die customerID als Abfrageparameter hinzu.
{width="80%"}
-
Klicken Sie auf Speichern.
Nutzen der Antwort in einer Journey response-in-journey
Fügen Sie die benutzerdefinierte Aktion einfach einer Journey hinzu. Anschließend können Sie die Felder der Antwort-Payload in Bedingungen, anderen Aktionen und der Nachrichtenpersonalisierung nutzen.
Sie können beispielsweise eine Bedingung hinzufügen, um die Anzahl der Treuepunkte zu überprüfen. Wenn die Person das Restaurant betritt, sendet Ihr lokaler Endpunkt einen Aufruf mit den Treueinformationen des Profils. Sie können eine Push-Benachrichtigung versenden, wenn das Profil zu den Goldkundinnen und -kunden gehört. Wenn beim Aufruf ein Fehler erkannt wird, senden Sie eine benutzerdefinierte Aktion, um die Systemadmins zu benachrichtigen.
-
Fügen Sie Ihr Ereignis und die zuvor erstellte benutzerdefinierte Treue-Aktion hinzu.
-
Ordnen Sie in der benutzerdefinierten Treue-Aktion den Abfrageparameter der Kunden-ID der Profil-ID zu. Aktivieren Sie die Option Alternativen Pfad im Fall eines Timeouts oder Fehlers hinzufügen.
-
Fügen Sie im ersten Zweig eine Bedingung hinzu und verwenden Sie den erweiterten Editor, um die Aktionsreaktionsfelder unter dem Kontext-Knoten zu nutzen.
-
Fügen Sie dann Ihre Push-Benachrichtigung hinzu und personalisieren Sie Ihre Nachricht mithilfe der Antwortfelder. In unserem Beispiel personalisieren wir den Inhalt anhand der Anzahl der Treuepunkte und des Kundenstatus. Die Aktionsreaktionsfelder sind verfügbar unter Kontextattribute > Journey Orchestration > Aktionen.
note note NOTE Jedes Profil, das die benutzerdefinierte Aktion durchführt, löst einen Aufruf aus. Auch wenn die Antwort immer gleich ist, führt die Journey immer noch einen Aufruf pro Profil durch. -
Fügen Sie in den Verzweigungen „Timeout“ und „Fehler“ eine Bedingung hinzu und nutzen Sie das integrierte Feld jo_status_code. In unserem Beispiel verwenden wir den Fehlertyp
http_400. Weitere Informationen finden Sie in diesem Abschnitt.code language-none @action{ActionLoyalty.jo_status_code} == "http_400"
-
Fügen Sie eine benutzerdefinierte Aktion hinzu, die an Ihre Organisation gesendet wird.
Testmodusprotokolle test-mode-logs
Im Testmodus kann auf Statusprotokolle zugegriffen werden, die mit benutzerdefinierten Aktionsantworten verwandt sind. Wenn Sie in Ihrer Journey benutzerdefinierte Aktionen mit Antworten definiert haben, wird ein Abschnitt actionsHistory in diesen Protokollen angezeigt, der die vom externen Endpunkt zurückgegebene Payload anzeigt (als Antwort auf diese benutzerdefinierten Aktion). Dies kann im Hinblick auf das Debugging sehr nützlich sein.
Fehlerstatus error-status
Das Feld jo_status_code ist immer verfügbar, auch wenn keine Antwort-Payload definiert ist.
Hier finden Sie die möglichen Werte für dieses Feld:
- HTTP-Status-Code: http_
<HTTP API call returned code>
, zum Beispiel http_200 oder http_400 - Zeitüberschreitungsfehler: timedout
- Begrenzungsfehler: capped
- Interner Fehler: internalError
Ein Aktionsaufruf wird als fehlerhaft betrachtet, wenn der zurückgegebene HTTP-Code größer als 2xx ist oder wenn ein Fehler auftritt. In solchen Fällen führt die Journey in den speziellen Timeout oder Fehlerzweig.
Syntax von Ausdrücken exp-syntax
Die Syntax lautet:
#@action{myAction.myField}
Im Folgenden finden Sie einige Beispiele:
// action response field
@action{<action name>.<path to the field>}
@action{ActionLoyalty.status}
// action response field
@action{<action name>.<path to the field>, defaultValue: <default value expression>}
@action{ActionLoyalty.points, defaultValue: 0}
@action{ActionLoyalty.points, defaultValue: @event{myEvent.newPoints}}
Beim Bearbeiten von Sammlungen in einer benutzerdefinierten Aktionsantwort können Sie sich auf currentActionField
verlassen, um auf das aktuelle Element zuzugreifen:
count(
@action{MyAction.MyCollection.all(
currentActionField.description == "abc"
)}
)
Zusätzliche Ressourcen
Weitere Informationen finden Sie auf folgenden Seiten: