La plantilla líquida te permite crear mensajes personalizados con lógica avanzada, como mostrar contenido diferente según la ubicación del cliente, usar texto de respaldo cuando faltan datos, o formatear fechas y precios dinámicamente. Usa Liquid en campañas de Correo electrónico, SMS y notificaciones push.
Antes de empezar
La plantillas líquidas funcionan en Campañas y Automatización – Correo electrónico, SMS y Notificaciones Push admiten objetos y filtros líquidos.
Prueba la personalizacin antes de enviar – Los correos de prueba no incluyen datos de contacto reales. Se muestran valores alternativos cuando un
se utiliza el filtro predeterminado.Usa la vista previa dinámica o un contacto de prueba para ver valores de contacto reales.Siempre añade valores de fallback – Usa
| predeterminado: 'texto' para evitar espacios en blanco cuando faltan datos de contacto.Omnisend utiliza una sintaxis Liquid modificada – Reemplaza las llaves de Shopify
{{ }} con corchetes cuadrados[[ ]].
💡 ¿Nuevo en la personalización? Comienza con personalización estándar antes de usar Liquid. Liquid es para casos de uso avanzados.
Resumen: ¿Qué es Liquid?
Liquid es un lenguaje de plantillas de código abierto creado por Shopify. Te permite insertar contenido dinámico en mensajes usando tres elementos:
Objetos – Variables que devuelven datos de contacto o de pedido (
[[ contact.first_name ]]).Etiquetas – Lógica y flujo de control (
[% if contact.country == 'France' %])Filtros – Modificar la salida (
[[ contact.first_name | capitalize ]])
Omnisend utiliza una versión modificada de Liquid:
Objetos: Usa
[[ ]] en lugar de{{ }} - Ejemplo:[[ contact.first_name ]]).Etiquetas: Usa
[% %] en lugar de{% %} - Ejemplo:[% if contact.country == 'France' %]
111 Aprende más sobre Liquid en la documentación de Shopify y recuerda reemplazar las llaves con corchetes en Omnisend.
Objetos
Los objetos son variables que generan contenido dinámico a partir de perfiles de contacto, pedidos o la configuración de tu cuenta. Los objetos siempre están encerrados en dobles corchetes.
[[ contact.first_name ]]
Grupos de objetos disponibles:
Propiedades del contacto:
[[ contact.variable ]] (nombre, correo electrnico, ubicación, propiedades personalizadas)Propiedades de la cuenta:
[[ account.variable ]] (nombre de la tienda, sitio web, moneda)Propiedades del pedido:
[[ order.variable ]] (ID del pedido, total, artículos) – Solo flujos de trabajo de automatizaciónPropiedades del carrito:
[[ cart.variable ]] (URL del carrito abandonado) – Solo flujos de trabajo de automatizaciónPropiedades de fecha:
[[ current_date ]] (día actual, mes, año)
Consulta la Tabla de Referencia de Objetos completa a continuación.
Filtros
Los filtros cambian la salida de un objeto Liquid. Los filtros se separan por un símbolo de barra vertical |.
Ejemplo:
[[ 'mywebsite.com/orders/' | append: order.order_id ]]
Filtros comunes:
predeterminado – Agregar texto alternativo cuando faltan datos:
[[ contact.first_name | default: 'there' ]]capitalizar – Capitaliza la primera letra:
[[ contact.city | capitalize ]]mayúsculas – Convertir a mayúsculas:
[[ contact.country | upcase ]]agregar – Añadir texto al final:
[[ account.website | append: '/sale' ]]fecha – Formatear fechas:
[[ current_date | date:'%B %d, %Y' ]] "13 de mayo de 2026"vocativo – Ajusta los nombres a la forma vocativa en los idiomas compatibles:0a
[[ contact.first_name | vocative ]]
Aprende más sobre filtros Liquid en la documentación de Shopify recuerda usar la sintaxis de [[ ]] de Omnisend.
Etiquetas (solo automatización)
Las etiquetas crean lógica y controlan el flujo en los mensajes. Las etiquetas están encerradas en [% %] llaves y no producen texto visible.
Ejemplo:
[% if contact.first_name %] Hi [[ contact.first_name ]] [% endif %]
⚠️ Las etiquetas solo funcionan en Automatización – no en Campañas. Aprende más sobre las etiquetas Liquid en la documentación de Shopify.
Casos de uso comunes
Aquí hay varios casos de uso comunes útiles para la sintaxis Liquid:
Personalización
Hi [[ contact.first_name ]], welcome to Omnisend!
Salida: "¡Hola Sarah, bienvenido a Omnisend!"
💡 Consejo: Este filtro ajusta automáticamente el nombre a su forma vocativa en los idiomas compatibles, haciendo que tus mensajes suenen más naturales y personales. Esto se puede lograr utilizando personalización vocativa: [[ contact.first_name | vocative ]]
Personalización con respaldo
Hi [[ contact.first_name | default: 'there' ]], welcome to Omnisend!
Salida (si falta el nombre): "¡Hola, bienvenido a Omnisend!"
4a1 ¿Por qué usar respaldos?
Si el perfil de un contacto falta datos (por ejemplo, sin nombre), las etiquetas de personalización mostrarán espacios en blanco. Los respaldos evitan esto:
Con respaldo:
Hola [[ contact.first_name | default: 'there' ]] "Hola allí"Sin respaldo:
Hola [[ contact.first_name ]] "Hola "
Siempre agrega alternativas para evitar espacios en blanco incómodos.
Inserción de variables en mensajes
Inserta variables de Liquid en:
Líneas de asunto del correo electrónico:0a
No olvides tu carrito, [[ contact.first_name ]]!Texto del cuerpo del correo electrnico:
El total de tu pedido: [[ order.total_price ]] [[ order.currency ]]Mensajes SMS:
Hola [[ contact.first_name ]], ¡tu pedido #[[ order.order_number ]] ha sido enviado!Notificaciones push:0a
[[ contact.first_name ]], el 20% de descuento termina hoyEnlaces de botones:0a
[[ account.website ]]/orders/[[ order.order_id ]]
Lógica Condicional (Solo Automatizaciones)
Utiliza declaraciones condicionales para mostrar contenido diferente según los datos de contacto.
Localización de idioma
[% if contact.custom_properties.language == 'Spanish' %] Hola [[ contact.first_name ]]! [% elsif contact.custom_properties.language == 'French' %] Bonjour [[ contact.first_name ]]! [% else %] Hi [[ contact.first_name ]]! [% endif %]
Contenido basado en ubicación
[% if contact.country == 'UK' or contact.country == 'Ireland' %] Have you visited our newest flagship store in London? [% endif %]
Formato
Capitalizar la Primera Letra
Hi [[ contact.first_name | capitalize ]]
Salida: "Hola sarah" "Hola Sarah"
Agregar Texto Personalizado
[% assign campaign_destination = '/landing_page.html' %] [[ account.website | append: campaign_destination ]]
Salida: "www.yourstore.com/landing_page.html
Formato de fechas
Omnisend © [[ current_date | date:'%Y' ]]
Salida: "Omnisend © 2026"
Opciones de formato de fecha:
%d - Día (13)%A Nombre del día (miércoles)%m – Número del mes (05)%B – Nombre del mes (Mayo)%Y Año (2026
Tabla de referencia de objetos
Propiedades de Contacto
Título del Desplegable | Etiqueta | Tipo de Valor | Descripción |
Correo electrónico |
| cadena | Correo electrónico de contacto |
Nombre |
| cadena | Nombre de pila del contacto |
Apellido |
| cadena | Apellido del contacto |
Ciudad |
| cadena | Ciudad del contacto |
País |
| cadena | País del contacto |
Estado | [[ contact.state ]] | cadena | Estado del contacto |
Código postal | [[ contact.postal_code ]] | cadena | Código postal del contacto |
Enlace para darse de baja | [[ unsubscribe_link ]] | – | Enlace del contacto para darse de baja |
Enlace al centro de preferencias |
| – | Enlace de preferencia de contacto |
Propiedades personalizadas |
| objeto | Propiedades personalizadas del contacto |
Número de teléfono |
| string | Número de teléfono del contacto |
Propiedades de la cuenta
Título del desplegable | Etiqueta | Tipo de valor | Descripción |
Nombre |
| string | Nombre de la cuenta |
Dirección |
| string | Dirección de la cuenta |
Ciudad |
| cadena | Ciudad de la cuenta |
Código postal / ZIP |
| string | Código postal de la cuenta |
País |
| string | País de la cuenta |
URL del sitio web |
| string | URL del sitio web de la cuenta |
Zona horaria |
| string | Zona horaria de la cuenta |
Moneda |
| string | Moneda de la cuenta |
Propiedades de Fecha
Título del desplegable | Etiqueta | Tipo de valor | Descripción |
Día actual |
| - | El día en que se realiza la acción |
Nombre del día actual |
| - | El día en que se realiza la acción |
Mes actual |
| - | El mes en que se realiza la acción |
Nombre del mes actual |
| - | El nombre del mes en que se realiza la acción |
Año actual |
| - | El año actual cuando se realiza la acción |
Propiedades del Pedido (Solo Automatización)
Título del menú desplegable | Etiqueta | Tipo de valor | Descripción |
ID del Pedido |
| string | ID del Pedido |
Número de Pedido |
| int64 | Número del Pedido |
Nombre del Pedido |
| string | Nombre del Pedido |
Fecha del Pedido |
| Fecha | Fecha en que se crea el pedido |
Moneda |
| string | Moneda del Pedido |
Precio total |
| int64 | Suma total del Pedido |
Precio subtotal |
| int64 | Suma subtotal del pedido |
Descuento |
| int64 | Descuento del Pedido |
Precio de envío |
| int64 | Precio de envío del Pedido |
URL de la página de estado del Pedido |
| string | URL para acceder a la información exacta del pedido |
Nota del Pedido |
| string | Notas adicionales del pedido |
Dirección de Facturación (Solo Automatización)
Título del menú desplegable | Etiqueta | Tipo de valor | Descripción |
Nombre |
| string | Nombre del contacto proporcionado en la dirección de facturación |
Apellido |
| cadena | Apellido del contacto proporcionado en la dirección de facturación |
País |
| cadena | País del contacto proporcionado en la dirección de facturación |
Código de país |
| cadena | Código de país del contacto proporcionado en la dirección de facturación |
Estado |
| cadena | Estado del contacto proporcionado en la dirección de facturación |
Código de estado |
| cadena | Código de estado del contacto proporcionado en la dirección de facturación |
Ciudad |
| cadena | Ciudad del contacto proporcionada en la dirección de facturación |
Dirección 1 y |
| cadena | Dirección del contacto (1ra línea) proporcionada en la dirección de facturación |
Dirección 2 |
| cadena | Dirección del contacto (2da línea) proporcionada en la dirección de facturación |
Código postal |
| cadena | Código postal del contacto proporcionado en la dirección de facturación |
Empresa |
| cadena | Título de la empresa del contacto proporcionado en la dirección de facturación |
Teléfono |
| cadena | Número de teléfono del contacto proporcionado en la dirección de facturación |
Dirección de envío (solo automatización)
Título del menú desplegable | Etiqueta | Tipo de valor | Descripción |
Nombre de pila |
| string | Nombre de pila del contacto proporcionado en la dirección de envío |
Apellido |
| string | Apellido del contacto proporcionado en la dirección de envío |
País |
| cadena | País del contacto proporcionado en la dirección de envío |
Código de país |
| cadena | Código de país del contacto proporcionado en la dirección de envío |
Estado |
| cadena | Estado del contacto proporcionado en la dirección de envío |
Código de estado |
| cadena | Código de estado del contacto proporcionado en la dirección de envío |
Ciudad |
| cadena | Ciudad del contacto proporcionada en la dirección de envío |
Dirección 1 y |
| cadena | Dirección del contacto (1ª línea) proporcionada en la dirección de envío |
Dirección 2 |
| string | Dirección del contacto (2ª línea) proporcionada en la dirección de envío |
Código postal |
| string | Código postal del contacto proporcionado en la dirección de envío |
Empresa |
| string | Título de la empresa del contacto proporcionado en la dirección de envío |
Teléfono |
| string | Número de teléfono del contacto proporcionado en la dirección de envío |
Propiedades del carrito (Solo Automatización)
Título del desplegable | Etiqueta | Tipo de valor | Descripción |
URL del carrito abandonado |
| string | URL para alcanzar/recuperar el carrito abandonado |
Resolución de problemas
La personalización muestra código sin procesar en los correos electrónicos
Causa: Estás viendo un correo electrónico de prueba en lugar de un correo electrónico en vivo.
Solución: Los correos electrónicos de prueba siempre muestran etiquetas Liquid en bruto ([[ contact.first_name ]]). Para probar la personalización:
Utiliza Prueba y Vista previa en el editor y selecciona un contacto real.
O envía la campaña/automatización en vivo a tu propio correo electrónico (asegúrate de que tu perfil de contacto tenga datos).
La personalización no se transforma en correos electrónicos en vivo.
Causa: La etiqueta Liquid puede haber perdido integridad si se editó parcialmente.
Solución: Elimina toda la etiqueta de personalización y reinserta utilizando el icono de Etiqueta de Personalización en la barra de herramientas, o escribe @ en el bloque de texto. Esto asegura que la etiqueta esté formateada correctamente.
El texto de respaldo no funciona
Causa: Sintaxis incorrecta o comillas faltantes.
Solución: Asegúrate de que los valores de respaldo estén entre comillas:
1
[[ contact.first_name | default: 'there' ]][[ contact.first_name | default: there ]]
La lógica condicional no funciona en Campañas
Causa: Las etiquetas y las declaraciones condicionales solo funcionan en Flujos de trabajo de Automatización.
Solución: Use lógica condicional en automatizaciones – no en Campañas.
FAQ
¿Puedo usar Liquid en SMS y Notificaciones Push?
Sí. Los objetos y filtros de Liquid funcionan en Correo electrónico, SMS y notificaciones push. La lógica condicional solo funciona en Automatización.
¿Cuál es la diferencia entre {{ }} y [[ ]]?
Shopify utiliza {{ }} para objetos Liquid. Omnisend utiliza [[ ]]. Si estás copiando código Liquid de la documentación de Shopify, reemplaza las llaves por corchetes.
¿Necesito agregar valores de respaldo?
Sí. Siempre agrega respaldos para evitar espacios en blanco cuando faltan datos del contacto:
[[ contact.first_name | default: 'there' ]]
¿Puedo combinar múltiples filtros?
Sí. Cadena de filtros con | símbolos:
[[ contact.first_name | capitalize | default: 'there' ]]
¿Dónde puedo encontrar más ejemplos de Liquid?
Aprende más en la documentación de Liquid de Shopify recuerda reemplazar {{ }} con [[ ]] y {% %} con [% %] en Omnisend.
Puedes contactar a nuestro galardonado equipo de soporte para cualquier asistencia adicional a través del chat en la aplicación o en [email protected].
