Modificar la salida de una variable mediante filtros

Las variables, también conocidas como etiquetas de personalización o etiquetas de fusión, te permiten insertar datos personalizados para cada destinatario, como su nombre o su compra más reciente. Los filtros te permiten controlar cómo aparecen estos datos ajustando su formato o contenido.

¿Qué son los filtros?

Los filtros modifican la salida de una variable. Se utilizan dentro de llaves dobles {{ }} y están separados de la variable por un carácter de barra vertical |. Por ejemplo, {{ contact.FIRSTNAME|upper }} mostrará el nombre del contacto en mayúsculas.

También puedes encadenar varios filtros, lo que significa que la salida de un filtro se incluye en el siguiente.

Para utilizar un filtro en una campaña o plantilla de email, debes añadirlo manualmente a la variable. Esto significa que debes escribir toda la variable tú mismo.

En el editor Drag and Drop, la variable aparecerá como una etiqueta, sin el filtro.

email_filters_example.gif
💡 Información relevante
No puedes aplicar un filtro a una variable añadida a través del menú Add variable (Añadir variable). Para utilizar los filtros, escribe la variable de forma manual.

💬 Insertar un valor predeterminado

default

Inserta un valor de recuperación predeterminado en caso de que el valor de la variable esté vacío.

Entrada Resultado
Hola {{ contact.FIRSTNAME|default:'there' }}, Hola, qué tal:

🔠 Formato de mayúsculas de la palabra

capfirst

Hace que el primer carácter de un valor variable aparezca en mayúscula.

Entrada Resultado
{{ contact.MESSAGE|capfirst }} Mi coche rojo

title

Devuelve una versión con las mayúsculas del título de un valor variable. Las palabras comenzarán con letras mayúsculas; el resto de caracteres serán minúsculas.

Entrada Resultado
{{ contact.NAME|title }} John Doe

upper

Hace que cada carácter de un valor variable aparezca en mayúscula.

Entrada Resultado
{{ contact.NAME|upper }} JOHN DOE

lower

Hace que cada carácter de un valor variable aparezca en minúscula.

Entrada Resultado
{{ contact.NAME|lower }} john doe

truncatechars

Acorta un valor variable si es más largo que el número de caracteres especificado. Los valores truncados finalizarán con puntos suspensivos (…) incluidos en el recuento de caracteres.

Entrada Resultado
{{ contact.MANAGER|truncatechars:7 }} Elisab…

🔢 Formato de números

floatformat

Redondea el resultado de los valores flotantes de tus variables a un decimal especificado.

Para que funcione correctamente, los valores deben incluirse como número, en lugar de como cadena, y no deben incluirse entre comillas como “valor”.

Entrada Resultado
{{ params.total|floatformat:2 }} 40.32
{{ params.total|floatformat:0 }} 40

integer

Convierte un número en formato de cadena o punto flotante en un número entero.

Entrada Resultado
{{ 10.578|integer }} 10
{{ "16.765"|integer }} 16

float

Convierte un número en formato de cadena o entero en un número de coma flotante.

Entrada Resultado
{{ 10|float }} 10.000000
{{ "16.765"|float }} 16.765000

lang_format

Cambia el formato del número según el idioma del destinatario.

Entrada Resultado
{{ params.number|lang_format:"fr" }} 123 456,789
{{ params.number|lang_format:"en" }} 123,456.789
{{ params.number|lang_format:"hi" }} 1,23,456.789
{{ params.number|lang_format:"bn" }} ১,২৩,৪৫৬.৭৮৯
{{ params.number|lang_format:"fr,%.2f" }} 123 456,79
💡 Información relevante
  • Para forzar 2 decimales, añade ,%.2f después del filtro de idioma.
  • En francés, el separador de enteros es un espacio de no separación.

📅 Formato de fecha y hora

❗️ Importante
  • Las abreviaturas y los nombres completos de los días y los meses solo se admiten en inglés.
  • La hora de referencia es "Monday January 2 15:04:05 -0700 MST 2006".
  • Si no se incluye un valor, se considera 0.
  • La zona horaria predeterminada (si no se incluye) es UTC.
  • Puedes utilizar las palabras clave am/pm.
  • Las formas más habituales de definir la zona horaria son las palabras clave dedicadas (MST, CET, UTC, Asia/Kolkata, etc.), o como número, +0100 o -0100, a UTC.

