Uso de integrações externas para personalização integrations-personalization

Nesta página: saiba como os profissionais de marketing aplicam integrações configuradas para personalizar conteúdo de email, SMS e push e encadear uma chamada de API para outra com mensagens dinâmicas e mais avançadas.

Antes de usar integrações externas em seu conteúdo, confirme se um administrador configurou e ativou cada integração (ponto de extremidade, autenticação, políticas, carga de resposta e ativação) conforme descrito em Trabalhar com integrações.

Você pode adicionar até 3 integrações por Fragmento e até 5 na mensagem. As integrações provenientes apenas de fragmentos não contam no 5.

Aplicar personalização da integração ao seu conteúdo apply-integration-personalization

Como profissional de marketing, você pode usar integrações configuradas para personalizar seu conteúdo. Siga estas etapas:

  1. Acesse o conteúdo da campanha e clique em Adicionar personalização a partir do Texto ou dos Componentes do HTML.

    Saiba mais sobre componentes

  2. Navegue até a seção Integrações e clique em Abrir integrações para exibir todas as integrações ativas.

    Observe que os Fragmentos de Journey Optimizer estão disponíveis com Integrações, mas oferecem suporte somente a canais de saída. Depois que um fragmento é publicado, a adição e o salvamento de novas integrações são desativados para evitar impacto nas jornadas e campanhas existentes.

  3. Selecione uma integração e clique em Salvar.

  4. Habilite o modo Pills para desbloquear o menu de integração avançado.

  5. Ao criar a personalização da integração, o Auxiliar de integrações inclui um campo required que define como as falhas ou os dados ausentes interagem com o conteúdo padrão:

    • required=true (padrão): a renderização para essa mensagem. O envio é excluído com ExternalDataLookupExclusion, e essa exclusão é registrada no conjunto de dados de comentários da mensagem.

    • required=false: A variável de resultado está definida como null e a renderização continua. Use texto padrão, fallbacks ou lógica condicional no modelo para que os perfis não recebam conteúdo vazio quando a integração não retornar dados.

  6. Para concluir a configuração de integração, defina os atributos de integração, que foram especificados anteriormente durante a configuração.

    Você pode designar valores a esses atributos usando valores estáticos, que permanecem constantes, ou atributos de perfil, que extraem dinamicamente informações dos perfis do usuário.

  7. Depois que os atributos de integração forem definidos, você poderá usar os campos de integração no seu conteúdo para mensagens personalizadas clicando no ícone adicionar .

    note
    NOTE
    Os tokens no modelo devem usar somente campos expostos pelo administrador na configuração de integração. Por exemplo, {{weatherResponse.temperature}} é válido quando temperature é exposto; {{weatherResponse.humidity}} é rejeitado no editor se humidity não foi exposto.
  8. Clique em Salvar.

A personalização da sua integração agora é aplicada com sucesso ao seu conteúdo, garantindo que cada recipient receba uma experiência personalizada e relevante com base nos atributos configurados.

Mapear uma chamada de API para outra map-integration-chain

É possível encadear integrações para que os resultados de uma chamada alimentem a próxima, por exemplo, segmentos de caminho, cabeçalhos ou parâmetros de consulta. As chamadas são executadas em ordem na mesma mensagem, que aceita personalização mais avançada sem código personalizado.

Antes de começar, verifique se:

  • Um administrador configurou e ativou todas as integrações necessárias. Consulte Configurar a integração.
  • Espaços reservados para caminhos de variáveis, cabeçalhos e parâmetros de consulta são configurados na configuração de integração com rótulos voltados para o profissional de marketing.
  • O administrador expôs os campos de resposta necessários na carga de resposta de cada integração para que apareçam ao criar.

O exemplo abaixo usa uma integração de reserva que retorna um número de voo da reserva do perfil e, em seguida, uma integração de informações de voo que usa esse número para o status ativo (atrasos, destino). Você mapeia as entradas da segunda integração para a resposta da primeira chamada.

  1. Abra a mensagem ou fragmento e abra o editor de personalização.

  2. Em Integrações, clique em Abrir integrações.

  3. Adicione a integração cuja resposta alimentará a próxima chamada, por exemplo, dados de reserva ou reserva que incluem o identificador de voo.

  4. (Opcional) Abra o menu da função auxiliar e adicione um auxiliar, por exemplo, a função Let, se desejar vincular uma variável nomeada à resposta de reserva.

    note
    NOTE
    Somente os campos expostos na carga de resposta definida pelo administrador estão disponíveis. Você não pode fazer referência a propriedades que não foram expostas na configuração.
  5. Se você usar uma variável auxiliar, mapeie essa variável para o campo que a integração de reservas retorna para uso downstream, por exemplo, o número do voo na carga do passageiro ou da reserva.

  6. No menu Abrir integrações, adicione a segunda integração, por exemplo, status de voo.

  7. Na segunda integração, abra Atributos de integrações. Para cada entrada que deve reutilizar dados da primeira chamada, como uma variável de caminho, cabeçalho ou parâmetro de consulta, selecione uma origem de mapeamento da primeira resposta de integração.

    Na experiência Pills, você pode mapear a saída da primeira chamada diretamente para a entrada da segunda chamada sem uma instrução Let. Se você usou Let, é possível mapear através dessa variável.

  8. Insira tokens da segunda integração em seu conteúdo com o controle add , por exemplo, destino da resposta de informações de voo.

  9. Salve o conteúdo.

