Skip to content

Tags de personalização compatíveis

Este artigo de referência abrange uma lista completa de tags de personalização Liquid compatíveis.

Resumo das tags compatíveis

Para facilitar, um resumo das tags de personalização compatíveis é fornecido abaixo. Para mais detalhes sobre cada tipo de tag e práticas recomendadas, continue lendo.

Tipo de tag de personalização Tags
Atributos padrão (default) {{${city}}}
{{${country}}}
{{${date_of_birth}}}
{{${email_address}}}
{{${first_name}}}
{{${gender}}}
{{${language}}}
{{${last_name}}}
{{${last_used_app_date}}}
{{${most_recent_app_version}}}
{{${most_recent_locale}}}
{{${most_recent_location}}}
{{${phone_number}}}
{{${time_zone}}}
{{${user_id}}}
{{${braze_id}}}
{{${random_bucket_number}}}
{{subscribed_state.${email_global}}}
{{subscribed_state.${subscription_group_id}}}
Atributos do dispositivo {{most_recently_used_device.${carrier}}}
{{most_recently_used_device.${id}}}
{{most_recently_used_device.${idfa}}}
{{most_recently_used_device.${model}}}
{{most_recently_used_device.${os}}}
{{most_recently_used_device.${platform}}}
{{most_recently_used_device.${google_ad_id}}}
{{most_recently_used_device.${roku_ad_id}}}
{{most_recently_used_device.${foreground_push_enabled}}}
Atributos de lista de e-mail {{${set_user_to_unsubscribed_url}}}
Esta tag substitui a tag anterior {{${unsubscribe_url}}}. Embora a tag antiga ainda funcione em e-mails criados anteriormente, recomendamos que você use a tag mais recente.

{{${set_user_to_one_click_list_unsubscribe}}}
{{${set_user_to_subscribed_url}}}
{{${set_user_to_opted_in_url}}}
Atributos de SMS {{sms.${inbound_message_body}}}
{{sms.${inbound_media_urls}}}
Atributos do WhatsApp {{whats_app.${inbound_message_body}}}
{{whats_app.${inbound_media_urls}}}
{{whats_app.${inbound_flow_response}}}
{{whats_app.${inbound_product_id}}}
{{whats_app.${inbound_catalog_id}}}
{{whats_app.${inbound_profile_name}}}
Atributos de Campaign e atributos de etapa do Canvas {{campaign.${api_id}}}
{{campaign.${dispatch_id}}}
{{campaign.${name}}}
{{campaign.${message_name}}}
{{campaign.${message_api_id}}}
Atributos do Canvas {{canvas.${name}}}
{{canvas.${api_id}}}
{{canvas.${variant_name}}}
{{canvas.${variant_api_id}}}
Atributos do cartão {{card.${api_id}}}
{{card.${name}}}
Eventos de geofencing {{event_properties.${geofence_name}}}
{{event_properties.${geofence_set_name}}}
Propriedades de eventos
(São personalizadas para o seu espaço de trabalho.)
{{event_properties.${your_custom_event_property}}}
Variáveis de contexto do Canvas {{context.${your_context_variable}}}
Atributos personalizados
(São personalizados para o seu espaço de trabalho.)
{{custom_attribute.${your_custom_attribute}}}
Propriedades de gatilho da API {{api_trigger_properties.${your_api_trigger_property}}}
Propriedades de entrada do Canvas {{context.${property_name}}}

Atributos compatíveis

Os atributos de Campaign, cartão e Canvas são compatíveis apenas em seus modelos de envio de mensagens correspondentes (por exemplo, dispatch_id não está disponível em campanhas de mensagens no app).

Consulte este artigo de ajuda para saber mais sobre como alguns desses atributos diferem entre fontes na Braze.

Diferenças entre tags do Canvas e de Campaigns

O comportamento das tags a seguir difere entre Canvas e Campaigns:

  • O comportamento de dispatch_id difere porque a Braze trata as etapas do Canvas como eventos disparados, mesmo quando são “agendadas” (exceto para etapas de entrada, que podem ser agendadas). Para saber mais, consulte Comportamento do dispatch ID.
  • Usar a tag {{campaign.${name}}} com Canvas exibe o nome do componente do Canvas. Ao usar essa tag com Campaigns, ela exibe o nome da Campaign.