time_parse

Convierte el formato de su fecha (incluido como una cadena) a un formato de fecha estándar que puede utilizarse con otros filtros.

Para incluir el formato de fecha actual como un argumento, utilice el mismo formato de fecha/hora con el que se mostraría la hora de referencia si este fuera el valor.

Entrada Resultado
{{ params.MY_DATE|time_parse:"Monday 02 January 2006" }} Tuesday 11 March 2021
💡 Información relevante

Si el formato de tu cadena utiliza RFC3339 puedes utilizar el parser específico time_parse_rfc3339 sin argumento.

date

Convierte la fecha a un formato concreto.

Obtendrás una fecha de una cadena utilizando el filtro time_parse o la hora actual incluyendo el filtro date en la variable time_now.

Entrada Resultado
{{ "14:01 01/06/2018"|time_parse:"15:04 02/01/2006"|date:"Mon Jan 2 15:04:05 2006" }} Fri Jun 1 14:01:00 2018
{{ time_now|date:"Monday, Jan 2, 2006" }} Imprimirá el día y la fecha actual en el formato especificado.
{{ time_now|date:"02/01/2006" }} Imprimirá el día y la fecha actual en el formato especificado.
{{ time_now|date:"01" }}

 Imprimirá el mes actual

{{ time_now|date:"02" }}

 Imprimrá el día actual

{{ time_now|date:"2006" }}

Imprimirá el año actual

date_i18n

Convierte una fecha a un formato específico, pero la salida estaría en otros idiomas.

Actualmente, los idiomas admitidos son en, fr, it, es, de y pt. Este filtro es similar al filtro "date", y la única diferencia es que primero se debe especificar el idioma en el filtro y luego el formato.

Entrada Resultado
{{ "14:01 01/06/2018" | time_parse:"15:04 02/01/2006"|date_i18n:"en,Monday" }} Friday
{{ "14:01 01/06/2018" | time_parse:"15:04 02/01/2006"|date_i18n:"de,Monday" }} Freitag

time_add_date

Añade un número de días a una marca de tiempo o cadena de fecha. Es obligatorio incluir todos los valores en este filtro en el siguiente orden: "año, mes, día".

Entrada Resultado
{{ time_now|time_add_date:"1,2,3" }} Imprimirá el sello temporal añadiendo 1 año, 2 meses y 3 días al sello temporal actual
{{ "14:01 01/06/2018"|time_parse:"15:04 02/01/2006"|time_add_date: "1,2,3" }} 2019-08-04 14:01:00 +0000 UTC

time_in_location

Convierte una marca de tiempo o una cadena de fecha según la zona horaria pasada al filtro. Es obligatorio incluir una zona horaria en el filtro con el siguiente formato: "ubicación/zona horaria".

Entrada Resultado
{{ time_now|time_in_location:"Europe/Berlin" }} Imprimirá el sello temporal actual en CEST
{{ "14:01 01/06/2018"|time_parse:"15:04 02/01/2006"|time_in_location: "Europe/Berlin" }} 2018-06-01 16:01:00 +0200 CEST

time_add_duration

Añade la duración de tiempo a una marca de tiempo o una cadena de fecha. Es obligatorio incluir al menos un valor (hora, minuto o segundo) en el filtro.

Entrada Resultado
{{ time_now|time_add_duration:"1h2m3s" }} Imprimirá el sello temporal después de añadir 1 hora, 2 minutos y 3 segundos al valor temporal en el sello temporal actual
{{ time_now|time_add_duration:"30m" }} Imprimirá el sello temporal después de añadir 30 minutos al valor temporal

time_unix

Convierte un valor temporal a un sello temporal Unix en segundos.

Entrada Resultado
{{ time_now|time_unix }} Imprimirá el sello temporal Unix en segundos

time_unix_nano

Convierte un valor temporal a un sello temporal Unix en nanosegundos.

Entrada Resultado
{{ time_now|time_unix_nano }} Imprimirá el sello temporal Unix en nanosegundos

🧑‍💻 Codificar o encriptar datos

base64_encode o decode

Codifica o descodifica en base64:

  • base64_decode descodifica una cadena a un []byte
  • base64_encode codifica un []byte a una cadena
