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

  1. Erstellen Sie die benutzerdefinierte Aktion. Mehr dazu erfahren Sie auf dieser Seite.

  2. Klicken Sie in das Feld Antwort.

    {width="80%"}

  3. 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.

  4. Fügen Sie außerdem die customerID als Abfrageparameter hinzu.

    {width="80%"}

  5. 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.

  1. Fügen Sie Ihr Ereignis und die zuvor erstellte benutzerdefinierte Treue-Aktion hinzu.

  2. 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.

  3. Fügen Sie im ersten Zweig eine Bedingung hinzu und verwenden Sie den erweiterten Editor, um die Aktionsreaktionsfelder unter dem Kontext-Knoten zu nutzen.

  4. 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.
  5. 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"
    

  6. 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.

WARNING
Nur neu erstellte benutzerdefinierte Aktionen enthalten das vordefinierte Feld jo_status_code. Wenn Sie sie mit einer vorhandenen benutzerdefinierten Aktion verwenden möchten, müssen Sie die Aktion aktualisieren. Beispielsweise können Sie die Beschreibung aktualisieren und speichern.

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:

recommendation-more-help
b22c9c5d-9208-48f4-b874-1cefb8df4d76