Informações do dispositivo usado mais recentemente

Você pode usar os seguintes atributos como template para o dispositivo mais recente do usuário em todas as plataformas. Se um usuário não tiver usado seu aplicativo (por exemplo, se você importou o usuário via REST API), todos esses valores serão null.

Tag Descrição
{{most_recently_used_device.${browser}}} O navegador usado mais recentemente no dispositivo do usuário. Exemplos incluem “Chrome” e “Safari”.
{{most_recently_used_device.${id}}} O identificador de dispositivo da Braze. No iOS, pode ser o Apple Identifier for Vendor (IDFV) ou um UUID. Para Android e outras plataformas, é um UUID gerado aleatoriamente.
{{most_recently_used_device.${carrier}}} A operadora de telefonia do dispositivo usado mais recentemente, se disponível. Exemplos incluem “Verizon” e “Orange”.
{{most_recently_used_device.${ad_tracking_enabled}}} Se o dispositivo tem o rastreamento de anúncios ativado ou não. Este é um valor booleano (true ou false).
{{most_recently_used_device.${idfa}}} Para dispositivos iOS, este valor é o Identifier for Advertising (IDFA) se seu aplicativo estiver configurado com nossa coleta opcional de IDFA. Para dispositivos não iOS, este valor é null.
{{most_recently_used_device.${google_ad_id}}} Para dispositivos Android, este valor é o Google Play Advertising Identifier se seu aplicativo estiver configurado com nossa coleta opcional de Google Play Advertising ID. Para dispositivos não Android, este valor é null.
{{most_recently_used_device.${roku_ad_id}}} Para dispositivos Roku, este valor é o Roku Advertising Identifier coletado quando seu aplicativo é configurado com a Braze. Para dispositivos não Roku, este valor é null.
{{most_recently_used_device.${model}}} O nome do modelo do dispositivo, se disponível. Exemplos incluem “iPhone 6S”, “Nexus 6P” e “Firefox”.
{{most_recently_used_device.${os}}} O sistema operacional do dispositivo, se disponível. Exemplos incluem “iOS 9.2.1”, “Android (Lollipop)” e “Windows”.
{{most_recently_used_device.${platform}}} A plataforma do dispositivo, se disponível. Se definido, o valor é um dos seguintes: ios, android, kindle, android_china, web ou tvos.

Como existe uma grande variedade de operadoras, nomes de modelos e sistemas operacionais, recomendamos que você teste minuciosamente qualquer Liquid que dependa condicionalmente de qualquer um desses valores. Esses valores são null se não estiverem disponíveis em um dispositivo específico.

Informações do app direcionado

Para mensagens no app, você pode usar os seguintes atributos de app dentro do Liquid. Os valores são baseados na chave de API SDK que seus apps usam para solicitar o envio de mensagens.

Tag Descrição
{{app.${api_id}}} A chave de API do app que está solicitando a mensagem. Por exemplo, você pode usar essa chave em conjunto com abort_message() do Liquid para evitar o envio de mensagens no app para determinados apps, como plataformas de TV ou builds de desenvolvimento que usam uma chave de API SDK separada.
{{app.${name}}} O nome do app (conforme definido no dashboard da Braze) que está solicitando a mensagem.

Por exemplo, este código Liquid cancela uma mensagem se os apps solicitantes não forem uma das duas chaves de API na lista:

1
2
3
4
5
6
{% assign allowed_api_keys = 'sdk_api_key_1,sdk_api_key_2' | split: ',' %}
{% if allowed_api_keys contains {{app.${api_id}}} %}
User is in list of apps
{% else %}
{% abort_message("User not in list of apps") %}
{% endif %}

Informações do dispositivo direcionado

