Auf dieser Seite: Erfahren Sie, wie Sie in Adobe Journey Optimizer mit dem externalDataLookup-Helper Daten dynamisch von einem externen Endpunkt abrufen und Inhalte für eingehende Kanäle personalisieren können.
Mit dem externalDataLookup-Helper im Personalisierungs-Editor von Journey Optimizer können Sie Daten dynamisch von einem externen Endpunkt abrufen und sie zur Erstellung von Inhalten für eingehende Kanäle wie Code-basierte Erlebnisse, Web- und In-App-Nachrichten verwenden.
Damit Sie den Helper verwenden können, müssen Sie zunächst im Menü Administration > Konfigurationen eine Aktion definieren. Bei einer Aktion konfigurieren Sie Details zu einem externen Endpunkt, z. B. URL, GET vs. POST-Methode, Header-Parameter, Abfrageparameter, POST-Textkörper-JSON-Schema und Antwort-JSON-Schema.
Nachdem die Aktion definiert wurde, kann sie wie folgt verwendet werden:
- Zum Abrufen von Inhalten in einer Aktivität mit benutzerdefinierter Aktion in Journeys
- Zum Abrufen von Daten in einer eingehenden Aktion in einem externalDataLookup-Helper in Journeys und Inbound-Kampagnen.
Leitlinien und Einschränkungen
Weitere Informationen finden Sie unter „Benutzerdefinierte Aktionen“ in Journey Optimizer-Inbound-Kanäle, Kampagnen und Journeys#Sicherheitsvorkehrungen und Richtlinien.
- Maximale Anzahl an Suchen - Eine eingehende Nachrichtenanfrage unterstützt maximal 10 Suchen jeder Art, einschließlich externer Datensuchen. Bei Überschreitung dieser Grenze schlägt die gesamte Anfrage fehl. Weitere Informationen
- Standard-Timeout: Standardmäßig verwendet Journey Optimizer beim Aufruf eines externen Endpunkts ein Timeout von 300 ms. Wenden Sie sich an den Adobe-Support, um dieses Timeout für einen Endpunkt zu erhöhen.
- Durchsuchen des Antwortschemas und Ausdrucksvalidierung: Im Personalisierungseditor können Sie beim Einfügen von Ausdrücken das Schema der Endpunktantwort nicht durchsuchen. Journey Optimizer validiert keine Verweise auf JSON-Attribute aus der in Ausdrücken verwendeten Antwort.
- Unterstützte Datentypen für Parameter: Die unterstützten Datentypen für Payload-Variablenparameter, die über den externalDataLookup-Helper ersetzt werden sollen, sind
String,Integer,Decimal,Boolean,listString,listInt,listInteger,listDecimal. - Automatische Aktualisierung für aktualisierte Aktionen: Änderungen an einer Aktionskonfiguration werden nicht in den entsprechenden externalDataLookup-Aufrufen in Live-Kampagnen und Journey-Aufrufen übernommen. Damit eine Änderung übernommen wird, müssen Sie alle Live-Kampagnen oder Journeys kopieren oder ändern, die die Aktion in einem externalDataLookup-Helper verwenden.
- Variablenersetzung: Derzeit wird die Verwendung von Variablen in den Parameter des externalDataLookup-Helpers nicht unterstützt.
- Dynamischer Pfad: Derzeit wird der dynamische URL-Pfad nicht unterstützt.
- Multi-Pass-Rendering: Multi-Pass-Rendering wird unterstützt.
- Authentifizierung: Derzeit werden Authentifizierungsoptionen in der Aktionskonfiguration vom externalDataLookup-Helper nicht unterstützt. In der Zwischenzeit können Sie bei der API-schlüsselbasierten Authentifizierung oder anderen Nur-Text-Autorisierungsschlüsseln diese als Header-Felder in der Aktionskonfiguration angeben.
Konfigurieren einer Aktion und Verwenden des Helpers
Gehen Sie wie folgt vor, um eine Aktion zu definieren und den Helper für die Personalisierung zu verwenden:
-
Erstellen Sie eine Aktion zum Konfigurieren des Endpunkts für die Suche. Dies muss für jeden Endpunkt nur einmal durchgeführt werden und sollte von einer technisch versierten Person übernommen werden. Informationen zur Konfiguration einer benutzerdefinierten Aktion
Notieren Sie sich die Aktions-ID und kopieren Sie sie.
-
Erstellen Sie eine eingehende Kampagne oder Journey-Aktion. In diesem Beispiel zeigen wir, wie der externalDataLookup-Helper in einer JSON-Aktion „Code-basiertes Erlebnis“ verwendet wird. Der Helper kann aber auch in jedem anderen eingehenden Kanal in einem Personalisierungsfeld verwendet werden.
-
Bearbeiten Sie den Inhalt der Aktion, navigieren Sie im Personalisierungs-Editor zu den Helper-Funktionen und dann zu Helper-Funktionen > Helper.
-
Klicken Sie auf die Schaltfläche
+, um den externalDataLookup-Helper einzufügen. Der Helper-Ausdruck wird mit Platzhalterwerten füractionIdundresultin den Editor eingefügt.
Ersetzen Sie die Platzhalterwerte wie folgt:
actionId: Fügen Sie die zuvor kopierte Aktions-ID ein.result: Legen Sie den gewünschten Namen fest. Sie verwenden diese Ergebnisvariable, um auf den abgerufenen Inhalt zuzugreifen.
-
Fügen Sie alle Variablenparameterwerte hinzu, die als Teil des Endpunkt-Aufrufs übergeben werden sollen. So können Sie beispielsweise einen Parameter für die Sprache und einen Parameter für die maximale Anzahl von Elementen übergeben.
-
Verwenden Sie die Ergebnisvariable, um auf die abgerufenen Daten zuzugreifen und sie in den Inhalt für die eingehende Aktion einzufügen. So können Sie beispielsweise ein JSON-Array von Elementen zurückgeben, die vom Endpunkt abgerufen wurden.
Funktionsweise
Laufzeitausführung
Wenn eine eingehende Aktion den externalDataLookup-Helper enthält, wird der Endpunkt zum Zeitpunkt des Empfangs und der Verarbeitung der Journey Optimizer-Personalisierungsanfrage durch das AEP Edge Network dynamisch aufgerufen.
Das bedeutet, dass der externe Endpunkt in der Lage sein muss, mindestens so viel Last und Durchsatz auf einmal zu verarbeiten, wie vom Client für die angegebene Oberfläche an das AEP Edge Network gesendet wird.
Syntax
{{externalDataLookup actionId="d130c8e2-9a2d-45d5-bcb6-bc39865b4a56" result="result" optional-parameters...}}
Übergeben von Parametern
Wenn der externe Endpunkt aufgerufen wird, werden alle in der Aktion definierten konstanten Header-Werte, Abfrageparameter und der Wert der Anfrage-Payload mit den in der Aktionskonfiguration angegebenen Werten gesendet.
Für alle Variablen-Header-Werte, Abfrage-/Pfadparameter oder Anfrage-Payload-Werte können Sie Werte mithilfe von Parametern dynamisch an den externalDataLookup-Helper übergeben.
Parameternamen:
- Header-Parameter:
header.<parameter-name> - Abfrageparameter:
query.<parameter-name> - Payload-Parameter:
payload.<parameter-name> - Pfadparameter:
dynamic_path.<parameter-name>
Beispiel:
{{externalDataLookup actionId="..." result="result" header.myHeaderParameter="value1" query.myQueryParameter="value2" payload.myPayloadParameter="value3"}}`
Parameterwerte können feste Werte sein oder durch Verweise auf Profilfelder oder andere kontextuelle Attribute personalisiert werden, z. B.:
{{externalDataLookup actionId="..." result="result" query.myQueryParameter=profile.myProfileValue}}
Payload-Parameter können mit Punktnotation bereitgestellt werden, um auf verschachtelte JSON-Attribute zu verweisen, z. B.:
{{externalDataLookup actionId="..." result="result" payload.context.channel="web"}}
Zugreifen auf das Ergebnis
Um auf die Daten zuzugreifen, die von einem externen Endpunkt-Suchaufruf abgerufen wurden, können Sie mit Personalisierungsausdrücken und Helper-Funktionen auf Felder verweisen, die in der Antwort-Payload in der Aktionsdefinition definiert sind.
Angenommen, die Antwort-Payload in der Aktion sieht wie folgt aus:
{
"videos": [
{
"id": "integer",
"title": "string",
"description": "string",
"thumbnail_url": "string",
"video_page_url": "string",
"url": "string",
"video_type": "string",
"start_timestamp": "dateOnly",
"created_on": "dateOnly",
...
}
]
}
Dann können Sie beispielsweise die Beschreibung des ersten Videos in einer HTML-Aktion „Code-basiertes Erlebnis“ ähnlich der folgenden abrufen und darauf zugreifen:
{{externalDataLookup actionId="d130c8e2-9a2d-45d5-bcb6-bc39865b4a56" result="result"}}
First video description: <b>result.videos[0].description</b>
Sie können die Elemente auch abrufen und in einer Schleife durchlaufen, um ein Element-Array in einer JSON-Aktion „Code-basiertes Erlebnis“ wie der folgenden zurückzugeben:
{{externalDataLookup actionId="d130c8e2-9a2d-45d5-bcb6-bc39865b4a56" result="result"}}
[
{{#each result.videos as |item|}}
{
"title": "{{item.title}}",
"url": "{{item.video_page_url}}",
"thumbnail_url": "{{item.thumbnail_url}}",
"start_timestamp": "{{item.start_timestamp}}"
},
{{/each}}
]
Fehlerbehebung
Timeouts und Fehlerbehandlung
Journey Optimizer verwendet beim Aufruf des externen Endpunkts ein striktes Timeout, um für das Adobe Experience Platform Edge Network eine Leistung mit niedriger Latenz und hohem Durchsatz zu gewährleisten.
Wenn beim Erreichen des Endpunkts ein Timeout oder ein anderer Fehler auftritt, ist die Ergebnisvariable leer. Alle Verweise auf Attribute innerhalb der Ergebnisvariablen sind in diesem Fall ebenfalls leer. Wenn Sie das Attribut einfach im Inhalt anzeigen, wird es als leer angezeigt. Wenn Sie versuchen, ein Array-Attribut im Ergebnis zu durchlaufen, werden keine Elemente zurückgegeben.
Wenn Sie Timeouts oder Fehler eleganter handhaben möchten, indem Sie Fallback-Inhalte anzeigen, können Sie überprüfen, ob das Ergebnis der Suche leer ist, und in diesem Fall Fallback-Inhalte anzeigen.
Sie können beispielsweise einen Fallback-Wert für ein einzelnes Attribut wie das folgende anzeigen:
First video description: {%=result.videos[0].description ?: "none found" %}
Oder Sie können einen gesamten Inhaltsblock wie folgt bedingt rendern:
{{externalDataLookup actionId="d130c8e2-9a2d-45d5-bcb6-bc39865b4a56" result="result"}}
{%#if result%}
... do something with result ...
{%else%}
... return fallback content ...
{%/if%}
Debugging
Zur Unterstützung beim Debugging werden in der Edge Delivery-Ansicht in Adobe Experience Platform Assurance Timeout- und Fehlerdetails für die Suche nach externen Daten angezeigt. Wenn für einen externalDataLookup-Helper in einer eingehenden Aktion nicht die erwarteten Ergebnisse angezeigt werden, können Sie eine Assurance-Sitzung starten, einen Journey Optimizer-Aufruf aus einer Web- oder Mobile-Implementierung initiieren und die Edge Delivery-Ansicht verwenden, um Details zum Timeout oder zu Fehlern zu ermitteln.
Beispiel:
Im Abschnitt „Edge Delivery“ des Assurance-Trace wurde den Ausführungsdetails ein neuer customActions-Block mit Anfrage- und Antwortdetails ähnlich dem folgenden hinzugefügt. Der Fehlerabschnitt sollte beim Debugging helfen, wenn beim Ausführen benutzerdefinierter Aktionen Probleme aufgetreten sind
Häufig gestellte Fragen faq-external-data
Im Folgenden finden Sie häufig gestellte Fragen zum Helper zur Suche externer Daten.
Sie würden gerne mehr erfahren? Verwenden Sie die Feedback-Optionen unten auf dieser Seite, um Ihre Frage zu stellen, oder vernetzen Sie sich mit der Adobe Journey Optimizer-Community.
Verwenden Sie das Menü „Kontextuelle Attribute“ > „Datenstrom“ > „Ereignis“, um das von Ihnen verwendete Erlebnisereignisschema zu durchsuchen und das entsprechende Attribut als Parameterwert wie folgt einzufügen:
| code language-none |
|---|
|
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page explains how to configure an Action for an external endpoint and use the
externalDataLookuphelper in the personalization editor to dynamically fetch that data at runtime for personalizing inbound channel content.
Intents:
- Configure an Action defining an external endpoint (URL, HTTP method, parameters, request/response schemas)
- Insert the
externalDataLookuphelper in a personalization expression for an inbound action - Pass variable header, query, payload, or path parameters to the external endpoint at call time
- Access fetched data via the result alias using personalization expressions and helper functions
- Handle timeouts and errors gracefully with fallback content patterns
- Debug external lookup issues using Adobe Experience Platform Assurance
Glossary:
- externalDataLookup: A helper function in the personalization editor that dynamically fetches data from a configured external endpoint at request time, for use in inbound channel content personalization. (product-specific)
- Action: A configuration object in Journey Optimizer (Administration > Configurations) that defines an external endpoint — URL, HTTP method, header/query parameters, POST body schema, and response schema. Required before using
externalDataLookup. (product-specific) - result variable: An arbitrary alias assigned in the
externalDataLookupcall; used to reference all fields from the fetched response in subsequent personalization expressions. - Inbound channels: Channels where content is delivered on demand when a user opens a surface — Code-based Experience, Web, In-App Message. (product-specific)
- AEP Edge Network: The infrastructure that receives personalization requests and triggers the external data lookup call at runtime.
Guardrails:
- Feature is in Limited Availability — only available for a set of organizations.
- Default timeout for external endpoint calls: 300ms (default; contact your Adobe representative to increase this timeout for a specific endpoint).
- Response schema browsing is not supported in the personalization editor; Journey Optimizer does not validate references to JSON attributes from the response used in expressions.
- Supported data types for payload variable parameters:
String,Integer,Decimal,Boolean,listString,listInt,listInteger,listDecimal. - Variable substitution within
externalDataLookuphelper parameters is not currently supported. - Dynamic URL paths are not currently supported.
- Authentication options in the Action configuration are not currently supported by
externalDataLookup; use header fields for API key-based or plaintext authorization as a workaround. - Changes to an Action configuration are not reflected in live campaigns or journeys using that Action; copy or modify any live campaigns/journeys to apply the changes.
- Multi-pass rendering is supported.
- Journey Optimizer does not currently cache external endpoint responses.
- The external endpoint must be able to handle at least as much concurrent load and throughput as the inbound traffic sent to the AEP Edge Network for the given surface.
Terminology:
- Canonical name: externalDataLookup — variants: external data lookup, external data lookup helper, External Data Lookup Helper
- Synonyms: “externalDataLookup” = “external data lookup helper”
- Do not confuse:
actionId(ID of the configured Action, identifying the external endpoint) ≠result(alias for the fetched response data) ≠ parameter names (variable values passed to the endpoint at call time) - Do not confuse: using
externalDataLookupin an inbound personalization action (fetches data dynamically at Edge Network request time) ≠ using a Custom Action in a journey activity (fetches content within a journey flow)
FAQ:
- Q: What happens if the external endpoint times out or returns an error? — The result variable will be empty. Attribute references within the result will display as blank, and array iterations will return no items. Use fallback content patterns — such as
?: "none found"for single attributes or{%#if result%}…{%else%}…{%/if%}for entire content blocks — to handle these cases gracefully. - Q: How do I pass a contextual attribute from the request as a parameter to an external data lookup? — Use the Contextual Attributes > Datastream > Event menu in the personalization editor to browse the Experience Event schema and insert the relevant attribute as a parameter value, for example:
query.myQueryParameter=context.datastream.event.<schemaId>.my.xdm.attribute. - Q: Does Journey Optimizer cache external endpoint responses? — Not currently. Caching will be supported in the future.
- Q: How do I debug issues with externalDataLookup? — Use Adobe Experience Platform Assurance. Start an Assurance session, initiate a Journey Optimizer call from your web or mobile implementation, and use the Edge Delivery view to inspect the customActions block for timeout or error details.
- Q: Can I use authentication in the Action configuration with externalDataLookup? — Authentication options in the Action configuration are not currently supported. For API key-based or other plaintext authorization, specify the credentials as header fields in the Action configuration.