Perguntas frequentes
Nesta página, você encontra respostas para perguntas frequentes sobre Liquid.

A Braze atualmente não oferece suporte a 100% do Liquid da Shopify, apenas a certas partes, que tentamos descrever em nossa documentação. Teste todas as mensagens que usam Liquid antes de enviá-las, para reduzir o risco de erros ou de uso de Liquid não suportado.
Sobre Liquid na Braze
Como uso snippets de Liquid na Braze?
Em muitos casos, você pode incorporar snippets de Liquid navegando até suas Campaigns ou Canvas e inserindo Liquid no modal de personalização em áreas como o corpo do e-mail ou nos seus segmentos.
Onde posso saber mais?
Para saber mais sobre Liquid, confira nosso caminho de aprendizado guiado Personalização dinâmica com Liquid no Braze Learning. Você também pode consultar a biblioteca de casos de uso de Liquid para inspiração e uma variedade de exemplos de personalização usando Liquid.
Qual é a diferença entre usar Liquid e Conteúdo conectado para personalização?
O Conteúdo conectado da Braze é um exemplo de Liquid tag. Ele também é usado para personalização, mas os dados vêm de um endpoint externo em vez de dados armazenados na Braze. Confira nossa seção dedicada de Conteúdo conectado para saber mais sobre como expandir a personalização das suas mensagens.
O que é templating de Liquid?
Essa é a forma mais comum de usar Liquid na Braze. O templating de Liquid envolve puxar dados do perfil de um usuário para uma mensagem. Esses dados podem variar desde o nome do usuário até eventos personalizados de uma mensagem disparada por evento.
Consulte Tags de personalização suportadas para uma lista completa das Liquid tags suportadas.
Usar Liquid registra pontos de dados?
Não.
Tags de personalização e fontes de dados
Como posso usar Liquid para enviar uma saudação personalizada?
Para uma saudação personalizada usando o nome do usuário, puxe os atributos padrão do perfil de usuário, como {{${first_name}}} e {{${last_name}}}.
Você também pode usar uma instrução {% if X %} de Liquid para fazer renderização condicional com base em qualquer coisa, como o dia da semana ou atributos personalizados. Para saber mais sobre os operadores de Liquid suportados que podem ser usados em instruções condicionais, confira Operadores.
Como posso personalizar uma mensagem com base no local de um usuário?
Existe um atributo padrão para o local do usuário: {{${most_recent_location}}}.
Qual é a diferença entre {{campaign.${name}}} e {{campaign.${message_name}}}?
Tanto {{campaign.${name}}} quanto {{campaign.${message_name}}} são Liquid tags de personalização suportadas. Ambas as tags fazem referência a atributos da Campaign. {{campaign.${name}}} indica o nome da sua Campaign, e {{campaign.${message_name}}} é o nome da variante da sua mensagem.
Para uso em URLs e query strings (por exemplo, quando um nome contém % ou espaços), consulte Nomes de Campaign em URLs.
Como uso Liquid com objetos aninhados?
A Braze tem um recurso integrado que gera código Liquid para segmentos que podem ser usados em uma mensagem. Especificamente, você pode criar um segmento que corresponda a múltiplos critérios em um objeto.
Para saber mais, confira Segmentação com múltiplos critérios.
Como uso atributos de evento para personalizar uma mensagem que um evento está disparando?
Você pode acessar propriedades de eventos disparados por API com a tag api_triggered_property: {{api_trigger_properties.${attribute_key}}}.
A Braze suporta array de arrays em Liquid?
O Liquid não suporta nativamente arrays de arrays. Armazene os valores como um array de strings separadas por vírgula e use o filtro split para analisá-los quando necessário.
Variáveis e sintaxe
Como atribuo variáveis com Liquid?
Você pode criar e atribuir variáveis usando a tag assign. Isso cria uma variável no criador de mensagens que também pode ser referenciada ao longo da sua mensagem.
Quando devo usar assign versus capture?
Tanto assign quanto capture criam variáveis de Liquid, mas servem a propósitos diferentes:
assigné para variáveis simples que armazenam um único valor, como um booleano, número ou string simples. Você também pode aplicar um único filtro na mesma linha.captureé para armazenar um bloco de texto que pode incluir múltiplas variáveis, strings ou expressões complexas.
Use capture quando o valor for complexo demais para uma única instrução assign, como URLs que utilizam outras variáveis de Liquid ou atributos personalizados como parâmetros. capture também é preferido ao implementar variáveis de Liquid no corpo de chamadas de Conteúdo conectado.
Exemplos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{% comment %}Use assign for custom attributes{% endcomment %}
{% assign name = {{custom_attribute.${first_name}}} %}
{% assign price = {{custom_attribute.${price}}} | plus: 0 %}
{% comment %}Use assign for a simple variable{% endcomment %}
{% assign discount_label = "20% off" %}
Hello {{ customer.first_name | default: "there" }}, enjoy {{ discount_label }} on your next order!
{% comment %}Use capture for complex strings{% endcomment %}
{% capture greeting %}Hello, {{custom_attribute.${first_name}}}! Your order #{{custom_attribute.${order_id}}} is ready.{% endcapture %}
{{ greeting }}
{% comment %}Use capture to create conditional content{% endcomment %}
{% capture promo_block %}
{% if customer.vip == true %}
As a VIP member, you get free shipping.
{% else %}
Join our VIP program to unlock free shipping.
{% endif %}
{% endcapture %}
As variáveis de Liquid são compartilhadas entre a linha de assunto e o corpo?
Não. A Braze renderiza cada componente da mensagem separadamente (como linha de assunto, corpo HTML, pré-cabeçalho e título de push). Atribuições ou capturas feitas em um campo não ficam disponíveis em outro. Repita a chamada de Liquid ou Conteúdo conectado em cada campo que precisar do valor.
O que é lógica de loop for e como posso usá-la?
Loops for também são conhecidos como tags de iteração. Usar lógica de loop for nos seus snippets de Liquid permite que você percorra blocos de Liquid até que uma condição seja atendida.
Na Braze, isso pode ser usado para verificar itens em um atributo personalizado de array, ou uma lista de valores e objetos retornados por uma chamada de catálogo, seleção ou resposta de Conteúdo conectado. Especificamente, você pode usar lógica de loop for como parte do seu envio de mensagens para verificar se um produto está em estoque ou se um produto tem uma avaliação mínima.
Por exemplo, digamos que você tenha um catálogo chamado “Games” que tem uma seleção chamada “cheap_games”. Para puxar os títulos dos jogos em “cheap_games”, você pode usar este snippet de Liquid:
1
2
3
4
{% catalog_selection_items Games cheap_games %}
{% for item in items %}
Get this game: {{ item.title }}
{% endfor %}
Quando as condições definidas forem atendidas, sua mensagem pode prosseguir. Usar essa lógica é uma forma útil de economizar tempo, em vez de repetir blocos de Liquid para diferentes condições.
O que é lógica de cancelamento e como posso usá-la?
A lógica de cancelamento permite que você interrompa o envio de uma mensagem se as condições forem atendidas. Isso é especialmente útil para evitar que mensagens incompletas sejam enviadas aos seus usuários. Para exemplos de lógica de cancelamento nas suas Campaigns de marketing, leia mais em Cancelamento de mensagens.
Posso usar Liquid dentro da tag abort_message?
Não. A tag {% abort_message %} aceita uma string estática entre aspas, não personalização com Liquid. Use outra lógica de Liquid antes da tag se precisar de um comportamento condicional de cancelamento.
Canvas, catálogos e propriedades de gatilho
Por que meu Liquid disparado por API está falhando na Braze?
Uma causa comum é um par extra de chaves. Por exemplo, {{{api_trigger_properties.${attribute_key}}}} não é uma sintaxe de personalização válida na Braze. Use exatamente duas chaves de abertura e duas de fechamento: {{api_trigger_properties.${attribute_key}}}.
Existem limites de tamanho para propriedades de contexto do Canvas?
A Braze não impõe um limite rígido para propriedades de contexto do Canvas, mas mantenha as cargas úteis abaixo de aproximadamente 1 KB (~1.000 caracteres). Objetos maiores podem aumentar o uso de memória e atrasar a renderização de mensagens durante envios de alto volume.
Por que recebo um erro de Liquid ao pré-visualizar certos tipos de dados no dashboard?
Alguns tipos de propriedade de contexto do Canvas exigem coerção em Liquid antes de serem usados em comparações ou operações matemáticas. Por exemplo, quando você precisa de comportamento numérico:
1
{{context.${property_name} | plus: 0}}
Por que meu snippet de Liquid de catálogo retorna uma mensagem de cancelamento?
Se um snippet de Liquid de catálogo for cancelado durante o envio, recrie o snippet a partir do menu de personalização selecionando itens individuais do catálogo em vez de usar uma seleção em massa ou totalmente dinâmica. Consulte Catálogos e Seleções.
Content Blocks e o criador de mensagens
Por que há espaçamento extra em mensagens que usam Content Blocks?
Se você notar espaçamento extra em mensagens enviadas que usam Content Blocks com Liquid, pode haver quebras de parágrafo ou de linha desnecessárias dentro das suas instruções condicionais. Escreva suas instruções condicionais em uma única linha em vez de em múltiplas linhas.
Exemplo
1
{% if {{custom_attribute.${has_discount}}} == true %}Discounted Item{% elsif {{custom_attribute.${is_new_arrival}}} == true %}New Arrival{% else %}Regular Item{% endif %}
Por que meu Content Block não aparece em Row na ferramenta de busca do editor de arrastar e soltar?
Alguns Content Blocks não aparecem em Row na busca do editor de arrastar e soltar. Adicione um bloco HTML a partir da guia Content (Advanced) e insira a Liquid tag do Content Block nesse bloco HTML para renderizar o conteúdo do bloco.
Por que a pré-visualização do meu Content Block no editor de arrastar e soltar difere da visualização de composição?
Quando você usa um Content Block com Liquid como modelo, as media queries para dispositivos móveis no bloco podem não ser aplicadas na pré-visualização da mesma forma que quando você arrasta o bloco diretamente para uma mensagem. Arrastar o bloco preserva o layout, mas o desacopla do bloco de origem, então edições futuras no bloco não atualizam mais a mensagem automaticamente.
Como pré-visualizo valores de propriedades de evento no criador de mensagens?
Use Pré-visualizar como usuário personalizado e insira valores de amostra de propriedades de evento personalizado para o usuário que você está pré-visualizando. Isso também é útil para mensagens com lógica de cancelamento quando você precisa de valores de pré-visualização que não disparem um cancelamento.
Liquid em mensagens de e-mail
Por que minha mensagem é cancelada com “Invalid from email address for recipient:”?
Esse cancelamento ocorre quando o Liquid no campo De produz uma sintaxe inválida, como uma variável ausente, espaços extras ou caracteres não permitidos. Faça a pré-visualização com um usuário teste e verifique se o endereço De renderizado corresponde ao seu domínio de envio configurado.
Como crio um endereço de resposta (Reply-To) dinâmico?
Use Liquid no campo Reply-To quando seu espaço de trabalho suportar configuração dinâmica de Reply-To. Combine com as configurações de nome de exibição do campo De conforme necessário. Consulte Configurações de e-mail para opções específicas do espaço de trabalho.
Solução de problemas com erros de Liquid
Por que estou vendo um erro de Liquid “Unexpected end token”?
Esse erro geralmente indica chaves extras ou ausentes. Não aninhe {{ }} dentro de outra expressão de tag Liquid. Por exemplo, use {{custom_attribute.${date_of_birth} | date: '%s'}} em vez de envolver a referência do atributo em um par adicional de chaves.
Por que a tentativa de repetição do Conteúdo conectado não está disponível para minha mensagem no app?
A tag {% connected_content %} com tentativa de repetição não é suportada para todos os tipos de mensagem, incluindo alguns formatos de mensagem no app. Remova os parâmetros de tentativa de repetição ou use um canal suportado para chamadas de Conteúdo conectado com repetição.