Para notificações por push, mensagens no app e Banners, você pode usar os seguintes atributos como template para o dispositivo que recebe a mensagem. Uma notificação por push, mensagem no app ou Banner pode incluir atributos do dispositivo no qual o usuário lê a mensagem. Esses atributos não funcionam para Content Cards ou e-mails. Para e-mails, as mensagens são renderizadas antes do envio, então o dispositivo em que o usuário abre o e-mail é desconhecido nesse momento.

Tag Descrição
{{targeted_device.${id}}} Este é o identificador de dispositivo da Braze. No iOS, pode ser o Apple Identifier for Vendor (IDFV) ou um UUID. Para Android e outras plataformas, é um UUID gerado aleatoriamente. Por exemplo, se um usuário tem cinco dispositivos, uma tentativa de envio ocorre para todos os cinco dispositivos, cada um usando o identificador de dispositivo correspondente. Se uma mensagem estiver configurada para enviar ao dispositivo usado mais recentemente pelo usuário, apenas uma tentativa de envio ocorre para o dispositivo mais recente identificado pela Braze.
{{targeted_device.${carrier}}} A operadora de telefonia do dispositivo usado mais recentemente, se disponível. Exemplos incluem “Verizon” e “Orange”.
{{targeted_device.${idfa}}} Para dispositivos iOS, este valor é o Identifier for Advertising (IDFA) se seu aplicativo estiver configurado com nossa coleta opcional de IDFA. Para dispositivos não iOS, este valor é null.
{{targeted_device.${google_ad_id}}} Para dispositivos Android, este valor é o Google Play Advertising Identifier se seu aplicativo estiver configurado com nossa [coleta opcional de Google Play Advertising ID]. Para dispositivos não Android, este valor é null.
{{targeted_device.${roku_ad_id}}} Para dispositivos Roku, este valor é o Roku Advertising Identifier coletado quando seu aplicativo é configurado com a Braze. Para dispositivos não Roku, este valor é null.
{{targeted_device.${model}}} O nome do modelo do dispositivo, se disponível. Exemplos incluem “iPhone 6S”, “Nexus 6P” e “Firefox”.
{{targeted_device.${os}}} O sistema operacional do dispositivo, se disponível. Exemplos incluem “iOS 9.2.1”, “Android (Lollipop)” e “Windows”.
{{targeted_device.${platform}}} A plataforma do dispositivo, se disponível. Se definido, o valor é um dos seguintes: ios, android, kindle, android_china, web ou tvos. Você também pode usar a tag de personalização most_recently_used_device.
{{targeted_device.${foreground_push_enabled}}} Este valor é true quando o dispositivo direcionado está habilitado para push em primeiro plano, false caso contrário.

Como existe uma grande variedade de operadoras, nomes de modelos e sistemas operacionais, recomendamos que você teste minuciosamente qualquer lógica que dependa condicionalmente de qualquer um desses valores. Esses valores são null se não estiverem disponíveis em um dispositivo específico.

Além disso, para notificações por push, é possível que a Braze não consiga identificar o dispositivo associado à notificação por push em determinadas circunstâncias, como quando o token por push foi importado via API, resultando em valores null para essas mensagens.

Exemplo de uso de um valor padrão "there" ao usar uma variável de nome em uma mensagem push.

Usando lógica condicional em vez de um valor padrão

Em algumas circunstâncias, você pode optar por usar lógica condicional em vez de definir um valor padrão. A lógica condicional permite enviar mensagens que diferem com base no valor de um atributo personalizado. Além disso, você pode usar lógica condicional para cancelar mensagens para clientes com valores de atributo nulos ou em branco.

Caso de uso

Por exemplo, digamos que você está enviando uma notificação de saldo de recompensas para clientes. Não há uma boa maneira de lidar com clientes com saldos baixos e nulos usando valores padrão.

Nesse caso, há duas opções que podem funcionar melhor do que definir um valor padrão:

  1. Cancelar a mensagem para clientes com saldos baixos, nulos e em branco.

    1
    2
    3
    4
    5
    
    {% if {{custom_attribute.${balance}}} > 0 %}
    Your rewards balance is {{custom_attribute.${balance}}}
    {% else %}
    {% abort_message() %}
    {% endif %}
    
  2. Enviar uma mensagem completamente diferente para esses clientes, como:

    1
    2
    3
    4
    5
    
    {% if ${first_name} != blank and ${first_name} != null %}
    Hello {{${first_name} | default: 'there'}}, thanks for downloading!
    {% else %}
    Thanks for downloading!
    {% endif %}
    

