Pular para o conteúdo principal
Use propriedades (como tags de usuário e identificadores como External ID) para personalizar mensagens e payloads de entrega com sintaxe Liquid. O OneSignal renderiza os placeholders Liquid no momento do envio, usando dados já armazenados no usuário, subscription, Journey, mensagem, template, app ou organização. Você pode usar esses dados para personalizar mensagens, webhooks de Journey e Event Streams.

Quando usar personalização com propriedades

Use a personalização com propriedades para renderizar conteúdo no momento do envio usando dados que já existem no OneSignal — mais comumente tags de usuário, External ID e campos de subscription como e-mail ou número de telefone. Esta é a abordagem correta quando:
  • Os dados já estão armazenados no OneSignal
  • Você quer que os placeholders Liquid sejam substituídos automaticamente quando a mensagem for enviada
  • Você não precisa buscar ou calcular dados frescos no momento da entrega
Se o valor precisa ser buscado ou calculado no momento do envio (por exemplo, preços ou estoque em tempo real), use Data Feeds ou nossa API com custom_data.Se o valor vem do evento que fez o usuário entrar ou progredir em um Journey, use a personalização com Custom Events.

Suporte de canal

Cada canal suporta tipos e campos de propriedade específicos.
Suporta Propriedades de User e Subscription em:
  • Assunto, Responder para e Pré-header
  • Corpo da mensagem
  • Atributos HTML (por exemplo: <img src="{{ image_url }}" />)
  • Ações de botão (URLs, mailto, etc.)

Como funciona a personalização com propriedades

O OneSignal substitui os placeholders Liquid pelos valores de propriedade correspondentes do usuário e subscription que estão recebendo a mensagem.
Liquid
Hi {{ first_name | default: "friend" }}!
Congrats on reaching level {{ level | default: "1" }}!
Se um usuário tiver as tags first_name: Jon e level: 5, ele verá:
Text
Hi Jon!
Congrats on reaching level 5!

Se um usuário não tiver tags definidas, ele verá os valores padrão.

Referência de objetos Liquid de propriedades

Use esta seção para consultar os nomes exatos de objetos e campos disponíveis em Liquid.

Propriedades de User e Subscription

Use user para dados no nível do usuário. Use subscription quando precisar de valores específicos do canal, como endereço de e-mail ou número de telefone.
user.tags
As Tags do usuário. Você pode referenciar as tags de várias formas:
  • Use a key diretamente ou coloque a chave após tags
  • Exemplo de tags definidas: first_name: Jon, level: 5
Liquid
Your first name is {{ first_name }}.
Your first name is {{ user.tags.first_name }}.
Your level is {{ level }}.
Your level is {{ user.tags.level }}.
  • Itere sobre as tags com sintaxe de for-loop. Este exemplo exibe pares chave:valor separados por vírgulas.
Liquid
{% for tag in user.tags %}
{{ tag[0] }}: {{ tag[1] }}
{% unless forloop.last %},
{% endunless %}{% endfor %}
user.external_id
O External ID do usuário.
Liquid
Your user ID is {{ user.external_id }}.
Your user ID is {{ subscription.external_id }}.
user.onesignal_id
O OneSignal ID do usuário.
Liquid
Your OneSignal user ID is {{ user.onesignal_id }}.
subscription.email
O endereço de e-mail da Subscription de e-mail que está recebendo a mensagem.
Liquid
Thanks for subscribing with email {{ subscription.email }}.
subscription.phone_number
O número de telefone da Subscription de SMS que está recebendo a mensagem.
Liquid
Thanks for subscribing with phone number {{ subscription.phone_number }}.
user.language
O código de idioma do usuário.
Liquid
Preferred language: {{ user.language }}
Preferred language: {{ subscription.language }}
user.subscriptions
As Subscriptions do usuário.
  • Itere sobre as subscriptions com sintaxe de for-loop.
  • Este exemplo exibe o token e o ID de cada subscription separados por vírgulas.
JSON
{
  "subscriptions": "{% for subscription in user.subscriptions %}{% if subscription.subscription_token %}{{ subscription.subscription_token }}: {{ subscription.id }}{% unless forloop.last %}, {% endunless %}{% endif %}{% endfor %}"
}
subscription.unsubscribe_token
O token usado com a API de cancelar inscrição de e-mail com token.
Unsubscribe: https://your-domain.com/unsubscribe?token={{ subscription.unsubscribe_token }}

Propriedades de Journey

O objeto journey permite que você referencie o nome do Journey ou acesse a personalização com Custom Events para o Journey.
journey.name
O nome do Journey.
JSON
{
  "journey_name": "{{ journey.name }}"
}

Propriedades de Message

