Skip to content

Etiquetas de personalización compatibles

Este artículo de referencia cubre una lista completa de las etiquetas de personalización de Liquid compatibles.

Resumen de las etiquetas compatibles

A modo de referencia, se proporciona un resumen de las etiquetas de personalización compatibles. Para más detalles sobre cada tipo de etiqueta y las mejores prácticas, sigue leyendo.

Atributos compatibles

Los atributos de campaña, tarjeta y Canvas solo son compatibles en sus plantillas de mensajería correspondientes (por ejemplo, dispatch_id no está disponible en campañas de mensajes dentro de la aplicación).

Consulta este artículo de ayuda para obtener más información sobre cómo algunos de estos atributos difieren entre fuentes en Braze.

Diferencias entre etiquetas de Canvas y de campaña

El comportamiento de las siguientes etiquetas difiere entre Canvas y las campañas:

  • dispatch_id se comporta de manera diferente porque Braze trata los pasos de Canvas como eventos desencadenados, incluso cuando están “planificados” (excepto los pasos de entrada, que pueden planificarse). Para obtener más información, consulta Comportamiento de dispatch ID.
  • Usar la etiqueta {{campaign.${name}}} con Canvas muestra el nombre del componente de Canvas. Cuando se usa esta etiqueta con campañas, muestra el nombre de la campaña.

Información del dispositivo usado más recientemente

Puedes usar como plantilla los siguientes atributos del dispositivo más reciente del usuario en todas las plataformas. Si un usuario no ha utilizado tu aplicación (por ejemplo, si importaste al usuario a través de la API REST), todos estos valores serán null.

Dado que existe una amplia variedad de operadores de dispositivos, nombres de modelos y sistemas operativos, te recomendamos que pruebes exhaustivamente cualquier Liquid que dependa condicionalmente de alguno de esos valores. Estos valores son null si no están disponibles en un dispositivo en particular.

Información de la aplicación objetivo

Para mensajes dentro de la aplicación, puedes usar los siguientes atributos de la aplicación dentro de Liquid. Los valores se basan en la clave de API de SDK que tus aplicaciones usan para solicitar la mensajería.

Por ejemplo, este código Liquid cancela un mensaje si las aplicaciones que lo solicitan no son una de las dos claves de API de la lista:

1
2
3
4
5
6
{% assign allowed_api_keys = 'sdk_api_key_1,sdk_api_key_2' | split: ',' %}
{% if allowed_api_keys contains {{app.${api_id}}} %}
User is in list of apps
{% else %}
{% abort_message("User not in list of apps") %}
{% endif %}

Información del dispositivo objetivo

Para notificaciones push, mensajes dentro de la aplicación y Banners, puedes usar como plantilla los siguientes atributos del dispositivo que recibe el mensaje. Una notificación push, un mensaje dentro de la aplicación o un Banner puede incluir atributos del dispositivo en el que el usuario lee el mensaje. Estos atributos no funcionan para Tarjetas de contenido ni correos electrónicos. Para los correos electrónicos, los mensajes se renderizan antes de enviarse, por lo que el dispositivo en el que el usuario abre el correo electrónico es desconocido en ese momento.

Dado que existe una amplia variedad de operadores de dispositivos, nombres de modelos y sistemas operativos, te recomendamos que pruebes exhaustivamente cualquier lógica que dependa condicionalmente de alguno de esos valores. Estos valores son null si no están disponibles en un dispositivo en particular.

Además, para las notificaciones push, es posible que Braze no pueda determinar el dispositivo asociado a la notificación push en ciertas circunstancias, como cuando el token de notificaciones push se importó a través de la API, lo que resulta en valores null para esos mensajes.

Ejemplo de uso de un valor predeterminado de "there" al usar una variable de nombre en un mensaje push.

Usar lógica condicional en lugar de un valor predeterminado

En algunas circunstancias, puedes optar por usar lógica condicional en lugar de establecer un valor predeterminado. La lógica condicional te permite enviar mensajes que difieren según el valor de un atributo personalizado. Además, puedes usar lógica condicional para cancelar mensajes a clientes con valores de atributo nulos o en blanco.

Caso de uso

Por ejemplo, supongamos que estás enviando una notificación de saldo de recompensas a los clientes. No hay una buena forma de tener en cuenta a los clientes con saldos bajos y nulos usando valores predeterminados.