Neste caso de uso, um usuário com nome em branco ou nulo recebe a mensagem “Thanks for downloading”. Você deve incluir um valor padrão para o nome para garantir que seu cliente não veja Liquid em caso de erro.

Tags de variável

Você pode usar a tag assign para criar uma variável no criador de mensagens. Recomendamos usar um nome exclusivo para sua variável. Se você criar uma variável com um nome semelhante às tags de personalização compatíveis (como language), isso pode afetar sua lógica de envio de mensagens.

Depois de criar uma variável, você pode referenciá-la em sua lógica de envio de mensagens ou mensagem. Essa tag é útil quando você deseja reformatar conteúdo retornado pelo nosso recurso de Conteúdo conectado. Você pode ler mais na documentação da Shopify sobre tags de variável.

Caso de uso

Digamos que você permite que seus clientes troquem seus pontos de recompensa por prêmios após acumularem 100 pontos de recompensa. Então, você só quer enviar mensagens para clientes que teriam um saldo de pontos maior ou igual a 100 se fizessem essa compra adicional:

1
2
3
4
5
6
{% assign new_points_balance = {{custom_attribute.${current_rewards_balance} | plus: 50}} %}
{% if new_points_balance >= 100 %}
Make a purchase to bring your rewards points to {{new_points_balance}} and cash in today!
{% else %}
{% abort_message('not enough points') %}
{% endif %}

Tags de iteração

Tags de iteração podem ser usadas para executar um bloco de código repetidamente. O caso de uso abaixo apresenta a tag for.

Caso de uso

Digamos que você está fazendo uma promoção de tênis Nike e quer enviar mensagens para clientes que demonstraram interesse na Nike. Você tem um array de marcas de produtos visualizados no perfil de cada cliente. Esse array pode conter até 25 marcas de produtos, mas você só quer enviar mensagens para clientes que visualizaram um produto Nike como uma das 5 visualizações de produtos mais recentes.

1
2
3
4
5
6
7
8
9
10
{% for items in {{custom_attribute.${Brands Viewed}}} limit:5 %}
{% if {{items}} contains 'Converse' %}
{% assign converse_viewer = true %}
{% endif %}
{% endfor %}
{% if converse_viewer == true %}
Sale on Converse!
{% else %}
{% abort_message() %}
{% endif %}

Neste caso de uso, verificamos os cinco primeiros itens no array de marcas de tênis visualizados. Se um desses itens for Converse, criamos a variável converse_viewer e a definimos como true.

Então, enviamos a mensagem de promoção quando converse_viewer é true. Caso contrário, cancelamos a mensagem.

Este é um exemplo simples de como tags de iteração podem ser usadas no criador de mensagens da Braze. Você pode encontrar mais informações na documentação da Shopify sobre tags de iteração.

Tags de sintaxe

Tags de sintaxe podem ser usadas para controlar como o Liquid é renderizado. Você pode usar a tag echo para retornar uma expressão. Isso é o mesmo que envolver uma expressão usando chaves, exceto que você pode usar essa tag dentro de tags Liquid. Você também pode usar a tag liquid para ter um bloco de Liquid sem delimitadores em cada tag. Cada tag deve estar em sua própria linha ao usar a tag liquid. Confira a documentação da Shopify sobre tags de sintaxe para mais informações e exemplos.

Com o controle de espaços em branco, você pode remover espaços em branco ao redor de suas tags, ajudando a controlar ainda mais a aparência da saída do Liquid.

Códigos de status HTTP

Você pode utilizar o status HTTP de uma chamada de Conteúdo conectado salvando-o primeiro como uma variável local e depois usando a chave __http_status_code__. Por exemplo:

