Modificar a saída de uma variável usando filtros

Variáveis, também conhecidas como etiquetas de personalização ou etiquetas de mesclagem, permitem que você insira dados personalizados para cada destinatário, como seu nome ou compra mais recente. Os filtros permitem que você controle como esses dados aparecem ajustando seu formato ou conteúdo.

O que são filtros?

Filtros modificam a saída de uma variável. Eles são usados dentro de chaves duplas {{ }} e são separados da variável por um caractere de barra vertical |. Por exemplo, {{ contact.FIRSTNAME|upper }} exibirá o nome do contato em letras maiúsculas.

Você também pode encadear vários filtros, o que significa que a saída de um filtro é passada para o próximo.

Para usar um filtro em uma campanha de e-mail ou modelo, você precisa adicioná-lo manualmente à variável. Isso significa escrever a variável inteira você mesmo.

No editor de arrastar e soltar, a variável aparecerá então como uma etiqueta, sem o filtro.

email_filters_example.gif
💡 É bom saber
Não é possível aplicar um filtro a uma variável adicionada por meio do menu Adicionar variável. Para usar o filtro, digite a variável manualmente.

💬 Insira um valor padrão

default

Insere um valor alternativo padrão para quando o valor da variável estiver vazio.

Entrada Saída
Olá {{ contact.FIRSTNAME|default:'there' }}. Olá, você,

🔠 Formatar a capitalização da palavra

capfirst

Coloca o primeiro caractere de um valor de variável em maiúscula.

Entrada Saída
{{ contact.MESSAGE|capfirst }} Meu carro vermelho

title

Retorna uma versão com maiúsculas e minúsculas de um valor de variável. As palavras começarão com letras maiúsculas; todos os caracteres restantes serão minúsculos.

Entrada Saída
{{ contact.NAME|title }} John Doe

upper

Torna cada caractere de um valor variável maiúsculo.

Entrada Saída
{{ contact.NAME|upper }} JOHN DOE

lower

Torna cada caractere de um valor variável minúsculo.

Entrada Saída
{{ contact.NAME|lower }} john doe

truncatechars

Encurta um valor de variável se ele for maior que o número especificado de caracteres. Valores truncados terminarão com reticências (…) incluídas na contagem de caracteres.

Entrada Saída
{{ contact.MANAGER|truncatechars:7 }} Elisab…

🔢 Formate números

floatformat

Arredonda a saída dos valores flutuantes da sua variável para a casa decimal especificada.

Para funcionar corretamente, os valores devem ser passado como um número e não como uma string, e os valores não devem ser passados entre aspas, como “valor”.

Entrada Saída
{{ params.total|floatformat:2 }} 40.32
{{ params.total|floatformat:0 }} 40

integer

Converte um número em formato de string ou ponto flutuante em um número inteiro.

Entrada Saída
{{ 10.578|integer }} 10
{{ "16.765"|integer }} 16

float

Converte um número em formato string ou inteiro em um número de ponto flutuante.

Entrada Saída
{{ 10|float }} 10.000000
{{ "16.765"|float }} 16.765000

lang_format

Formate números dependendo do idioma do destinatário.

