Auxiliares gs-helpers
Valor de fallback padrão default-value
O auxiliar Default Fallback Value
será usado para retornar um valor de fallback padrão se um atributo estiver vazio ou nulo. Esse mecanismo funciona para atributos de Perfil e eventos de Jornada.
Sintaxe
Hello {%=profile.personalEmail.name.firstName ?: "there" %}!
Neste exemplo, o valor there
será exibido se o atributo firstName
desse perfil estiver vazio ou nulo.
Condições if-function
O auxiliar if
é usado para definir um bloco condicional.
Se a expressão evaluation retornar true, o bloco será renderizado, caso contrário, será ignorado.
Sintaxe
{%#if contains(profile.personalEmail.address, ".edu")%}
<a href="https://www.adobe.com/academia">Check out this link</a>
Após o auxiliar if
, você pode inserir uma instrução else
para especificar um bloco de código a ser executado, se a mesma condição for falsa.
A instrução elseif
especificará uma nova condição para testar se a primeira instrução retorna false.
Formato
{
{
{%#if condition1%} element_1
{%else if condition2%} element_2
{%else%} default_element
{%/if%}
}
}
Exemplos
-
Renderizar diferentes links de repositório com base em expressões condicionais
code language-sql {%#if profile.homeAddress.countryCode = "FR"%} <a href="https://www.somedomain.com/fr">Consultez notre catalogue</a> {%else%} <a href="https://www.somedomain.com/en">Checkout our catalogue</a> {%/if%}
-
Determinar extensão de endereço de email
code language-sql {%#if contains(profile.personalEmail.address, ".edu")%} <a href="https://www.adobe.com/academia">Checkout our page for Academia personals</a> {%else if contains(profile.personalEmail.address, ".org")%} <a href="https://www.adobe.com/orgs">Checkout our page for Non Profits</a> {%else%} <a href="https://www.adobe.com/users">Checkout our page</a> {%/if%}
-
Adicionar um link condicional
A operação a seguir adicionará um link para o site 'www.adobe.com/academia' para perfis com endereços de email '.edu' somente, para o site 'www.adobe.com/org' para perfis com endereços de email '.org' e o URL padrão 'www.adobe.com/users' para todos os outros perfis:
code language-sql {%#if contains(profile.personalEmail.address, ".edu")%} <a href="https://www.adobe.com/academia">Checkout our page for Academia personals</a> {%else if contains(profile.personalEmail.address, ".org")%} <a href="https://www.adobe.com/orgs">Checkout our page for Non Profits</a> {%else%} <a href="https://www.adobe.com/users">Checkout our page</a> {%/if%}
-
Conteúdo condicional com base na associação ao público-alvo
code language-sql {%#if profile.segmentMembership.get("ups").get("5fd513d7-d6cf-4ea2-856a-585150041a8b").status = "existing"%} Hi! Esteemed gold member. <a href="https://www.somedomain.com/gold">Checkout your exclusive perks </a> {%else if profile.segmentMembership.get("ups").get("5fd513d7-d6cf-4ea2-856a-585150041a8c").status = "existing"%} Hi! Esteemed silver member. <a href="https://www.somedomain.com/silver">Checkout your exclusive perks </a> {%/if%}
A menos que unless
O auxiliar unless
é usado para definir um bloco condicional. Por oposição ao auxiliar if
, se a avaliação da expressão retornar falso, o bloco será renderizado.
Sintaxe
{%#unless unlessCondition%} element_1 {%else%} default_element {%/unless%}
Exemplo
Renderize algum conteúdo com base na extensão de endereço de email:
{%#unless endsWith(profile.personalEmail.address, ".edu")%}
Some Normal Content
{%else%}
Some edu specific content
{%/unless%}
Each each
O auxiliar each
é usado para iterar sobre uma matriz.
A sintaxe do auxiliar é {{#each ArrayName}}
YourContent {{/each}}
Podemos fazer referência a itens de matriz individuais usando a palavra-chave this dentro do bloco. O índice do elemento da matriz pode ser renderizado usando {{@index}}
.
Sintaxe
{{#each profile.productsInCart}}
<li>{{this.name}}</li>
{{/each}}
Exemplo
{{#each profile.homeAddress.city}}
{{@index}} : {{this}}<br>
{{/each}}
Exemplo
Renderize uma lista de produtos que este usuário tem em seu carrinho:
{{#each profile.products as |product|}}
<li>{{product.productName}} {{product.productRating}}</li>
{{/each}}
Com with
O auxiliar with
é usado para alterar o token de avaliação da parte do modelo.
Sintaxe
{{#with profile.person.name}}
{{this.firstName}} {{this.lastName}}
{{/with}}
O auxiliar with
é útil também para definir uma variável de atalho.
Exemplo
Use com para suavizar nomes de variáveis longos para nomes mais curtos:
{{#with profile.person.name as |name|}}
Hi {{name.firstName}} {{name.lastName}}!
Checkout our trending products for today!
{{/with}}
Let let
A função let
permite que uma expressão seja armazenada como uma variável a ser usada posteriormente em uma consulta.
Sintaxe
{% let variable = expression %} {{variable}}
Exemplo
O exemplo a seguir permite calcular a soma total dos preços dos produtos no carrinho com preços entre 100 e 1000.
{% let sum = 0%}
{{#each profile.productsInCart as |p|}}
{%#if p.price>100 and p.price<1000%}
{%let sum = sum + p.price %}
{%/if%}
{{/each}}
{{sum}}
Metadados de execução execution-metadata
O auxiliar executionMetadata
permite capturar e armazenar dinamicamente pares de valores-chave personalizados no contexto de execução da mensagem.
Sintaxe
{{executionMetadata key="your_key" value="your_value"}}
Nesta sintaxe, key
refere-se ao nome dos metadados e value
são os metadados a serem mantidos.
Caso de uso
Com essa função, é possível anexar informações contextuais a qualquer ação nativa de suas campanhas ou jornadas. Isso permite exportar dados contextuais de delivery em tempo real para sistemas externos para várias finalidades, como rastreamento, análise, personalização e processamento downstream.
Por exemplo, você pode usar o assistente de Metadados de execução para anexar uma ID específica a cada delivery enviado para cada perfil. Essas informações são geradas durante o tempo de execução e os metadados de execução enriquecidos podem ser exportados para reconciliação downstream com uma plataforma de relatórios externa.
Como funciona
Selecione qualquer elemento do conteúdo do canal dentro de uma campanha ou jornada e, usando o editor de personalização, adicione o auxiliar do executionMetadata
a esse elemento.
Durante o tempo de execução, o valor dos metadados é adicionado ao Conjunto de Dados de Eventos de Feedback de Mensagens existente com a seguinte adição de esquema:
"_experience": {
"customerJourneyManagement": {
"messageExecution": {
"metadata": {
"your_key": "your_value"
}
}
}
}
Limitação
Há um limite superior de 2 kb nos pares de valores principais por ação.
Se o limite de 2Kb for excedido, a mensagem ainda será entregue, mas qualquer um dos pares de valores principais poderá ser truncado.
Exemplo
{{executionMetadata key="firstName" value=profile.person.name.firstName}}
Neste exemplo, assumindo profile.person.name.firstName
= "Alex", a entidade resultante é:
{
"key": "firstName",
"value": "Alex"
}