1
2
3
4
{% connected_content https://example.com/api/endpoint :save connected %}
{% if connected.__http_status_code__ != 200 %}
{% abort_message('Connected Content returned a non-200 status code') %}
{% endif %}

Enviar mensagens com base no idioma, localidade mais recente e fuso horário

Em algumas situações, você pode querer enviar mensagens específicas para determinadas localidades. Por exemplo, o português brasileiro é tipicamente diferente do português europeu.

Caso de uso: Localizar com base na localidade recente

Aqui está um caso de uso de como você pode usar a localidade mais recente para localizar ainda mais uma mensagem internacionalizada.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{% if ${language} == 'en' %}
Message in English
{% elsif  ${language} == 'fr' %}
Message in French
{% elsif  ${language} == 'ja' %}
Message in Japanese
{% elsif  ${language} == 'ko' %}
Message in Korean
{% elsif  ${language} == 'ru' %}
Message in Russian
{% elsif ${most_recent_locale} == 'pt_BR' %}
Message in Brazilian Portuguese
{% elsif ${most_recent_locale} == 'pt_PT' %}
Message in European Portuguese
{% elsif  ${language} == 'pt' %}
Message in default Portuguese
{% else %}
Message in default language
{% endif %}

Neste caso de uso, clientes com a localidade mais recente pt_BR recebem uma mensagem em português brasileiro, e clientes com a localidade mais recente pt_PT recebem uma mensagem em português europeu. Clientes que não atendem às duas primeiras condições, mas têm o idioma definido como português, recebem uma mensagem no tipo de português padrão que você desejar.

Caso de uso: Direcionar usuários por fuso horário

Você também pode direcionar usuários pelo fuso horário. Por exemplo, enviar uma mensagem se eles estiverem no fuso EST e outra se estiverem no PST. Para fazer isso, salve o horário atual em UTC e compare uma instrução if/else com o horário atual do usuário para enviar a mensagem certa para o fuso horário certo. Você deve configurar a Campaign para enviar no horário local do usuário, para que ele receba a Campaign no momento certo.

Veja o caso de uso a seguir para saber como escrever uma mensagem que é entregue entre 14h e 15h com uma mensagem específica para cada fuso horário.

1
2
3
4
5
6
7
8
{% assign hour_in_utc = 'now' | date: '%H' | plus:0 %}
{% if hour_in_utc >= 19 && hour_in_utc < 20 %}
It is between 2:00:00 pm and 2:59:59 pm ET!
{% elsif hour_in_utc >= 22 && hour_in_utc < 23 %}
It is between 2:00:00 pm and 2:59:59 pm PT!
{% else %}
{% abort_message %}
{% endif %}

Enviar mensagens com um número aleatório

A tag {% random %} retorna um número aleatório. Você pode usá-la para lógica de teste A/B, amostragem ou variação do conteúdo da mensagem.

Tag Descrição
{% random %} Um float entre 0 e 1 (inclusivo de 0, exclusivo de 1).
{% random 10 %} (argumento inteiro) Um inteiro variando de 0 até, mas não incluindo, o inteiro especificado. Por exemplo, {% random 10 %} retorna um inteiro de 0 a 9.

Caso de uso: Enviar variantes aleatórias para os usuários

1
2
3
4
5
6
7
{% capture roll_str %}{% random %}{% endcapture %}
{% assign roll = roll_str | plus: 0 %}
{% if roll < 0.5 %}
Show variant A
{% else %}
Show variant B
{% endif %}

Tag de carrinho de compras de eCommerce

A tag shopping_cart acessa o conteúdo do carrinho de um usuário nos casos de uso de eCommerce de carrinho abandonado e checkout abandonado no Canvas. Substitua CART_ID pelo valor real do ID do carrinho, como {{context.${cart_id}}}.

1
{% shopping_cart CART_ID :abort_if_not_abandoned false %}

O parâmetro abort_if_not_abandoned neste exemplo se aplica apenas ao caso de uso de checkout abandonado quando usado com o evento ecommerce.checkout_started. Ele não é aplicável a casos de uso de carrinho abandonado. Para mais detalhes, consulte abort_if_not_abandoned.

New Stuff!