En esta página: Descubra cómo los especialistas en marketing aplican integraciones configuradas para personalizar el correo electrónico, los SMS y el contenido push, y encadenan una llamada de API a otra para obtener mensajes dinámicos más completos.
Antes de usar integraciones externas en el contenido, confirme que un administrador ha configurado y activado cada integración (extremo, autenticación, directivas, carga de respuesta y activación) como se describe en Trabajar con integraciones.
Puede agregar hasta 3 integraciones por fragmento y hasta 5 en el mensaje. Las integraciones que solo provienen de fragmentos no se contabilizan en 5.
Aplicación de la personalización de la integración al contenido apply-integration-personalization
Como experto en marketing, puede utilizar integraciones configuradas para personalizar el contenido. Siga estos pasos:
-
Acceda al contenido de su campaña y haga clic en Agregar personalización desde su Componentes de texto o HTML.
Más información sobre los componentes
-
Vaya a la sección Integraciones y haga clic en Abrir integraciones para ver todas las integraciones activas.
Tenga en cuenta que los fragmentos de Journey Optimizer están disponibles con las integraciones, pero solo admiten canales salientes. Una vez publicado un fragmento, la adición y el guardado de nuevas integraciones están desactivados para evitar el impacto en los recorridos y campañas existentes.
-
Seleccione una integración y haga clic en Guardar.
-
Habilite el modo Pills para desbloquear el menú de integración avanzada.
-
Al crear la personalización de la integración, el asistente de integraciones incluye un campo
requiredque define cómo interactúan los errores o la falta de datos con el contenido predeterminado:-
required=true(predeterminado): se detiene el procesamiento de ese mensaje. El envío se excluye conExternalDataLookupExclusiony esa exclusión se registra en el conjunto de datos de comentarios del mensaje. -
required=false: la variable de resultado se establece ennully el procesamiento continúa. Utilice texto predeterminado, reserva o lógica condicional en la plantilla para que los perfiles no reciban contenido vacío cuando la integración no devuelva datos.
-
-
Para completar la configuración de la integración, defina los atributos de la integración, que se especificaron anteriormente durante configuración.
Puede asignar valores a estos atributos mediante valores estáticos, que permanecen constantes, o atributos de perfil, que extraen información de forma dinámica de los perfiles de usuario.
-
Una vez definidos los atributos de integración, ahora puede usar los campos de integración en el contenido para mensajes personalizados haciendo clic en el icono
.
note NOTE Los tokens de la plantilla solo deben utilizar campos que el administrador exponga en la configuración de la integración. Por ejemplo, {{weatherResponse.temperature}}es válido cuando se exponetemperature;{{weatherResponse.humidity}}se rechaza en el editor sihumidityno se expuso. -
Haga clic en Guardar.
La personalización de la integración ahora se aplica correctamente al contenido, lo que garantiza que cada destinatario reciba una experiencia relevante y adaptada en función de los atributos que haya configurado.
Asignación de una llamada de API a otra map-integration-chain
Puede encadenar integraciones para que los resultados de una llamada alimenten los siguientes, por ejemplo, segmentos de ruta, encabezados o parámetros de consulta. Las llamadas se ejecutan en orden en el mismo mensaje, lo que admite una personalización más completa sin código personalizado.
Antes de empezar, asegúrese de que:
- Un administrador ha configurado y activado todas las integraciones que necesita. Consulte Configurar su integración.
- Los marcadores de posición de rutas de variables, los encabezados y los parámetros de consulta se configuran en la configuración de integración con etiquetas de orientación para expertos en marketing.
- El administrador expuso los campos de respuesta que necesita en la carga de respuesta de cada integración para que aparezcan durante la creación.
El ejemplo siguiente utiliza una integración de reserva que devuelve un número de vuelo de la reserva del perfil y, a continuación, una integración de información de vuelo que utiliza ese número para el estado activo (retrasos, destino). Las entradas de la segunda integración se asignan a la respuesta de la primera llamada.
-
Abra el mensaje o el fragmento y abra el editor de personalización.
-
En Integraciones, haga clic en Abrir integraciones.
-
Añada la integración cuya respuesta alimente la siguiente llamada, por ejemplo, datos de reserva o reserva que incluyan el identificador de vuelo.
-
(Opcional) Abra el menú Función de ayuda y agregue un asistente, por ejemplo, la función
Let, si desea enlazar una variable con nombre a la respuesta de reserva.note NOTE Solo están disponibles los campos expuestos en la carga de respuesta definida por el administrador. No puede hacer referencia a propiedades que no se expusieron en la configuración. -
Si utiliza una variable de ayuda, asigne esa variable al campo que devuelve la integración de reservas para su uso descendente, por ejemplo, el número de vuelo en la carga útil de reserva o pasajero.
-
En el menú Abrir integraciones, agregue la segunda integración, por ejemplo, el estado de vuelo.
-
En la segunda integración, abra Atributos de integración. Para cada entrada que debe reutilizar datos de la primera llamada, como una variable de ruta, un encabezado o un parámetro de consulta, seleccione un origen de asignación en la primera respuesta de integración.
En la experiencia Pills, puede asignar el resultado de la primera llamada directamente a la entrada de la segunda llamada sin una instrucción
Let. Si utilizóLet, puede asignar a través de esa variable en su lugar.
-
Inserte tokens de la segunda integración en el contenido con el control
, por ejemplo, el destino de la respuesta de información de vuelo.
-
Guarde el contenido.
En Simulation o envío, Journey Optimizer ejecuta las integraciones en orden: la primera llamada utiliza el contexto de perfil configurado y el resultado genera la segunda solicitud. La ejecución de una integración determinada en el momento de la simulación o del envío depende de la configuración y del canal.
Uso de Adobe Target Recommendations en el contenido use-adobe-target-in-templates
En esta sección se explica cómo usar Integraciones en Adobe Journey Optimizer para recuperar datos de personalización de Adobe Target en el momento del envío y usarlos en el contenido del mensaje, ya se haya creado en una plantilla o en línea. Supone que la API de envío de Target ya se ha configurado como integración.
Para ver los pasos de configuración, consulte Trabajar con integraciones y el ejemplo de Adobe Target Recommendations.
La API de envío de Target devuelve una matriz prefetch.mboxes. Cada mbox incluye un objeto options con content y type campos. El valor type determina cómo se usa content en la plantilla. Abra la pestaña que coincida con la respuesta de mbox y siga los pasos para utilizar esos datos en el mensaje.
Cuando type es json, el campo content es una cadena JSON. Analícelo antes de acceder a los campos anidados. El ejemplo siguiente muestra una respuesta típica de la API de envío para un mbox JSON.
| code language-json |
|---|
|
Utilice tres ayudantes en secuencia para recuperar, extraer y analizar la respuesta de Target.
-
Recupere la respuesta de Target. Llame a la integración de Target configurada con
externalDataLookup. EstablezcaintegrationNameen el Nombre de esa integración (reemplace el marcador de posición de ejemplotarget_recommendations). Utilice el parámetroresultpara asignar un nombre a la variable de plantilla que contiene la carga útil completa de la API de envío; por ejemplo,targetResponse.También puede seleccionar la integración directamente desde el menú Integraciones en la navegación izquierda del editor de personalización. Ver Aplicar personalización de integración a tu contenido.
code language-handlebars {{externalDataLookup integrationName="target_recommendations" result="targetResponse"}} -
Extraer un mbox específico mediante valueAtPath.
valueAtPathextrae un elemento de una matriz por su índice basado en 0 y lo asigna a una variable de plantilla. Utilice el parámetroidxpara especificar a qué elemento acceder.code language-handlebars {{valueAtPath targetResponse.prefetch.mboxes idx=0 result="summerOffer"}}table 0-row-2 1-row-2 2-row-2 3-row-2 Parámetro Descripción pathRuta a la matriz (posicional, sin palabra clave) idxÍndice basado en 0 para el acceso a la matriz (opcional) resultNombre de variable para almacenar el valor extraído note NOTE Si idxestá fuera de los límites, el procesamiento genera una excepción. Proteja los índices no válidos con{%#if idx >= 0 and idx < count(targetResponse.prefetch.mboxes)%}cuando el índice pueda no ser válido. Las expresiones PQL no se pueden usar como ruta. Disponible desde la versión 2025.9.0. -
Analizar la cadena JSON mediante parseJson. El campo mbox
options.contentes una cadena JSON sin procesar.parseJsonlo convierte en un objeto estructurado a cuyos campos se puede tener acceso directamente en la plantilla.code language-handlebars {{parseJson jsonStr=summerOffer.options.content result="summerOfferContent"}}table 0-row-2 1-row-2 2-row-2 Parámetro Descripción jsonStrRuta al campo de cadena que contiene un JSON válido resultNombre de variable para almacenar el objeto analizado note NOTE Si la cadena JSON no es válida o la referencia es nula, resultse establece ennull; no se produce ningún error de procesamiento. Pruebe con su respuesta de Target real para confirmar que el contenido es un archivo JSON válido. Disponible desde: 2026.6.0 -
Acceder a los datos. Una vez analizado, utilice la notación de puntos para acceder a los campos de
summerOfferContent. Para procesar una lista de recomendaciones:code language-handlebars {{externalDataLookup integrationName="target_recommendations" result="targetResponse"}} {{valueAtPath targetResponse.prefetch.mboxes idx=0 result="summerOffer"}} {{parseJson jsonStr=summerOffer.options.content result="summerOfferContent"}} Strategy: {{summerOfferContent.strategy}} {{#each summerOfferContent.recommendations as |rec|}} {{rec.name}} — {{rec.price}} {{/each}}
Cuando type es html, el campo content es una cadena de HTML lista para procesar. No es necesario analizarlo. El ejemplo siguiente muestra una respuesta típica de la API de envío para un mbox de HTML.
| code language-json |
|---|
|
Busque y extraiga el mbox y, a continuación, procese content directamente. Omitir parseJson.
| code language-handlebars |
|---|
|
| note |
|---|
| NOTE |
Use llaves triples {{{...}}} para procesar el contenido de HTML tal cual. Las llaves dobles {{...}} escaparán a las entidades de HTML y procesarán cadenas de etiquetas sin procesar en lugar de HTML. |
Vídeo práctico video
Este vídeo muestra cómo Integraciones conectan Adobe Journey Optimizer a API externas para que pueda extraer datos y contenido en directo en canales salientes, correo electrónico, SMS y push para una personalización más relevante.
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 marketers apply configured external integrations to personalize email, Mobile message, and push content, chain one API call’s response into another, and use Adobe Target Delivery API responses in message templates.
Intents:
- Apply a configured integration to personalize Text or HTML content via Add personalization
- Control fallback behavior with the required field when an integration fails or returns no data
- Chain integrations so one call’s response feeds the next call’s inputs
- Map first-call output to second-call input using Pills mode or a Let helper
- Use Adobe Target Recommendations by fetching, extracting, and parsing the Target Delivery API response
- Render JSON or HTML mbox content with the externalDataLookup, valueAtPath, and parseJson helpers
Glossary:
- required field: An Integrations helper field that defines how failures or missing data interact with default content (product-specific)
- Pills mode: A mode that unlocks the advanced integration menu and lets you map first-call output directly to second-call input without a Let statement (product-specific)
- externalDataLookup: The helper that calls a configured integration and stores its full response in a named result variable (product-specific)
- valueAtPath: The helper that extracts an element from an array by its 0-based index and assigns it to a template variable (product-specific)
- parseJson: The helper that converts a raw JSON string field into a structured object for direct field access (product-specific)
- Simulation: The mode in which Journey Optimizer runs chained integrations in order, alongside send (product-specific)
Guardrails:
- You can add up to 3 integrations per Fragment and up to 5 on the message; integrations that come only from fragments do not count toward the 5.
- Journey Optimizer Fragments are available with Integrations but support outbound channels only.
- Once a fragment is published, adding and saving new integrations is disabled to avoid impact on existing journeys and campaigns.
- An administrator must have configured and activated each integration (endpoint, authentication, policies, response payload, and activation) before use.
- Tokens in a template must use only fields the administrator exposed in the integration configuration; unexposed fields are rejected in the editor.
- With required=true (default), rendering stops for that message, the send is excluded with ExternalDataLookupExclusion, and the exclusion is recorded in the message feedback dataset; with required=false, the result variable is set to null and rendering continues.
- For valueAtPath, if idx is out of bounds, rendering throws an exception; PQL expressions cannot be used as the path. Available since release 2025.9.0.
- For parseJson, if the JSON string is invalid or the reference is null, result is set to null and no rendering error is thrown. Available since 2026.6.0.
Terminology:
- Canonical name: External integrations for personalization — Acronym: n/a — variants: Integrations, integration personalization
- Synonyms: “required=true” = “default”
- Do not confuse: “required=true” (rendering stops, send excluded) ≠ “required=false” (result set to null, rendering continues)
- Do not confuse: JSON content (type is json; parse content with parseJson) ≠ HTML content (type is html; render content directly with triple braces)
FAQ:
- Q: How many integrations can I add? — Up to 3 per Fragment and up to 5 on the message; fragment-only integrations do not count toward the 5.
- Q: What happens if an integration returns no data? — With required=true the message rendering stops and the send is excluded (ExternalDataLookupExclusion, recorded in the message feedback dataset); with required=false the result is null and rendering continues, so use fallbacks or conditional logic.
- Q: Can I feed one integration’s response into another? — Yes; chain integrations so calls run in order in the same message, mapping first-call output to second-call input in Pills mode or through a Let variable.
- Q: How do I use an Adobe Target JSON mbox response? — Fetch it with externalDataLookup, extract the mbox with valueAtPath, then parse options.content with parseJson before accessing nested fields.
- Q: How do I render an Adobe Target HTML mbox response? — Fetch and extract the mbox, then render content directly with triple braces; skip parseJson.