En este caso, hay dos opciones que pueden funcionar mejor que establecer un valor predeterminado:

  1. Cancelar el mensaje para clientes con saldos bajos, nulos y en blanco.

    1
    2
    3
    4
    5
    
    {% if {{custom_attribute.${balance}}} > 0 %}
    Your rewards balance is {{custom_attribute.${balance}}}
    {% else %}
    {% abort_message() %}
    {% endif %}
    
  2. Enviar un mensaje completamente diferente a estos clientes, como:

    1
    2
    3
    4
    5
    
    {% if ${first_name} != blank and ${first_name} != null %}
    Hello {{${first_name} | default: 'there'}}, thanks for downloading!
    {% else %}
    Thanks for downloading!
    {% endif %}
    

En este caso de uso, un usuario con un nombre en blanco o nulo recibe el mensaje “Thanks for downloading”. Deberías incluir un valor predeterminado para el nombre para asegurarte de que tu cliente no vea Liquid en caso de un error.

Etiquetas de variable

Puedes usar la etiqueta assign para crear una variable en el creador de mensajes. Te recomendamos usar un nombre único para tu variable. Si creas una variable con un nombre similar a las etiquetas de personalización compatibles (como language), esto puede afectar tu lógica de mensajería.

Después de crear una variable, puedes hacer referencia a ella en tu lógica de mensajería o mensaje. Esta etiqueta es útil cuando quieres reformatear contenido que se devuelve desde nuestra función de Contenido conectado. Puedes leer más en la documentación de Shopify sobre etiquetas de variable.

Caso de uso

Supongamos que permites a tus clientes canjear sus puntos de recompensa por premios después de acumular 100 puntos de recompensa. Entonces, solo quieres enviar mensajes a los clientes que tendrían un saldo de puntos mayor o igual a 100 si realizaran esa compra adicional:

1
2
3
4
5
6
{% assign new_points_balance = {{custom_attribute.${current_rewards_balance} | plus: 50}} %}
{% if new_points_balance >= 100 %}
Make a purchase to bring your rewards points to {{new_points_balance}} and cash in today!
{% else %}
{% abort_message('not enough points') %}
{% endif %}

Etiquetas de iteración

Las etiquetas de iteración se pueden usar para ejecutar un bloque de código repetidamente. El caso de uso a continuación presenta la etiqueta for.

Caso de uso

Supongamos que tienes una oferta en zapatillas Nike y quieres enviar mensajes a los clientes que han expresado interés en Nike. Tienes un array de marcas de productos vistos en el perfil de cada cliente. Este array podría contener hasta 25 marcas de productos, pero solo quieres enviar mensajes a los clientes que vieron un producto Nike como una de sus 5 vistas de productos más recientes.

1
2
3
4
5
6
7
8
9
10
{% for items in {{custom_attribute.${Brands Viewed}}} limit:5 %}
{% if {{items}} contains 'Converse' %}
{% assign converse_viewer = true %}
{% endif %}
{% endfor %}
{% if converse_viewer == true %}
Sale on Converse!
{% else %}
{% abort_message() %}
{% endif %}

En este caso de uso, verificamos los primeros cinco elementos del array de marcas de zapatillas vistas. Si uno de esos elementos es Converse, creamos la variable converse_viewer y la establecemos como true.

Luego, enviamos el mensaje de oferta cuando converse_viewer es true. De lo contrario, cancelamos el mensaje.

Este es un ejemplo sencillo de cómo se pueden usar las etiquetas de iteración en el creador de mensajes de Braze. Puedes encontrar más información en la documentación de Shopify sobre etiquetas de iteración.

Etiquetas de sintaxis

Las etiquetas de sintaxis se pueden usar para controlar cómo se renderiza Liquid. Puedes usar la etiqueta echo para devolver una expresión. Esto es lo mismo que envolver una expresión usando llaves, excepto que puedes usar esta etiqueta dentro de etiquetas de Liquid. También puedes usar la etiqueta liquid para tener un bloque de Liquid sin delimitadores en cada etiqueta. Cada etiqueta debe estar en su propia línea cuando se usa la etiqueta liquid. Consulta la documentación de Shopify sobre etiquetas de sintaxis para más información y ejemplos.