Entrada Resultado
https://example.com/test?name={{ contact.FIRSTNAME|base64_encode }} https://example.com/test?name=RW56bw== (en lugar de https://example.com/test?name=Enzo)

Los filtros base64_encode y decode pueden coger un parámetro de codificación adicional:

  • std: codificación normal en base64,
  • raw_std: codificación normal en base64, sin los caracteres = de relleno,
  • url: versión segura de URL de codificación en base64, + y / se sustituyen por - y _ respectivamente,
  • raw_url: una combinación de raw y url.

aes_128, 192 o 256

Encripta un valor. Por ejemplo, se puede usar este filtro para enviar información de contacto encriptada en una URL, como una dirección de email o un ID.

La variante AES utilizada depende de la longitud de la clave proporcionada:

Longitud de la clave secreta Variante AES
16 bytes (128 bits) AES-128
24 bytes (192 bits) AES-192
32 bytes (256 bits) AES-256

Por ejemplo, para la variante AES-256, la variable debe tener el formato {{ contact.ATTRIBUTE | aes_256:"key" }}, donde la clave:

  • Debe tener 32 dígitos.
  • Debe haber sido generada aleatoriamente.
  • Debe persistir en su lado para poder desencriptar el valor original.

De manera predeterminada, si no se añade ningún parámetro de codificación, se utilizará base64 std. Si no, también admite:

  • raw_std: codificación normal en base64, sin los caracteres = de relleno,
  • url: versión segura de URL de codificación en base64, + y / se sustituyen por - y _ respectivamente,
  • raw_url: una combinación de raw y url.
💡 Información relevante

En los siguiente ejemplos, hemos encriptado las direcciones de email de nuestros contactos utilizando la clave: e5a34a481274c776856d04119bed8188. Tenga en cuenta que no debe usar esta misma clave, sino generar su propia clave según los requisitos anteriores.

Codificación Entrada Resultado

Sin codificación (codificación predeterminada base64 std)

{{ contact.EMAIL | aes_256:
"e5a34a481274c776856d04119bed8188" }}
Imprime una cadena aleatoria que debe desencriptarse para leer el valor original

Codificación Base64 raw_std