Em Simulação ou enviar, o Journey Optimizer executa integrações em ordem: a primeira chamada usa o contexto do perfil configurado, e seu resultado cria a segunda solicitação. A execução de uma determinada integração na simulação ou no momento do envio depende da configuração e do canal.

Usar as recomendações do Adobe Target no seu conteúdo use-adobe-target-in-templates

Esta seção explica como usar as Integrações no Adobe Journey Optimizer para buscar dados de personalização de Adobe Target no momento do envio e usá-los no conteúdo da mensagem, seja em um modelo ou em linha. Ele presume que a API de entrega do Target já foi configurada como uma integração.

Para obter as etapas de configuração, consulte Trabalhar com integrações e a amostra Recomendações da Adobe Target.

A API de Entrega do Target retorna uma matriz prefetch.mboxes. Cada mbox inclui um objeto options com campos content e type. O valor type determina como você usa content no modelo. Abra a guia que corresponde à resposta da mbox e siga as etapas para usar esses dados na mensagem.

Conteúdo JSON

Quando type é json, o campo content é uma cadeia de caracteres JSON. Analise-os antes de acessar campos aninhados. O exemplo abaixo mostra uma resposta típica da API de entrega para uma mbox JSON.

code language-json
{
  "status": 200,
  "prefetch": {
    "mboxes": [
      {
        "index": 0,
        "name": "SummerOffer",
        "options": {
          "content": "{\"recommendations\":[{\"productId\":\"p101\",\"name\":\"Noise Smartwatch\",\"price\":2999},{\"productId\":\"p205\",\"name\":\"Boat Earbuds\",\"price\":1499}],\"strategy\":\"collaborative-filtering\"}",
          "type": "json"
        }
      }
    ]
  }
}

Use três auxiliares em sequência para buscar, extrair e analisar a resposta do Target.

  1. Buscar a resposta do Target. Chame a integração do Target configurada com o externalDataLookup. Defina integrationName como Name dessa integração (substitua o espaço reservado de exemplo target_recommendations). Use o parâmetro result para nomear a variável de modelo que contém a carga completa da API de Entrega — por exemplo, targetResponse.

    Você também pode selecionar a integração diretamente no menu Integrações, na navegação à esquerda do editor de personalização. Consulte Aplicar personalização da integração ao seu conteúdo.

    code language-handlebars
    {{externalDataLookup integrationName="target_recommendations" result="targetResponse"}}
    
  2. Extrair uma mbox específica usando valueAtPath. valueAtPath extrai um elemento de uma matriz por seu índice baseado em 0 e o atribui a uma variável de modelo. Use o parâmetro idx para especificar qual elemento acessar.

    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 Descrição
    path Caminho para a matriz (posicional, sem palavra-chave)
    idx Índice com base em 0 para acesso ao array (opcional)
    result Nome da variável para armazenar o valor extraído
    note
    NOTE
    Se idx estiver fora dos limites, a renderização acionará uma exceção. Proteger índices inválidos com {%#if idx >= 0 and idx < count(targetResponse.prefetch.mboxes)%} quando o índice puder ser inválido. Expressões PQL não podem ser usadas como caminho. Disponível desde a versão 2025.9.0.
  3. Analise a cadeia de caracteres JSON usando parseJson. O campo mbox options.content é uma cadeia de caracteres JSON bruta. parseJson o converte em um objeto estruturado cujos campos podem ser acessados diretamente no modelo.

    code language-handlebars
    {{parseJson jsonStr=summerOffer.options.content result="summerOfferContent"}}
    
    table 0-row-2 1-row-2 2-row-2
    Parâmetro Descrição
    jsonStr Caminho para o campo de string que contém JSON válido
    result Nome da variável para armazenar o objeto analisado
    note
    NOTE
    Se a cadeia de caracteres JSON for inválida ou a referência for nula, result será definido como null — nenhum erro de renderização será lançado. Teste com sua resposta real do Target para confirmar se o conteúdo é um JSON válido. Disponível desde: 2026.6.0
  4. Acessar os dados. Depois de analisada, use a notação de pontos para acessar os campos a partir de summerOfferContent. Para renderizar uma lista de recomendações:

    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}}
    
Conteúdo do HTML

Quando type é html, o campo content é uma cadeia de caracteres de HTML pronta para ser renderizada. Você não precisa analisá-lo. O exemplo abaixo mostra uma resposta típica da API de entrega para uma mbox do HTML.

code language-json
{
  "status": 200,
  "prefetch": {
    "mboxes": [
      {
        "index": 0,
        "name": "SummerOffer",
        "options": {
          "content": "<div class=\"offer\"><h2>Summer Sale</h2><p>50% off Smartwatch</p></div>",
          "type": "html"
        }
      }
    ]
  }
}

Busque e extraia a mbox e, em seguida, renderize content diretamente. Ignorar parseJson.

code language-handlebars
{{externalDataLookup integrationName="target_recommendations" result="targetResponse"}}
{{valueAtPath targetResponse.prefetch.mboxes idx=0 result="summerOffer"}}
{{{summerOffer.options.content}}}
note
NOTE
Use chaves triplas {{{...}}} para renderizar o conteúdo do HTML como está. As chaves duplas {{...}} escaparão das entidades HTML e renderizarão cadeias de marcas brutas em vez da HTML.

Vídeo tutorial video

Este vídeo mostra como as Integrações conectam o Adobe Journey Optimizer a APIs externas para que você possa receber dados e conteúdo em canais de saída, email, SMS e push, para personalizações mais relevantes.

AI Knowledge Reference

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, SMS, 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.
recommendation-more-help
journey-optimizer-help