¿Por qué estoy viendo "Error en la sintaxis de liquid"?
Cómo solucionar el TokenizationError causado por caracteres especiales como paréntesis, barras o dos puntos dentro de los tokens de personalización.
Contents
Qué Significa Este Error
SecureMailMerge utiliza el lenguaje de plantillas Liquid para procesar tus tokens de personalización. Liquid trata todo lo que está dentro de llaves (por ejemplo, {{…}}) como código, no como texto plano. Cuando un nombre de columna contiene caracteres especiales, Liquid intenta interpretarlos como operadores de programación y falla.
Por ejemplo, si tu hoja de cálculo tiene una columna llamada Fecha(s) y escribes {{Fecha(s)}} en tu correo electrónico, Liquid ve:
Fecha— un nombre de variable(s)— lo que parece una llamada a función o expresión de rango
Esto desencadena el error:
TokenizationError: sintaxis de rango inválida
Caracteres que causan este error
Los siguientes caracteres tienen un significado especial en Liquid y causarán errores cuando se usen dentro de llaves:
| Carácter | Lo que Liquid piensa que significa |
|---|---|
( ) | Expresión de rango o agrupación |
/ | Operador de división |
: | Separador de argumentos de filtro |
+ - * | Operadores aritméticos |
Así que una columna llamada Date(s) o Day(s)/Date(s): se romperá porque Liquid intenta analizar estos caracteres como código.
Cómo solucionarlo
Opción 1: Usa el menú desplegable de columnas (recomendado)
La solución más fácil es usar el menú desplegable de tokens de personalización en SecureMailMerge en lugar de escribir el token manualmente. El menú desplegable envuelve automáticamente los nombres de las columnas que contienen caracteres especiales en la sintaxis de escape correcta:
{{ ["Date(s)"] }}
Los corchetes y las comillas le dicen a Liquid que trate toda la cadena como un nombre de columna en lugar de código. Simplemente selecciona la columna del menú desplegable y haz clic en el botón para insertarla en tu asunto o cuerpo.
Opción 2: Corrige la sintaxis manualmente
Si prefieres escribir los tokens tú mismo, envuelve los nombres de las columnas que contienen caracteres especiales en ["..."]:
| Incorrecto | Correcto |
|---|---|
{{Date(s)}} | {{ ["Date(s)"] }} |
{{Day(s)/Date(s):}} | {{ ["Day(s)/Date(s):"] }} |
{{Time(s):}} | {{ ["Time(s):"] }} |
Opción 3: Renombra las columnas de tu hoja de cálculo
Puedes evitar este problema por completo renombrando tus columnas para usar solo letras, números y guiones bajos:
| Antes | Después |
|---|---|
Date(s) | Dates |
Day(s)/Date(s): | Day_Dates |
Time(s): | Times |
Después de renombrar, tokens simples como {{Dates}} funcionarán sin ninguna sintaxis especial.