Uso de plantillas Liquid
Las plantillas Liquid amplían significativamente las capacidades de personalización de Pushwoosh al implementar una lógica sofisticada además del uso regular del Contenido Dinámico.
La personalización de mensajes en Pushwoosh se basa en Tags (datos de usuario). Pushwoosh ofrece una variedad de Tags predeterminados y Tags personalizados. Usándolos, puede especificar el nombre del usuario, la ciudad, el historial de compras, etc. para enviar un mensaje más personalizado, por ejemplo: Hola {First_name}, gracias por pedir {item}.
Las plantillas Liquid añaden más lógica al contenido dinámico. Por ejemplo, si el tag de suscripción de un usuario contiene “free”, puede enviarle un mensaje: “Obtenga su 10% de descuento”.
Modificar el contenido del mensaje según los ID, comportamientos y preferencias de los usuarios es la forma más eficiente de aumentar la relevancia y obtener resultados más impresionantes de sus campañas de marketing.
Sintaxis
Anchor link toLas plantillas de contenido basadas en Liquid de Shopify utilizan una combinación de tags, objetos y filtros para cargar contenido dinámico. Las plantillas de contenido le permiten acceder a ciertas variables desde una plantilla y mostrar sus datos sin tener que saber nada sobre los datos en sí.
Objetos
Anchor link toLos objetos definen el contenido que se mostrará a un usuario. Los objetos deben estar encerrados entre llaves dobles: {{ }}
Por ejemplo, al personalizar un mensaje, envíe {{Name}} en su cuerpo para agregar los nombres de los usuarios al contenido del mensaje. El nombre del usuario (valor del Tag Name) reemplazará el objeto Liquid en el mensaje que el usuario verá.
Hi {{Name}}! We're glad you're back!Hi Anna! We’re glad you’re back!
Tags
Anchor link toLos tags crean la lógica y el flujo de control para las plantillas. Los delimitadores de porcentaje de llave {% y %} y el texto que los rodea no producen ninguna salida visible cuando se renderiza la plantilla. Esto le permite asignar variables y crear condiciones o bucles sin mostrar ninguna de la lógica de Liquid a un usuario.
Por ejemplo, usando el tag if, puede variar el idioma del mensaje según el idioma configurado en el dispositivo del usuario:
{% if Language == 'fr' %}Salut!{% else %}Hello!{% endif %}Salut!
Hello!
Operadores de Tags
Anchor link to| Operador | Descripción |
|---|---|
== | igual a |
!= | no es igual a |
> | mayor que |
< | menor que |
>= | mayor o igual que |
<= | menor o igual que |
or | o lógico |
and | y lógico |
contains | comprueba la presencia de una subcadena dentro de una cadena o un array de cadenas |
Filtros
Anchor link toLos filtros modifican la salida de un objeto o variable Liquid. Se utilizan dentro de llaves dobles {{ }} y en la asignación de variables, y se separan por un carácter de barra vertical |. Se pueden usar múltiples filtros en una salida, y se aplican de izquierda a derecha.
{{ Name | capitalize | prepend:"Hello " }}Hello Anna
Uso de plantillas Liquid en mensajes enviados a través de la API
Anchor link toUse la sintaxis de Liquid en sus solicitudes createMessage para implementar plantillas Liquid. Las plantillas están disponibles para el parámetro “content” de la solicitud createMessage, así como para cualquier otro parámetro que admita Contenido Dinámico, en particular, los parámetros específicos de la plataforma “title”, “subtitle” e “image”.
Al usar plantillas de contenido, puede especificar los datos en sus solicitudes de API (pasando el parámetro “template_bindings”) u obtener los datos de los valores de los Tags almacenados en los dispositivos de los usuarios (al no usar el parámetro “template_bindings”). De esta manera, puede crear campañas push basadas en el usuario que contengan contenido extremadamente relevante.
Para definir la lógica de la plantilla usando Tags con espacios en sus nombres, use la siguiente técnica:
Ejemplo
{% capture my_tag %}{{My Tag}}{% endcapture %}{% if my_tag == 'value' %}Contenido a enviar en este caso{% else %}Contenido a enviar en caso contrario{% endif %}Casos de uso de las plantillas Liquid
Anchor link toAquí encontrará varios casos de uso en los que las plantillas Liquid son útiles.
Push multilingüe
Anchor link toLas plantillas Liquid permiten especificar definitivamente en qué idioma los usuarios deben recibir sus mensajes push. Vea el ejemplo simple de la solicitud de API y el mensaje recibido dependiendo de los enlaces de plantilla utilizados en la solicitud.
{% if Language == 'es' %}¡Hola!{% else %}Hello!{% endif %}{ "request": { "application": "XXXXX-XXXXX", // Código de la aplicación Pushwoosh "auth": "yxoPUlw.....IyEX4H", // Token de acceso a la API desde el Panel de Control de Pushwoosh "notifications" : [ // parámetros del mensaje push { "content": "{% raw %}{% if language == 'es' %}¡Hola!{% else %}hello!{% endif %}{% endraw %}", "template_bindings": { // opcional. Cuando no se pasan template_bindings en una solicitud, se utilizan los valores de los Tags del dispositivo. "language" : "es" } } ] }}El idioma es ‘es’: ¡Hola!
El idioma es ‘en’: Hello!
Aviso de actualización de suscripción
Anchor link toAnime a sus clientes a actualizar su suscripción en función de su plan actual.
{% if Subscription == 'Basic' %} Actualice a Silver para obtener más funciones del producto y soporte 24/7.{% elsif Subscription == 'Silver' %} Actualice a Gold para obtener soporte prioritario y funciones avanzadas.{% else %} Por favor, póngase en contacto con su gerente para renovar su suscripción.{% endif %}{ "request": { "application": "XXXXX-XXXXX", // Código de la aplicación Pushwoosh "auth": "yxoPUlw.....IyEX4H", // Token de acceso a la API desde el Panel de Control de Pushwoosh "notifications" : [ // parámetros del mensaje push { "content": "{% raw %}{% if Subscription == 'Basic' %}Actualice a Silver para obtener más funciones del producto y soporte 24/7.{% elsif Subscription == 'Silver' %}Actualice a Gold para obtener soporte prioritario y funciones avanzadas.{% else %}Por favor, póngase en contacto con su gerente para renovar su suscripción. {% endif %}{% endraw %}", "template_bindings": { // opcional. Cuando no se pasan template_bindings en una solicitud, se utilizan los valores de los Tags del dispositivo. "language" : "es" } } ] }}Para usuarios con plan de suscripción Básico: Actualice a Silver para obtener más funciones del producto y soporte 24/7.
Para usuarios con plan de suscripción Silver: Actualice a Gold para obtener soporte prioritario y funciones avanzadas.
Para usuarios con otros planes: Por favor, póngase en contacto con su gerente para renovar su suscripción.
Tags de lista
Anchor link toLas plantillas de contenido son muy útiles para manejar Tags de tipo Lista.
Tamaño variable
Anchor link toUno de los posibles casos de uso es entregar contenido diferente dependiendo del número de valores que contenga el Tag. Por ejemplo, puede ofrecer diferentes descuentos a clientes con diferentes comportamientos. Digamos que el cliente tiene algunos artículos en su WishList—¡anímelo a comprar con el descuento más adecuado en función de cuántos productos va a comprar!
{% if WishList.size >= 3 %}¡Obtenga un 20% de descuento en su próxima compra!{% elsif WishList.size == 2 %}¡Obtenga un 10% de descuento en su próxima compra!{% else %}¡Oye, echa un vistazo a las nuevas prendas de abrigo!{% endif %}{ "request": { "application": "XXXXX-XXXXX", // Código de la aplicación Pushwoosh "auth": "yxoPUlw.....IyEX4H", // Token de acceso a la API desde el Panel de Control de Pushwoosh "notifications" : [ // parámetros del mensaje push { "content": "{% raw %}{% if WishList.size >= 3 %}¡Obtenga un 20% de descuento en su próxima compra!{% elsif WishList.size == 2 %}¡Obtenga un 10% de descuento en su próxima compra!{% else %}¡Oye, echa un vistazo a las nuevas prendas de abrigo!{% endif %}{% endraw %}", "template_bindings": { "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}

La variable contiene
Anchor link toUn caso más que podría necesitar cubrir es tratar con los valores de los Tags de Lista y entregar el contenido más relevante en función de los valores que contiene el Tag.
{% if WishList contains 'Skinny Low Ankle Jeans' %}¡Obtenga un 20% de descuento en los productos de su lista de deseos!{% else %}¡Oye, echa un vistazo a los nuevos Skinny Low Ankle Jeans!{% endif %}{ "request": { "application": "C90C0-0E786", "auth": "yxoPUlw.....IyEX4H", // Token de acceso a la API desde el Panel de Control de Pushwoosh "notifications" : [ // parámetros del mensaje push { "content": "{% raw %}{% if WishList contains 'Skinny Low Ankle Jeans' %}¡Obtenga un 20% de descuento en su próxima compra!{% else %}¡Oye, echa un vistazo a los nuevos Skinny Low Ankle Jeans!{% endif %}{% endraw %}", "template_bindings": { "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}

Plurales
Anchor link toAl usar las plantillas de contenido, puede ajustar el contenido del mensaje según el comportamiento de los usuarios. Por ejemplo, puede modificar el texto del mensaje para que contenga palabras en plural en caso de que el Tag de Lista contenga más de un valor.
Obtenga un 20% de descuento en el artículo{% if WishList.size > 1 %} s en su WishList!{% else %} en su Wishlist!{% endif %}{ "request": { "application": "C90C0-0E786", "auth": "yxoPUlw.....IyEX4H", // Token de acceso a la API desde el Panel de Control de Pushwoosh "notifications" : [ // parámetros del mensaje push { "content": "Obtenga un 20% de descuento en el artículo{% raw %}{% if WishList.size > 1 %}s en su WishList!{% else %} en su Wishlist!{% endif %}{% endraw %}", "template_bindings": { // opcional. Cuando no se pasan template_bindings en una solicitud, se utilizan los valores de los Tags del dispositivo. "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}

Zona horaria
Anchor link toLa plantilla para zonas horarias convierte la fecha y la hora según la zona horaria especificada.
{{ MyDate | timezone: MyTimezone | date: \"%Y-%m-%d %H:%M\" }}{ "request" : { "auth" : "3H9bk8w3.....Acge2RbupTB", // Token de acceso a la API desde el Panel de Control de Pushwoosh "application" : "XXXXX-XXXXX", // Código de la aplicación Pushwoosh "notifications" : [ // parámetros del mensaje push { "content": "Current Date: {{ MyDate | timezone: MyTimezone | date: \"%Y-%m-%d %H:%M\" }}", "template_bindings": { // opcional. Cuando no se pasan template_bindings en una solicitud, se utilizan los valores de los Tags del dispositivo. "MyDate" : "2019-07-23 15:00", "MyTimezone" : "Asia/Dubai" } } ] }}
Contenido conectado
Anchor link toEl contenido conectado es una función en las plantillas Liquid que le permite recuperar y usar dinámicamente datos de una fuente externa, como un servicio web, directamente dentro de sus mensajes de correo electrónico o notificaciones push. Esta función permite la personalización en tiempo real al obtener datos JSON de una URL especificada y guardarlos en una variable que se puede utilizar en su contenido.
Casos de uso clave
Anchor link to-
Recomendaciones de productos: Muestre listas de productos personalizadas y adaptadas a cada usuario.
-
Códigos promocionales: Inserte códigos promocionales únicos generados por un servicio de backend.
Requisitos previos
Anchor link to- Para usar el Contenido Conectado, debe tener su propio servicio de backend que genere y proporcione los datos requeridos (por ejemplo, códigos promocionales, recomendaciones de productos) basados en User ID, HWID o tags personalizados. Pushwoosh luego obtiene estos datos antes de enviar un mensaje.
Guía de implementación paso a paso
Anchor link toPaso 1. Configure el servicio de backend
Anchor link toEl servicio de backend debe:
- Aceptar una solicitud que contenga parámetros específicos del usuario (por ejemplo,
userId). El Contenido Conectado admiteUserID,HWIDo cualquier tag personalizado que haya configurado en su proyecto. - Devolver una respuesta JSON con los datos requeridos. Este contenido se puede insertar dinámicamente en los mensajes
Paso 2. Cree un preset con Contenido Conectado en Pushwoosh
Anchor link to- En el editor de contenido Push o Email, inserte la sintaxis de Contenido Conectado en el campo del mensaje.
Ejemplo
{% connected_content http://your-backend-url.com?userId={{ ${userid} }} :save result %}Desglose de la sintaxis
connected_content | Obtiene datos JSON de la URL de backend especificada. |
http://your-backend-url.com | El endpoint del backend que devuelve los datos requeridos en formato JSON. |
userId={{ ${userid} }} | Un parámetro de consulta dinámico que pasa el ID de usuario al backend. |
:save result | Almacena la respuesta JSON obtenida en la variable result para su uso en plantillas Liquid |

Autenticación (opcional)
Si su servicio de backend requiere autenticación, puede incluir una clave de API o un token en la solicitud de Contenido Conectado para garantizar un acceso seguro.
{% connected_content http://your-backend-url.com?userId={{ ${userid} }}&auth=YOUR_API_KEY :save result %}Uso de tags en Contenido Conectado
Para incluir tags personalizados, insértelos como parámetros de consulta en la solicitud de Contenido Conectado ({{ tag_name }}).
{% connected_content http://your-backend-url.com?userId={{ ${userid} }}{{ Language }} :save result %}- A continuación, agregue el texto del mensaje incorporando los datos recuperados, de esta manera:
Hey, {{userid}}, grab your personal promo code - {{result.code}}
- Después de finalizar el contenido del mensaje y configurar los ajustes del preset, guárdelo para reutilizarlo en campañas.
Paso 3. Envíe un mensaje usando el preset configurado
Anchor link toEnvíe un mensaje con este preset usando el formulario de push único o formulario de correo electrónico o customer journey.