Con el control de espacios en blanco, puedes eliminar los espacios en blanco alrededor de tus etiquetas, lo que te ayuda a controlar aún más cómo se ve la salida de Liquid.

Códigos de estado HTTP

Puedes utilizar el estado HTTP de una llamada de Contenido conectado guardándolo primero como una variable local y luego usando la clave __http_status_code__. Por ejemplo:

1
2
3
4
{% connected_content https://example.com/api/endpoint :save connected %}
{% if connected.__http_status_code__ != 200 %}
{% abort_message('Connected Content returned a non-200 status code') %}
{% endif %}

Enviar mensajes según el idioma, la configuración regional más reciente y la zona horaria

En algunas situaciones, es posible que desees enviar mensajes específicos para configuraciones regionales particulares. Por ejemplo, el portugués brasileño es típicamente diferente del portugués europeo.

Caso de uso: localizar según la configuración regional más reciente

Aquí tienes un caso de uso de cómo puedes usar la configuración regional más reciente para localizar aún más un mensaje internacionalizado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{% if ${language} == 'en' %}
Message in English
{% elsif  ${language} == 'fr' %}
Message in French
{% elsif  ${language} == 'ja' %}
Message in Japanese
{% elsif  ${language} == 'ko' %}
Message in Korean
{% elsif  ${language} == 'ru' %}
Message in Russian
{% elsif ${most_recent_locale} == 'pt_BR' %}
Message in Brazilian Portuguese
{% elsif ${most_recent_locale} == 'pt_PT' %}
Message in European Portuguese
{% elsif  ${language} == 'pt' %}
Message in default Portuguese
{% else %}
Message in default language
{% endif %}

En este caso de uso, los clientes con una configuración regional más reciente de pt_BR reciben un mensaje en portugués brasileño, y los clientes con una configuración regional más reciente de pt_PT reciben un mensaje en portugués europeo. Los clientes que no cumplen las dos primeras condiciones pero tienen su idioma configurado como portugués reciben un mensaje en el tipo de portugués que desees como predeterminado.

Caso de uso: dirigirse a usuarios por zona horaria

También puedes dirigirte a los usuarios por su zona horaria. Por ejemplo, enviar un mensaje si están en EST y otro si están en PST. Para hacer esto, guarda la hora actual en UTC y compara una declaración if/else con la hora actual del usuario para enviar el mensaje correcto para la zona horaria correcta. Deberías configurar la campaña para que se envíe en la zona horaria local del usuario, para que reciban la campaña en el momento adecuado.

Consulta el siguiente caso de uso sobre cómo escribir un mensaje que se entrega entre las 2 pm y las 3 pm con un mensaje específico para cada zona horaria.

1
2
3
4
5
6
7
8
{% assign hour_in_utc = 'now' | date: '%H' | plus:0 %}
{% if hour_in_utc >= 19 && hour_in_utc < 20 %}
It is between 2:00:00 pm and 2:59:59 pm ET!
{% elsif hour_in_utc >= 22 && hour_in_utc < 23 %}
It is between 2:00:00 pm and 2:59:59 pm PT!
{% else %}
{% abort_message %}
{% endif %}

Enviar mensajes con un número aleatorio

La etiqueta {% random %} devuelve un número aleatorio. Puedes usarla para lógica de estilo A/B, muestreo o variar el contenido del mensaje.

Caso de uso: enviar variantes aleatorias a los usuarios

1
2
3
4
5
6
7
{% capture roll_str %}{% random %}{% endcapture %}
{% assign roll = roll_str | plus: 0 %}
{% if roll < 0.5 %}
Show variant A
{% else %}
Show variant B
{% endif %}

Etiqueta de carrito de compras de comercio electrónico

La etiqueta shopping_cart accede al contenido del carrito de un usuario en los casos de uso de Canvas de comercio electrónico de carrito abandonado y pago abandonado. Reemplaza CART_ID con el valor real del ID del carrito, como {{context.${cart_id}}}.

1
{% shopping_cart CART_ID :abort_if_not_abandoned false %}

El parámetro abort_if_not_abandoned en este ejemplo se aplica solo al caso de uso de pago abandonado cuando se usa con el evento ecommerce.checkout_started. No es aplicable a los casos de uso de carrito abandonado. Para más detalles, consulta abort_if_not_abandoned.

New Stuff!