Entrada Saída
{{ 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
💡 É bom saber
  • Para forçar 2 casas decimais, adicione ,%.2f após a variável idioma.
  • Para o francês, o separador de milhares é um espaço não quebrável.

📅 Formate data e horário

❗️ Importante
  • Abreviações de dias e meses e nomes completos são suportados somente em inglês.
  • O horário de referência é "segunda-feira, 2 de janeiro, 15:04:05 -0700 MST 2006".
  • Se um valor não for passado, ele será considerado 0.
  • O fuso horário padrão (se não for informado) é UTC.
  • Você pode usar as palavras-chave am/pm.
  • As maneiras mais comuns de definir o fuso horário são as palavras-chave dedicadas (MST, CET, UTC, Ásia/Calcutá etc.) ou como numérico, +0100 ou -0100, para UTC.

time_parse

Converte sua data (passada como string) em um formato de data padrão, para que possa ser usado com outros filtros.

Para passar o formato atual de data como um argumento formate a data/horário exata de como a hora de referência deveria ser exibida se tivesse o valor.

Entrada Saída
{{ params.MY_DATE|time_parse:"Monday 02 January 2006" }} Tuesday 11 March 2021
💡 É bom saber

Se sua string for formatada usando RFC3339, você pode usar o parser dedicado time_parse_rfc3339 sem um argumento.

date

Converte uma data para um formato específico.

Você terá uma data a partir de uma string, usando o filtro time_parse ou o horário atual, passando o filtro data para a variável time_now.

Entrada Saída
{{ "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á o dia e a data atual, no formato especificado
{{ time_now|date:"02/01/2006" }} Imprimirá o dia e a data atual, no formato especificado
{{ time_now|date:"01" }}

 Imprimiráo mês atual

{{ time_now|date:"02" }}

 Imprimirá o dia atual

{{ time_now|date:"2006" }}

Imprimirá o ano atual

date_i18n

Converte uma data para um formato especificado, mas a saída será em outros idiomas.

Atualmente, os idiomas suportados são en, fr, it, es, de e pt. Este filtro é semelhante ao filtro "date" e a única diferença é que o idioma deve ser especificado primeiro no filtro e depois o formato.

Entrada Saída
{{ "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

Adiciona um número de dias a um registro de data e hora ou a uma sequência de datas. É obrigatório passar todos os valores para este filtro na seguinte ordem: "ano, mês, dia".

Entrada Saída
{{ time_now|time_add_date:"1,2,3" }} Imprimirá timestamp depois de adicionar 1 ano, 2 meses e 3 dias ao timestamp atual
{{ "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

Converte um registro de data e hora ou uma sequência de data de acordo com o fuso horário passado ao filtro. É obrigatório passar um fuso horário para o filtro no seguinte formato: "local/fuso horário".

Entrada Saída
{{ time_now|time_in_location:"Europe/Berlin" }} Imprimirá a timestamp atual em 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

Adiciona duração de tempo a um registro de data e hora ou a uma sequência de data. É obrigatório passar pelo menos um valor (hora, minuto ou segundo) no filtro.

Entrada Saída
{{ time_now|time_add_duration:"1h2m3s" }} Imprimirá uma timestamp após adicionar 1 hora, 2 minutos e 3 segundos a um valor de tempo na timestamp atual
{{ time_now|time_add_duration:"30m" }} Imprimirá uma timestamp após adicionar 30 minutos ao valor horário

time_unix

Converte um valor horário em uma timestamp Unix em segundos.

Entrada Saída
{{ time_now|time_unix }} Imprimirá timestamp atual Unix em segundos

time_unix_nano

Converte um valor de tempo em uma timestamp Unix em nanosegundos.

Entrada Saída
{{ time_now|time_unix_nano }} Imprimirá timestamp atual Unix em nanosegundos

🧑‍💻 Dados codificados ou criptografados

base64_encode ou decode

Codifica ou decodifica 64:

  • base64_decode decodifica uma string para um []byte
  • base64_encode codifica um []byte para uma string
Entrada Saída
https://example.com/test?name={{ contact.FIRSTNAME|base64_encode }} https://example.com/test?name=RW56bw== (em vez de https://example.com/test?name=Enzo)

Os filtros base64_encode e decode podem ser um parâmetro de codificação opcional:

  • std: codificação base64 encoding normal,
  • raw_std: codificação base64 normal, sem o = caracteres de preenchimento,
  • url: versão segura da URL de codificação base64 encoding, + e / são substituídos respectivamente por - e _,
  • raw_url: uma combinação de raw e url.

aes_128, 192 ou 256

Criptografa um valor. Por exemplo, você pode usar esse filtro para enviar informações criptografadas de contato em um URL, como um endereço de e-mail ou uma ID.

A variante de AES depende do comprimento da chave fornecida:

Comprimento da chave secreta Variante da AES
16 bytes (128 bits) AES-128
24 bytes (192 bits) AES-192
32 bytes (256 bits) AES-256

Por exemplo, para a variante AES-256, a variável deve ser formatada como {{ contact.ATTRIBUTE | aes_256:"key" }}, onde a chave:

  • Tem 32 dígitos.
  • Foi gerada aleatoriamente.
  • Tem que ter persistido em sua ponta para poder decodificar o valor original.

Por padrão, se nenhum parâmetro de codificação for adicionado, base64 std será usado. Caso contrário, ele também suporta:

  • raw_std: codificação base64 normal, sem o = caracteres de preenchimento,
  • url: versão segura da URL de codificação base64 encoding, + e / são substituídos respectivamente por - e _,
  • raw_url: uma combinação de raw e url.
💡 É bom saber

Em nossos exemplos abaixo, estamos criptografando os endereços de e-mail de nossos contatos, usando a seguinte chave: e5a34a481274c776856d04119bed8188. Observe que você não deve usar a mesma chave, mas sim gerar sua própria chave seguindo os requisitos acima.

Codificação Entrada Saída

Sem codificação (codificação padrão base64 std)

{{ contact.EMAIL | aes_256:
"e5a34a481274c776856d04119bed8188" }}
Irá imprimir uma string aleatória que precisa ser decodificada para se ler o valor original

Codificação Base64 raw_std

{{ contact.EMAIL | aes_256:
"e5a34a481274c776856d04119bed8188,
raw_std" }}
Irá imprimir uma string aleatória que precisa ser decodificada para se ler o valor original

Codificação Base64 url

{{ contact.EMAIL | aes_256:
"e5a34a481274c776856d04119bed8188,
url" }}
Irá imprimir uma string aleatória que precisa ser decodificada para se ler o valor original

Codificação Base64 raw_url

{{ contact.EMAIL | aes_256:
"e5a34a481274c776856d04119bed8188,
raw_url" }}
Irá imprimir uma string aleatória que precisa ser decodificada para se ler o valor original

🔎 Outros filtros

first

Retorna o primeiro item de uma sequência, um mapeamento ou uma string.

Entrada Solicitação de API Saída
{{ params.array|first }} "params" :
{
"array" : [ 1,2,3,4 ]
}
1

join

Combina os itens de uma matriz em uma única string, usando o argumento como um separador.

O separador entre elementos é vazio por padrão. Você pode defini-lo com o primeiro parâmetro opcional.

Entrada Saída
{{ [1, 2, 3]|join }} 123
{{ [1, 2, 3]|join: '|' }} 1|2|3

last

Retorna o último item de uma sequência, mapeamento ou string.

Entrada Saída
{{ [1, 2, 3, 4]|last }} 4

length

Retorna o número de itens de uma sequência ou mapeamento ou o tamanho de uma string.

Entrada Saída
{{ ['a', 'b', 'c', 'd']|length }} 4

safe

Marca uma string como não exigindo mais escapamento HTML antes de saída.

A

Solicitação de API

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

B

Atributo de contato

Placeholder

Entrada Saída
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

Sem o filtro safe, a tag HTML seria exibida como uma string normal no e-mail do destinatário: "<p>Esta é minha frase teste</p>" ou "Welcome to <b>Brevo</b>, we're glad to have you here".

slice

Extrai um pedaço de uma sequência, mapeamento ou string.

Este filtro pode ser configurado para:

A Faz um loop apenas pelo primeiro número "n" de elementos em uma matriz Em ambos os casos, lembre-se de que elementos em uma matriz são atribuídos a um único número de posição, começando com "0" como primeira posição (eles são “indexados a zero”).
B Faz um loop pelos elementos entre duas posições específicas ("n" e "m") na matriz
C Faz um loop pelos elementos entre dois elementos específicos em uma matriz.  

Em cada elemento, considere que sua matriz contém o seguinte: ["a","b","c","d","e","f","g","h"...]

 

Entrada Saída

A

{% for product in params.products|slice:':5' %}
{{ product.name }} - {{ product.price }}
{% endfor %}
Fará um loop pelas 5 primeiras posições (0-4), ou seja: ["a","b","c","d","e"]
B {% for product in params.products|slice:'2:3' %}
{{ product.name }} - {{ product.price }}
{% endfor %}
Fará um loop pelas posições (2-3), ou seja: ["c","d"]
C {% for product in params.products|slice:'b:d' %}
{{ product.name }} - {{ product.price }}
{% endfor %}
Fará um loop pelos elementos especificados, ou seja: ["b","c","d"]

verbatim

Na Brevo, as variáveis são escritas usando chaves duplas como {{ params.property }}. Quando você inclui chaves duplas como {{ this }} em seu e-mail, a Brevo as trata como um elemento de modelo.

Para exibir {{ }} como texto simples em seu e-mail, envolva o conteúdo em um bloco {% verbatim %} :

Entrada Saída
{% verbatim %}
{{ Print variable }}
{% endverbatim %}
{{ Print variable }}

autoescape

Por padrão, a Brevo escapa todo o conteúdo variável, incluindo HTML e JavaScript. Isso significa que, se sua variável contiver HTML (por exemplo, <h1>Meu título</h1>), ela será exibida como texto simples em vez de renderizada como HTML.

Para permitir a renderização HTML, você precisa desabilitar o escape automático usando a etiqueta {% autoescape off %} . Envolva a variável neste bloco e feche-o com {% endautoescape %}:

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

  Entrada Saída
Sem a etiqueta de autoescape {{ params.my_html }} <h1>Meu título</h1>
Com a etiqueta autoescape

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

Meu título

📖 Recursos adicionais

A Linguagem do modelo Brevo se baseia no Pongo2, uma reimplementação do Django in Go (uma linguagem de programação).

Todas as tags suportadas

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

Todos os filtros suportados

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 os filtros suportados para algorítimos 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.

💡 É bom saber
Se você identificar um filtro que ainda não é suportado, fale com nossa equipe de suporte criando um tíquete na sua conta. Caso ainda não tenha uma conta, você pode entrar em contato com a gente aqui.

🤔 Dúvidas?

Em caso de dúvida, sinta-se à vontade para entrar em contato com nossa equipe de suporte, criando um tíquete a partir da sua conta. Caso ainda não tenha uma conta, entre em contato conosco aqui.

Se você está procurando ajuda com um projeto usando o Brevo, podemos encontrar à agência parceira da Brevo certa.

💬 Este artigo foi útil?

15 de 43 acharam isto útil