O objeto message fornece acesso ao ID da mensagem, nome e ID do template, o que pode ser útil para Event Streams, além de acesso ao custom_data para personalizar mensagens enviadas pelo seu backend.
message.id
O ID da mensagem definido pelo OneSignal.
{
  "message_id": "{{ message.id }}"
}
message.name
O nome da mensagem definido por você, o remetente.
{
  "message_name": "{{ message.name }}"
}
message.template_id
O ID do template definido pelo OneSignal.
{
  "template_id": "{{ message.template_id }}"
}

Propriedades de Template

O objeto template fornece acesso ao ID e nome do Template usado para enviar a mensagem. Isso pode ser útil para Event Streams.
template.id
O ID do template definido pelo OneSignal.
{
  "template_id": "{{ template.id }}"
}
template.name
O nome do template definido por você, o remetente.
{
  "template_name": "{{ template.name }}"
}

Propriedades de App e organização

Os objetos app e org fornecem detalhes sobre o App e Organização que enviou a mensagem. Isso pode ser útil para Event Streams.
app.id
O ID do app definido pelo OneSignal.
{
  "app_id": "{{ app.id }}"
}
app.name
O nome do app definido por você, o proprietário do app.
{
  "app_name": "{{ app.name }}"
}
org.id
O ID da Organização definido pelo OneSignal.
{
  "org_id": "{{ org.id }}"
}
org.name
O nome da Organização definido por você, o proprietário da Organização.
{
  "org_name": "{{ org.name }}"
}

Exemplo: Carrinho abandonado com tags

Este exemplo mostra como personalizar mensagens de carrinho abandonado usando tags de usuário. Ele se baseia no tutorial de Carrinho Abandonado. Exemplo de tags definidas:
JSON
{
  "cart_updated": "unix_timestamp_seconds",
  "product_image": "https://i.imgur.com/ssPCfbC.png",
  "product_name": "24 Pack of Acorns",
  "product_quantity": "1",
  "product_price": "$12.99",
  "cart_items_count": "4",
  "cart_url": "https://yourdomain.com/cart"
}

Template de e-mail

1

Criar um novo template de e-mail

Navegue até Mensagens > Templates > Novo Template de E-mail e abra o Editor Arrastar e Soltar.
2

Adicionar a estrutura de layout

Crie cinco linhas:
  • Linhas 1, 2 e 4: uma coluna com um bloco de Parágrafo
  • Linha 3: quatro colunas com HTML | Parágrafo | Parágrafo | Parágrafo
  • Linha 5: uma coluna com um bloco de Botão
3

Adicionar liquid aos blocos de parágrafo

Na linha 1, adicione:
Liquid
We're holding onto {{cart_items_count}} items in your cart, but don't wait too long, other squirrels are getting ahead!
Na linha 2, adicione uma descrição do que o usuário está vendo:
Text
Currently in your cart:
Na linha 4, adicione outro CTA:
Text
Checkout now while supplies last!
4

Exibir o item mais recente

Na linha 3, configure as quatro colunas:Coluna 1 (bloco HTML):
HTML
<img src="{{product_image}}" alt="Image" style="max-width:100%;" />
Colunas 2–4 (blocos de Texto):
  • Coluna 2: {{product_name}}
  • Coluna 3: {{product_quantity}}
  • Coluna 4: {{product_price}}
5

Adicionar a URL do carrinho ao botão

No bloco de Botão da linha 5, defina a URL de ação para:
{{cart_url}}
6

Testar e visualizar o template

Envie um e-mail de teste para você mesmo usando o botão Testar e visualizar.
  • Certifique-se de que as tags estejam definidas na sua Subscription de e-mail.
7

Estilizar o template

Sucesso! Agora você pode aplicar seu próprio estilo ao template. Consulte Criar e-mails com arrastar e soltar.

Template de push

Notificações push têm espaço limitado, então exiba um item e mencione a contagem total. Campo de mensagem: Exiba o item e a contagem com gramática correta usando declarações condicionais.
Liquid
{% assign item_count = cart_items_count | plus: 0 %}
{% if item_count == 1 %}
You left {{product_name}} in your cart.
{% endif %}
{% if item_count == 2 %}
You left {{product_name}} and {{item_count | minus: 1}} more item in your cart.
{% endif %}
{% if item_count > 2 %}
You left {{product_name}} and {{item_count | minus: 1}} more items in your cart.
{% endif %}
Campo de imagem:
Liquid
{{product_image | default: "https://i.imgur.com/ssPCfbC.png"}}
Campo de URL de abertura:
{{cart_url | default: "https://yourdomain.com/cart"}}
Sucesso! Agora você pode criar mais templates e usá-los no Journey de Carrinho Abandonado.

Páginas relacionadas

Precisa de ajuda?Converse com nossa equipe de Suporte ou envie email para support@onesignal.comPor favor inclua:
  • Detalhes do problema que você está enfrentando e passos para reproduzir se disponível
  • Seu OneSignal App ID
  • O External ID ou Subscription ID se aplicável
  • A URL para a mensagem que você testou no Dashboard OneSignal se aplicável
  • Quaisquer logs ou mensagens de erro relevantes
Estamos felizes em ajudar!