Campos suportados por tipo de mensagem
- Email
- Push
- SMS
- In-App Messages
- Live Activities
- Subject, Reply-to e Pre-header
- Message Body
- Substituição de imagem em blocos HTML. Exemplo:
<img src="{{image_url}}"/> - Ações de bloco de botão como URLs, Mail to e outros campos.
Sintaxe básica
Liquid usa duas estruturas de sintaxe principais:- Output Tags:
{{ ... }}- Exibem dados de uma variável ou objeto. - Logic Tags:
{% ... %}- Executam instruções condicionais ou loops.
Fontes de dados
| Source | Example | Description |
|---|---|---|
| Tag | {{ first_name }} | SDK OneSignal ou API (tags) |
| Property | {{ subscription.email }} | Gerenciado pelo sistema (email, external_id, language, etc.) |
| Journey Name | {{ journey.name }} | Gerenciado pelo sistema |
| Custom Data | {{ message.custom_data.key }} | custom_data passado na API Create Message |
| Data Feeds | {{ data_feed.cart.size }} | Data Feeds permitem que você puxe dados em tempo real de suas APIs diretamente nas mensagens no momento do envio. |
| Custom Events | {{ journey.last_event.name }} | Definido via Event Triggered Journeys, nós Wait Until |
Condicionais
Operadores
==,!=,>,<,>=,<=and,orcontains(string ou array)
Operações executam da direita para esquerda. Parênteses não são suportados.
liquid
if, elsif, else
liquid
unless
liquid
Filtros
Aplique filtros usando{{ variable | filter }} para ajustar como os dados são exibidos.
default
Atribua um valor padrão se a propriedade estiver vazia ou não existir.
liquid
date
O filtro date converte um timestamp em outro formato de data. O formato para esta sintaxe é o mesmo que strftime. A entrada usa o mesmo formato que Ruby’s Time.parse.
Defina datas como um timestamp unix em segundos com tags. Isso permite o uso tanto de personalização de sintaxe Liquid quanto de segmentação com Time Operators. Por exemplo, uma tag pode parecer com: bill_due : 1687968776
liquid
Result
liquid
Result
liquid
Result
now (ou today) junto com o filtro date.
liquid
Result
A hora atual será renderizada na mensagem com base em quando a mensagem é
enviada ao destinatário. Se você estiver testando a mensagem, você verá a
hora atual como quando a mensagem de teste foi enviada.
capitalize
Este filtro torna a primeira letra de uma string maiúscula e converte os caracteres restantes em minúsculas.
liquid
Result
round
Este filtro arredonda um número para o inteiro mais próximo, ou, se um número for passado como argumento, para aquele número de casas decimais.
liquid
Result
pluralize
Este filtro retorna a forma singular ou plural de uma string com base em um número fornecido. O número deve ser um número inteiro e pode ser fornecido como uma string. As formas singular e plural de uma string devem ser fornecidas.
liquid
Result
Iteração
Loops for
Executa repetidamente um bloco de código. Para uma lista completa de atributos disponíveis dentro de um loop for, consulte o objeto de loop for.
liquid
Request Body
Results
Embora poderoso e flexível, o uso de loops
for em sintaxe Liquid pode
levar a baixo desempenho de entrega de notificações em certos casos raros. Seja
consciente do seu uso de loops for. Também note que prevenimos o uso de
loops for em alguns campos do canal Push: contents, headings, subtitle,
apns_alert e urllimit & offset
Limita o loop ao número especificado de iterações. Por exemplo, se você deseja apenas mostrar 4 produtos em uma mensagem, você pode usar Limits e Offsets para especificar o número de produtos mostrados.
Data
liquid
Result
Data
liquid
where
Cria um array incluindo apenas os objetos com um valor de propriedade fornecido, ou qualquer valor verdadeiro por padrão.
Neste exemplo, assuma que você tem uma lista de produtos e deseja mostrar seus produtos de cozinha separadamente. Usando where, você pode criar um array contendo apenas os produtos que têm um type de kitchen.
Data
liquid
Result
Manipulação de String
Ocasionalmente você pode ter tags de dados que contêm strings em um formato que não é adequado para ser mostrado diretamente aos seus usuários, e você pode precisar manipular a string para ajustar o formato. Abaixo está uma tabela de comandos de sintaxe Liquid que podem ser usados para ajustar strings. Você pode usar manipulação de string tanto em Tags quanto diretamente em strings escritas na mensagem.| Command | Description | Example | Example Output |
|---|---|---|---|
replace | Substitui uma substring por outra string. | {{ 'hello world' | replace: 'world', 'there' }} | hello there |
capitalize | Torna a primeira letra de uma string maiúscula. | {{ 'hello' | capitalize }} | Hello |
upcase | Converte uma string para maiúsculas. | {{ 'hello' | upcase }} | HELLO |
downcase | Converte uma string para minúsculas. | {{ 'HELLO' | downcase }} | hello |
strip | Remove espaços em branco à esquerda e à direita de uma string. | {{ ' hello ' | strip }} | hello |
strip_html | Remove todas as tags HTML de uma string. | {{ '<p>hello</p>' | strip_html }} | hello |
truncate | Encurta uma string para um comprimento especificado, adicionando reticências (…) se necessário. | {{ 'This is a long sentence' | truncate: 10 }} | This is a… |
truncatewords | Trunca uma string após um certo número de palavras. | {{ 'This is a long sentence' | truncatewords: 2 }} | This is… |
replace_first | Substitui a primeira ocorrência de uma substring. | {{ 'hello world' | replace_first: 'world', 'there' }} | hello there |
prepend | Adiciona uma string ao início de outra string. | {{ 'world' | prepend: 'hello ' }} | hello world |
append | Adiciona uma string ao final de outra string. | {{ 'hello' | append: ' world' }} | hello world |
lstrip | Remove espaços em branco à esquerda de uma string. | {{ ' hello' | lstrip }} | hello |
rstrip | Remove espaços em branco à direita de uma string. | {{ 'hello ' | rstrip }} | hello |
FAQ
Por que a substituição não está funcionando?
- Mensagens in-app não suportam substituição de propriedade.
- Substituição de tag não funciona ao usar “Send Test Message”.
- Chaves de tag devem ser alfanuméricas, ou usar _ e - (sem pontos ou espaços).
- Substituição não aparece em modo preview — envie uma mensagem real para testar.
Como controlar espaços em branco e quebras de linha?
Use hífens:{{- ... -}}, {%- ... -%} para remover espaços em branco ao redor.
Veja Controle de espaços em branco para mais detalhes.
Como lidar com conteúdo gerado por usuários?
Envolva texto gerado por usuários em{% raw %} e {% endraw %} para prevenir análise Liquid. Veja sintaxe “raw”.
json