Usar Liquid
Este artículo muestra cómo puedes usar una variedad de atributos de usuario para insertar dinámicamente información personal en tu mensajería.
Liquid es un lenguaje de plantillas de código abierto desarrollado por Shopify y escrito en Ruby. Puedes usarlo en Braze para extraer datos del perfil de usuario en tus mensajes y personalizar esos datos. Por ejemplo, puedes usar etiquetas de Liquid para crear mensajes condicionales, como enviar diferentes ofertas basadas en la fecha de aniversario de suscripción de un usuario. Además, los filtros pueden manipular datos, como dar formato a la fecha de registro de un usuario desde una marca de tiempo a un formato más legible, como “15 de enero de 2022”. Para más detalles sobre la sintaxis de Liquid y sus capacidades, consulta Etiquetas de personalización compatibles.
Cómo funciona
Las etiquetas de Liquid actúan como marcadores de posición en tus mensajes que pueden extraer información consentida de la cuenta de tu usuario y habilitar prácticas de personalización y mensajería relevante.
En el siguiente bloque, puedes ver un uso dual de una etiqueta de Liquid para llamar al nombre del usuario, así como una etiqueta predeterminada en caso de que un usuario no tenga su nombre registrado.
1
Hi {{ ${first_name} | default: 'Valued User' }}, thanks for using the App!
Para una usuaria llamada Janet Doe, el mensaje aparecería como:
1
Hi Janet, thanks for using the App!
O…
1
Hi Valued User, thanks for using the App!
Los comentarios HTML (<!-- -->) se eliminan antes de que se lea cualquier Liquid, por lo que las etiquetas de Liquid dentro de los comentarios HTML no se renderizan en tu mensaje. Para un renderizado correcto, asegúrate de que todas las etiquetas de Liquid que quieras usar estén fuera de los comentarios HTML.
Valores compatibles para sustituir
Los siguientes valores pueden sustituirse en un mensaje, dependiendo de su disponibilidad:
- Información básica del usuario (por ejemplo,
first_name,last_name,email_address) - Atributos personalizados
- Propiedades de eventos personalizados
- Información del dispositivo usado más recientemente
- Información del dispositivo objetivo
También puedes extraer contenido directamente de un servidor web a través del Contenido conectado de Braze.
Braze actualmente es compatible con Liquid hasta e incluyendo Liquid 5 de Shopify.
Usar Liquid
Usando etiquetas de Liquid, puedes elevar la calidad de tus mensajes enriqueciéndolos con un toque personal.
Sintaxis de Liquid
Liquid sigue una estructura específica, o sintaxis, que deberás tener en cuenta mientras creas personalización dinámica. Aquí tienes algunas reglas básicas a recordar:
- Usa comillas rectas en Braze: Hay una diferencia entre las comillas tipográficas (’ ‘) y las comillas rectas (' '). Usa comillas rectas (' ') en tu Liquid en Braze. Puedes ver comillas tipográficas al copiar y pegar desde ciertos editores de texto, lo que puede causar problemas en tu Liquid. Si introduces las comillas directamente en el dashboard de Braze, ¡no tendrás problemas!
- Las llaves van en pares: Cada llave debe abrirse y cerrarse { }. ¡Asegúrate de usar llaves!
- Las sentencias if van en pares: Por cada
if, necesitas unendifpara indicar que la sentenciaifha terminado. - Los nombres de variables deben usar caracteres ASCII: Los nombres de variables de Liquid (creados con
assignocapture) solo admiten letras ASCII, dígitos y guiones bajos. Los nombres de atributos de personalización de Braze (dentro decustom_attribute.${...}oevent_properties.${...}) pueden incluir caracteres no ASCII.
Dónde usar operadores y filtros
Los operadores (como ==, !=, >, and, or) y los filtros (como | size, | plus) solo pueden usarse en contextos específicos de Liquid.
| Contexto | Operadores | Filtros |
|---|---|---|
assign |
No compatible | Compatible |
if, elsif, unless |
Compatible | No compatible |
case, when |
No compatible | No compatible |
for |
No compatible | No compatible |
Acceso a arrays ([ ]) |
No compatible | No compatible |
Cuando necesites un valor filtrado en un contexto que no admite filtros, asigna primero el resultado a una variable.
Usar el resultado de un filtro en un condicional
No puedes usar un filtro directamente en una sentencia condicional. Esto es incorrecto:
1
2
3
{% if my_array | size > 3 %}
You have more than 3 items!
{% endif %}
En su lugar, asigna el resultado del filtro a una variable:
1
2
3
4
{% assign array_size = my_array | size %}
{% if array_size > 3 %}
You have more than 3 items!
{% endif %}
Usar el resultado de un filtro en un bucle for
No puedes aplicar un filtro al iterable en un bucle for. Esto es incorrecto:
1
2
3
{% for item in my_array | reverse %}
{{ item }}
{% endfor %}
En su lugar, asigna el valor filtrado a una variable:
1
2
3
4
{% assign reversed = my_array | reverse %}
{% for item in reversed %}
{{ item }}
{% endfor %}
Usar el resultado de un filtro para acceso a arrays
No puedes usar un filtro dentro de corchetes. Esto es incorrecto:
1
{{ my_array[my_var | minus: 1] }}
En su lugar, asigna primero el valor filtrado:
1
2
{% assign adjusted_index = my_var | minus: 1 %}
{{ my_array[adjusted_index] }}
Almacenar el resultado de una comparación en una variable
No puedes usar un operador en una sentencia assign. Esto es incorrecto:
1
2
3
4
{% assign is_vip = total_spend > 100 %}
{% if is_vip %}
Welcome to the VIP lounge!
{% endif %}
En su lugar, usa un condicional para establecer la variable:
1
2
3
4
5
6
7
8
{% assign is_vip = false %}
{% if total_spend > 100 %}
{% assign is_vip = true %}
{% endif %}
{% if is_vip %}
Welcome to the VIP lounge!
{% endif %}
Atributos predeterminados y atributos personalizados
Si incluyes el siguiente texto en tu mensaje: {{${first_name}}}, el nombre del usuario (extraído del perfil de usuario) se sustituirá cuando se envíe el mensaje. Puedes usar el mismo formato con otros atributos predeterminados del usuario.
Si deseas usar el valor de un atributo personalizado, debes añadir el espacio de nombres “custom_attribute” a la variable. Por ejemplo, para usar un atributo personalizado llamado “zip code”, incluirías {{custom_attribute.${zip code}}} en tu mensaje.
Insertar etiquetas
Puedes insertar etiquetas escribiendo dos llaves de apertura {{ en cualquier mensaje, lo que activará una función de autocompletado que seguirá actualizándose a medida que escribas. Incluso puedes seleccionar una variable de las opciones que aparecen mientras escribes.
Si estás usando una etiqueta personalizada, puedes copiar y pegar la etiqueta en el mensaje que desees.
Excepciones para llaves dobles
Si usas una etiqueta dentro de otra etiqueta de Liquid, como {{ en cualquier mensaje, lo que activará una función de autocompletado que seguirá actualizándose a medida que escribas. Incluso puedes seleccionar una variable de las opciones que aparecen mientras escribes.
Si estás usando una etiqueta personalizada, puedes copiar y pegar la etiqueta en el mensaje que desees.
Excepciones para llaves dobles
Si usas una etiqueta dentro de otra etiqueta de Liquid, como {% assign %} o {% if %}, puedes usar llaves dobles o ninguna llave. Solo cuando la etiqueta está sola debe estar encerrada en llaves dobles. Para simplificar, siempre puedes usar llaves dobles.
Las siguientes etiquetas son todas correctas:
1
2
3
4
5
{% if custom_attribute.${Number_Game_Attended} == 1 %}
{% if {{custom_attribute.${Number_Game_Attended}}} == 1 %}
{% assign value_one = {{custom_attribute.${one}}} %}
{% assign value_one = custom_attribute.${one} %}
Si usas Liquid en tus mensajes de correo electrónico, asegúrate de:
- Insertarlo usando el editor HTML en lugar del editor clásico. El editor clásico puede interpretar el Liquid como texto plano. Por ejemplo, el Liquid se interpretaría como
Hi {{ ${first_name} }}, thanks for using our service!en lugar de insertar el nombre del usuario mediante la plantilla. - Colocar el código Liquid solo dentro de la etiqueta
<body>. Colocarlo fuera de esta etiqueta puede causar un renderizado inconsistente en la entrega.
Insertar variables preformateadas
Puedes insertar variables preformateadas con valores predeterminados a través del modal Añadir personalización ubicado cerca de cualquier campo de texto con plantilla.

El modal insertará Liquid con tu valor predeterminado especificado en el punto donde estaba tu cursor. El punto de inserción también se especifica mediante el cuadro de vista previa, que muestra el texto anterior y posterior. Si un bloque de texto está resaltado, el texto resaltado será reemplazado.