{{ contact.EMAIL | aes_256:
"e5a34a481274c776856d04119bed8188,
raw_std" }}
Imprime una cadena aleatoria que debe desencriptarse para leer el valor original

Codificación Base64 url

{{ contact.EMAIL | aes_256:
"e5a34a481274c776856d04119bed8188,
url" }}
Imprime una cadena aleatoria que debe desencriptarse para leer el valor original

Codificación Base64 raw_url

{{ contact.EMAIL | aes_256:
"e5a34a481274c776856d04119bed8188,
raw_url" }}
Imprime una cadena aleatoria que debe desencriptarse para leer el valor original

🔎 Otros filtros

first

Devuelve el primer elemento de una secuencia, una asignación o una cadena.

Entrada Solicitud API Resultado
{{ params.array|first }} "params" :
{
"array" : [ 1,2,3,4 ]
}
1

join

Combina los elementos de un conjunto en una sola cadena utilizando el argumento como separador.

El separador entre elementos está vacío por defecto. Puedes definirlo con el primer parámetro opcional.

Entrada Resultado
{{ [1, 2, 3]|join }} 123
{{ [1, 2, 3]|join: '|' }} 1|2|3

last

Devuelve el último elemento de una secuencia, un mapeo o una cadena.

Entrada Resultado
{{ [1, 2, 3, 4]|last }} 4

length

Devuelve el número de elementos de una secuencia o un mapeo, o la longitud de una cadena.

Entrada Resultado
{{ ['a', 'b', 'c', 'd']|length }} 4

safe

Marca una cadena para indicar que no requiere caracteres de escape de HTML antes de la salida.

A

Solicitud API

Entrada Resultado
"params" :{HtmlTest: "<p>This is my test sentence.</p>"} {{ params.htmltest|safe }} This is my test sentence

B

Atributo de contacto

Marcador de posición

Entrada Resultado
EMAIL_SALUTATION Welcome to <b>Brevo</b>, we're glad to have you here {{ contact.EMAIL_SALUTATION
|safe }}
Welcome to Brevo, we're glad to have you here

Sin el filtro "safe" la etiqueta HTML aparecería como una cadena normal en el email del destinatario: "<p>Esta es mi frase de prueba</p>" o "Welcome to <b>Brevo</b>, we're glad to have you here".

slice

Extrae un trozo de una frase, mapeo o cadena.

Este filtro se puede configurar para:

A Hará un bucle solo en los primeros "n" números de elementos de un conjunto En ambos casos, recuerde que los elementos de un conjunto se asignan a un único número de posición que empieza con "0" en la primera posición (se conocen como "indexados a cero").
B Recorrerá los elementos entre dos posiciones especificadas ("n" y "m") en el conjunto
C Recorrerá los elementos entre dos elementos especificados de un conjunto.  

En cada ejemplo, imagine que su conjunto contiene: ["a","b","c","d","e","f","g","h"...].

 

Entrada Resultado

A

{% for product in params.products|slice:':5' %}
{{ product.name }} - {{ product.price }}
{% endfor %}
Recorrerá las primeras 5 posiciones (0-4), que son: ["a","b","c","d","e"]
B {% for product in params.products|slice:'2:3' %}
{{ product.name }} - {{ product.price }}
{% endfor %}
Recorrerá las posiciones (2-3), que son: ["c","d"]
C {% for product in params.products|slice:'b:d' %}
{{ product.name }} - {{ product.price }}
{% endfor %}
Recorrerá los elementos especificados, que son: ["b","c","d"]

literal

En Brevo, las variables se escriben utilizando llaves dobles como {{ params.property }}. Cuando incluyes llaves dobles como {{ this }} en tu email, Brevo lo trata como un elemento de plantilla.

Para mostrar {{ }} como texto sin formato en tu email, envuelve el contenido en un bloque {% verbatim %}:

Entrada Resultado
{% verbatim %}
{{ Print variable }}
{% endverbatim %}
{{ Print variable }}

escape automático

De forma predeterminada, Brevo escapa de todo el contenido de la variable, incluidos HTML y JavaScript. Esto significa que si tu variable contiene HTML (por ejemplo, <h1>Mi título</h1>), se mostrará como texto sin formato en lugar de procesarse como HTML.

Para permitir la representación HTML, debes deshabilitar el escape automático mediante la etiqueta {% autoescape off %}. Envuelve la variable en este bloque y ciérrala con {% endautoescape %}:

{% autoescape off %}{{ params.my_html }}{% endautoescape %}

  Entrada Resultado
Sin la etiqueta autoescape {{ params.my_html }} <h1>Mi título</h1>
Con la etiqueta autoescape

{% autoescape off %}
{{ params.my_html }}
{% endautoescape %}

Mi título

📖 Recursos adicionales

El Lenguaje de Plantillas de Brevo se basa en Pongo2, una reimplementación de Django in Go (un lenguaje de programación).

Todas las etiquetas compatibles

autoescape, comment, cycle, filter, firstof, for, if, ifchanged, now, set, spaceless, templatetag, with.

Todos los filtros compatibles

escape, safe, escapejs, add, addslashes, capfirst, center, cut, date, default, default_if_none, divisibleby, first, floatformat, get_digit, iriencode, join, last, length, length_is, linebreaks, linebreaksbr, linenumbers, ljust, lower, make_list, phone2numeric, pluralize, random, removetags, rjust, slice, stringformat, striptags, time, title, truncatechars, truncatechars_html, truncatewords, truncatewords_html, upper, urlencode, urlize, urlizetrunc, wordcount, wordwrap, yesno.

Todos los filtros compatibles con algoritmos hash

hash_md5, hash_sha256, hash_sha256_224, hash_sha512, hash_sha512_224, hash_sha512_256, hash_sha512_384, hash_sha3_224, hash_sha3_256, hash_sha3_384, hash_sha3_512.

💡 Información relevante
Si identificas un filtro que aún no es compatible, ponte en contacto con nuestro equipo de asistencia creando un ticket desde tu cuenta. Si aún no tienes una cuenta, puedes ponerte en contacto con nosotros aquí.

🤔 ¿Tiene alguna duda?

Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro equipo de asistencia mediante la creación de un ticket desde su cuenta. Si todavía no tiene una cuenta, puede ponerse en contacto con nosotros aquí.

Si necesitas ayuda con un proyecto usando Brevo, podemos ponerte en contacto con la agencia partner de Brevo adecuada.

💬 ¿Fue útil este artículo?

Usuarios a los que les pareció útil: 15 de 43