Skip to content

Lógica condicional de mensajería

Las etiquetas te permiten incluir lógica de programación en tus campañas de mensajería. Las etiquetas pueden usarse para ejecutar sentencias condicionales, así como para casos de uso avanzados, como asignar variables o iterar a través de un bloque de código.

Esta página cubre cómo las etiquetas pueden y deben usarse, como por ejemplo cómo manejar valores de atributo nulos, nil y en blanco, y cómo hacer referencia a atributos personalizados.

Formato de etiquetas

Una etiqueta debe estar envuelta en {% %}.

Para facilitarte un poco las cosas, Braze ha incluido un formato de color que se activará en verde y morado si has formateado correctamente tu sintaxis Liquid. El formato verde puede ayudar a identificar etiquetas, mientras que el formato morado resalta las áreas que contienen personalización.

Si tienes dificultades para usar la mensajería condicional, intenta escribir la sintaxis condicional antes de insertar tus atributos personalizados y otros elementos Liquid.

Por ejemplo, añade lo siguiente en el campo de mensaje primero:

1
2
3
{% if X >0 %}
{% else %}
{% endif %}

Asegúrate de que se resalte en verde, luego reemplaza la X con tu Liquid o Contenido conectado elegido usando el + azul en la esquina del campo de mensaje, y el 0 con el valor deseado.

Después, añade las variaciones de tu mensaje según las necesites entre los condicionales else:

1
2
3
4
5
{% if {{custom_attribute.${total_spend}}} >0 %}
Thanks for purchasing! Here's another 10% off!
{% else %}
Buy now! Would 5% off convince you?
{% endif %}

Lógica condicional

Puedes incluir muchos tipos de lógica inteligente dentro de los mensajes, como una sentencia condicional. El siguiente ejemplo usa condicionales para internacionalizar una campaña:

1
2
3
4
5
6
7
8
9
{% if ${language} == 'en' %}
This is a message in English from Braze!
{% elsif ${language} == 'es' %}
Este es un mensaje en español de Braze !
{% elsif ${language} == 'zh' %}
这是一条来自Braze的中文消息。
{% else %}
This is a message from Braze! This is going to go to anyone who did not match the other specified languages!
{% endif %}

Etiquetas condicionales

if y elsif

La lógica condicional comienza con la etiqueta if, que establece la primera condición a verificar. Las condiciones posteriores usan la etiqueta elsif y se verificarán si las condiciones anteriores no se cumplen. En este ejemplo, si el dispositivo de un usuario no está configurado en inglés, este código verificará si el dispositivo del usuario está configurado en español, y si eso falla, verificará si el dispositivo está configurado en chino. Si el dispositivo del usuario cumple una de estas condiciones, el usuario recibirá un mensaje en el idioma correspondiente.

else

Tienes la opción de incluir una sentencia {% else %} en tu lógica condicional. Si ninguna de las condiciones que estableciste se cumple, la sentencia {% else %} especifica el mensaje que debe enviarse. En este ejemplo, el idioma predeterminado es el inglés si el idioma del usuario no es inglés, español o chino.

endif

La etiqueta {% endif %} señala que has terminado tu lógica condicional. Debes incluir la etiqueta {% endif %} en cualquier mensaje con lógica condicional. Si no incluyes una etiqueta {% endif %} en tu lógica condicional, obtendrás un error ya que Braze no podrá analizar tu mensaje.

{% alert note %} Las etiquetas condicionales (if, elsif, unless) admiten operadores pero no filtros. Para evaluar un valor filtrado en un condicional, asigna primero el resultado del filtro a una variable y luego haz referencia a esa variable. Para más detalles, consulta Dónde usar operadores y filtros. {% endalert %}

Tutorial: Entregar contenido basado en la ubicación

Cuando termines este tutorial, podrás usar etiquetas con sentencias “if”, “elsif” y “else” para entregar contenido basado en la ubicación de un usuario.

  1. Comienza con una etiqueta if para establecer qué mensaje debe enviarse cuando la ciudad del usuario sea Nueva York. Si la ciudad del usuario es Nueva York, se cumple esta primera condición y el usuario recibirá un mensaje que especifica su identidad neoyorquina.
1
2
3
4
{% if ${city} == "New York" %}
  🎉 Hey there, New Yorker! We're excited to offer you a special deal!
  Get 20% off your next sandwich at your local Sandwich Emperor.
  Just show this message at the counter to redeem your offer!
  1. A continuación, usa la etiqueta elseif para establecer qué mensaje debe enviarse si la ciudad del usuario es Los Ángeles.
1
2
3
{% elsif ${city} == "Los Angeles" %}
  🌞 Hello, Los Angeles! Enjoy a sunny day with a delicious sandwich!
  Present this message at our LA restaurant for a 20% discount on your next order!
  1. Usemos otra etiqueta elseif para establecer qué mensaje debe enviarse si la ciudad del usuario es Chicago.
1
2
3
4
{% elsif ${city} == "Chicago" %}
  🍕 Chicago, we have a treat for you!
  Swing by our restaurant and get 20% off your favorite sandwich.
  Just show this message to our staff!
  1. Ahora, usemos la etiqueta {% else %} para especificar qué mensaje debe enviarse si la ciudad del usuario no es San Francisco, Nueva York ni Chicago.
1
2
3
{% else %}
 🥪 Craving a sandwich? Visit us at any of our locations for a delicious meal!
  Check our website for the nearest restaurant to you!
  1. Finalmente, usaremos la etiqueta {% endif %} para especificar que nuestra lógica condicional ha terminado.
1
{% endif %}
Código Liquid completo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{% if ${city} == "New York City" %}
  🎉 Hey there, New Yorker! We're excited to offer you a special deal!
  Get 20% off your next sandwich at our New York location.
  Just show this message at the counter to redeem your offer!
{% elsif ${city} == "Los Angeles" %}
  🌞 Hello, Los Angeles! Enjoy a sunny day with a delicious sandwich!
  Present this message at our LA restaurant for a 20% discount on your next order!
{% elsif ${city} == "Chicago" %}
  🍕 Chicago, we have a treat for you!
  Swing by our restaurant and get 20% off your favorite sandwich.
  Just show this message to our staff!
{% else %}
  🥪 Craving a sandwich? Visit us at any of our locations for a delicious meal!
  Check our website for the nearest restaurant to you!
{% endif %}

Manejo de valores de atributo nulos, nil y en blanco

La lógica condicional es una forma útil de manejar valores de atributo que no están configurados en los perfiles de usuario.

Valores de atributo nulos y nil

Un valor nulo o nil ocurre cuando el valor de un atributo personalizado no se ha configurado. Por ejemplo, un usuario que aún no ha establecido su nombre no tendrá un nombre registrado en Braze.

En algunas circunstancias, es posible que desees enviar un mensaje completamente diferente a los usuarios que tienen un nombre configurado y a los usuarios que no lo tienen.

La siguiente etiqueta te permite especificar un mensaje para usuarios con un atributo “nombre” nulo:

1
2
3
{% if ${first_name} == null %}
  ....
{% endif %}

Un ejemplo de mensaje en el panel de Braze, usando un atributo de nombre nulo.

1
2
3
4
5
{% if ${first_name} == null %}
We're having a sale! Hurry up and get 10% off all items today only!
{% else %}
Hey {{${first_name} | default: 'there'}}, we're having a sale! Hurry up and get 10% off all items today only!
{% endif %}

Ten en cuenta que un valor de atributo nulo no está estrictamente asociado con un tipo de valor (por ejemplo, una cadena “nula” es lo mismo que un arreglo “nulo”), por lo que en el ejemplo anterior, el valor de atributo nulo hace referencia a un nombre no configurado, que sería una cadena.

Valores de atributo en blanco

Un valor en blanco ocurre cuando el atributo en un perfil de usuario no está configurado, está configurado con una cadena de espacios en blanco ( ), o está configurado como false. Los valores en blanco deben verificarse antes que otras variables para evitar un error de procesamiento de Liquid.

La siguiente etiqueta te permite especificar un mensaje para usuarios que tienen un atributo “nombre” en blanco.

1
2
3
{% if ${first_name} == blank %}
  ....
{% endif %}

Referencia a atributos personalizados

Después de haber creado atributos personalizados, puedes hacer referencia a estos atributos personalizados en tu mensajería Liquid.

Al usar lógica condicional, necesitarás conocer el tipo de datos del atributo personalizado para asegurarte de que estás usando la sintaxis correcta. Desde la página Atributos personalizados en el dashboard, busca el tipo de datos asociado con tu atributo personalizado y luego consulta los siguientes ejemplos listados para cada tipo de datos.

Selección de un tipo de datos para un atributo personalizado. El ejemplo proporcionado muestra un atributo de Favorite_Category con un tipo de datos de cadena.

Booleano

Los booleanos son valores binarios y pueden configurarse como true o false, como registration_complete: true. Los valores booleanos no llevan apóstrofos a su alrededor.

1
{% if {{custom_attribute.${registration_complete}}} == true %}

Número

Los números son valores numéricos, que pueden ser enteros o decimales. Por ejemplo, un usuario puede tener shoe_size: 10 o levels_completed: 287. Los valores numéricos no llevan apóstrofos a su alrededor.

1
{% if {{custom_attribute.${shoe_size}}} == 10 %}

También puedes usar otros operadores básicos como menor que (<) o mayor que (>) para enteros:

1
{% if {{custom_attribute.${flyer_miles}}} >= 500 %}

Cadena

Una cadena está compuesta por caracteres alfanuméricos y almacena un dato sobre tu usuario. Por ejemplo, puedes tener favorite_color: red o phone_number: 3025981329. Los valores de cadena deben llevar apóstrofos a su alrededor.

1
{% if {{custom_attribute.${favorite_color}}} == 'blue' %}

Para cadenas, puedes usar tanto “==” como “contains” en tu Liquid.

Arreglo

Un arreglo es una lista de información sobre tu usuario. Por ejemplo, un usuario puede tener last_viewed_shows: stranger things, planet earth, westworld. Los valores de arreglo deben llevar apóstrofos a su alrededor.

1
{% if {{custom_attribute.${last_viewed_shows}}} contains 'homeland' %}

Para arreglos, debes usar “contains” y no puedes usar “==”.

Hora

Una marca de tiempo de cuándo ocurrió un evento. Los valores de hora deben tener un filtro matemático aplicado para poder usarse en lógica condicional.

1
{% assign expire = {{custom_attribute.${subscription_end_date}}} | plus: 0 %}
New Stuff!