Modifier la sortie d’une variable à l’aide des filtres

Les variables, également appelées balises de personnalisation ou balises de fusion, vous permettent d’insérer des données personnalisées pour chaque destinataire, comme son prénom ou son achat le plus récent. Les filtres vous permettent de contrôler l’affichage de ces données en ajustant leur format ou leur contenu.

Que sont les filtres ?

Les filtres modifient la sortie d’une variable. Ils sont placés entre des doubles accolades {{ }} et sont séparés de la variable par une barre verticale |. Par exemple, {{ contact.FIRSTNAME|upper }} affichera le nom du contact en majuscules.

Vous pouvez également enchaîner plusieurs filtres, ce qui signifie que la sortie d’un filtre est transmise au suivant.

Pour utiliser un filtre dans une campagne email ou un template d'email, vous devez l’ajouter manuellement à la variable. Cela implique d'écrire vous-même l'intégralité de la variable.

Dans l’éditeur Drag & Drop, la variable apparaîtra alors sous forme de balise, sans le filtre.

email_filters_example.gif
💡 Bon à savoir
Vous ne pouvez pas appliquer de filtre à une variable ajoutée via le menu Ajouter une variable. Pour utiliser les filtres, tapez la variable manuellement.

💬 Insérer une valeur par défaut

default

Insère une valeur de repli par défaut lorsque la valeur de la variable est vide.

Entrée Sortie
Bonjour {{ contact.FIRSTNAME|default:'there' }}, Bonjour cher client,

🔠 Format de la casse

capfirst

Met en majuscule le premier caractère d'une valeur de variable.

Entrée Sortie
{{ contact.MESSAGE|capfirst }} Ma voiture rouge

title

Renvoie la version avec un titre d'une valeur de variable. Les mots commenceront par des majuscules ; tous les autres caractères seront en minuscules.

Entrée Sortie
{{ contact.NAME|title }} John Doe

upper

Met en majuscule chaque caractère d'une valeur de variable.

Entrée Sortie
{{ contact.NAME|upper }} JOHN DOE

lower

Met en minuscule chaque caractère d'une valeur de variable.

Entrée Sortie
{{ contact.NAME|lower }} john doe

truncatechars

Raccourcit la valeur d'une variable si elle est plus longue que le nombre de caractères spécifié. Les valeurs tronquées se termineront par des points de suspension (...) inclus dans le nombre de caractères.

Entrée Sortie
{{ contact.MANAGER|truncatechars:7 }} Elisab…

🔢 Format des numéros

floatformat

Arrondit la sortie des valeurs flottantes de votre variable à la décimale spécifiée.

Pour fonctionner correctement, les valeurs transmises doivent l'être comme un nombre, plutôt que comme une chaîne, et les valeurs ne doivent pas être transmises entre guillemets comme "valeur".

Entrée Sortie
{{ params.total|floatformat:2 }} 40.32
{{ params.total|floatformat:0 }} 40

integer

Convertit un nombre au format chaîne de caractères ou virgule flottante en un nombre entier.

Entrée Sortie
{{ 10.578|integer }} 10
{{ "16.765"|integer }} 16

float

Convertit un nombre au format chaîne ou entier en un nombre à virgule flottante.

Entrée Sortie
{{ 10|float }} 10.000000
{{ "16.765"|float }} 16.765000

lang_format

Formate les nombres en fonction de la langue du destinataire.

Entrée Sortie
{{ 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
💡 Bon à savoir
  • Pour forcer 2 décimales, ajoutez ,%.2f après le filtre de langue.
  • Pour le français, le séparateur de milliers est un espace insécable.

📅 Format de la date et de l'heure

❗️ Important
  • Les abréviations des jours et des mois et les noms complets sont pris en charge uniquement en anglais.
  • La date/heure de référence est "lundi 2 janvier 15:04:05 -0700 MST 2006".
  • Si une valeur n'est pas transmise, elle est considérée comme étant égale à 0.
  • Le fuseau horaire par défaut (s'il n'est pas transmis) est UTC.
  • Vous pouvez utiliser les mots clés am/pm.
  • Les méthodes les plus courantes pour définir le fuseau horaire sont les mots clés dédiés (MST, CET, UTC, Asia/Kolkata, etc.) ou le format numérique, +0100 ou -0100, par rapport à l'UTC.

time_parse

Convertit votre format de date (transmis sous forme de chaîne) en un format de date standard qui peut être utilisé avec d'autres filtres.

Pour passer votre format de date actuel comme argument, formatez la date/heure exacte de la façon dont l'heure de référence serait affichée si elle était la valeur.

Entrée Sortie
{{ params.MY_DATE|time_parse:"Monday 02 January 2006" }} Tuesday 11 March 2021
💡 Bon à savoir

Si votre chaîne est mise en forme à l'aide de RFC3339, vous pouvez utiliser l'analyseur dédié time_parse_rfc3339 sans argument.

date

Convertit une date dans un format spécifié.

Vous obtiendrez une date à partir d'une chaîne en utilisant le filtre time_parse ou l'heure actuelle en transmettant le filtre date à la variable time_now.

Entrée Sortie
{{ "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" }} Imprimera le jour et la date en cours au format spécifié
{{ time_now|date:"02/01/2006" }} Imprimera le jour et la date en cours au format spécifié
{{ time_now|date:"01" }}

 Imprimera le mois en cours

{{ time_now|date:"02" }}

 Imprimera le jour en cours

{{ time_now|date:"2006" }}

Imprimera l'année en cours

date_i18n

Convertit une date dans un format spécifié, mais le résultat sera dans d'autres langues.

Actuellement, les langues prises en charge sont les suivantes : en, fr, it, es, de et pt. Ce filtre est similaire au filtre de date, à la seule différence que la langue doit être spécifiée dans le filtre en premier, suivie du format.

Entrée Sortie
{{ "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

Ajoute un certain nombre de jours à un horodatage ou à une chaîne de date. Il est obligatoire de transmettre toutes les valeurs à ce filtre dans l’ordre suivant : "année, mois, jour".

Entrée Sortie
{{ time_now|time_add_date:"1,2,3" }} Imprimera l'horodatage après avoir ajouté 1 an, 2 mois et 3 jours à la valeur temporelle de l'horodatage actuel.
{{ "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

Convertit un horodatage ou une chaîne de date en fonction du fuseau horaire transmis au filtre. Il est obligatoire de transmettre un fuseau horaire au filtre au format suivant : "lieu/fuseau horaire".

Entrée Sortie
{{ time_now|time_in_location:"Europe/Berlin" }} Imprimera l'heure actuelle 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

Ajoute la durée à un horodatage ou à une chaîne de date. Il est obligatoire de transmettre au moins une valeur (heure, minute ou seconde) dans le filtre.

Entrée Sortie
{{ time_now|time_add_duration:"1h2m3s" }} Imprimera l'horodatage après avoir ajouté 1 heure, 2 minutes et 3 secondes à la valeur temporelle de l'horodatage actuel
{{ time_now|time_add_duration:"30m" }} Imprimera l'horodatage après avoir ajouté 30 minutes à la valeur du temps

time_unix

Convertit une valeur de temps en horodatage Unix en secondes.

Entrée Sortie
{{ time_now|time_unix }} Imprimera l'horodatage Unix actuel en secondes.

time_unix_nano

Convertit une valeur de temps en horodatage Unix en nanosecondes.

Entrée Sortie
{{ time_now|time_unix_nano }} Imprimera l'horodatage Unix actuel en nanosecondes

🧑‍💻 Encoder ou encrypter des données

base64_encode ou decode

Encode ou décode la base 64 :

  • base64_decode décode une chaîne de caractères vers un []byte
  • base64_encode encode un []byte en une chaîne de caractères.
Entrée Sortie
https://example.com/test?name={{ contact.FIRSTNAME|base64_encode }} https://example.com/test?name=RW56bw== (au lieu de https://example.com/test?name=Enzo)

Les filtres base64_encode et decode peuvent prendre un paramètre d'encodage optionnel :

  • std: encodage normal base64,
  • raw_std: encodage normal base64, sans les caractères de remplissage =,
  • url: version sécurisée de l'encodage base64 pour les URL, + et / sont remplacés par - et _ respectivement,
  • raw_url: une combinaison de raw et url.

aes_128, 192, ou 256

Encrypte une valeur. Par exemple, vous pouvez utiliser ce filtre pour envoyer des informations de contact cryptées dans une URL, comme une adresse email ou un identifiant.

La variante AES utilisée dépend de la longueur de la clé fournie :

Longueur de la clé secrète Variante AES
16 octets (128 bits) AES-128
24 octets (192 bits) AES-192
32 octets (256 bits) AES-256

Par exemple, pour la variante AES-256, la variable doit être au format {{ contact.ATTRIBUTE | aes_256:"key" }}, où la clé doit :

  • être composée de 32 chiffres ;
  • être générée de façon aléatoire ;
  • doit persister de votre côté afin de pouvoir décrypter la valeur d'origine.

Par défaut, si aucun paramètre d'encodage n'est défini, base64 std sera utilisé. Les paramètres suivants sont également pris en charge :

  • raw_std: encodage normal base64, sans les caractères de remplissage =,
  • url: version sécurisée de l'encodage base64 pour les URL, + et / sont remplacés par - et _ respectivement,
  • raw_url: une combinaison de raw et url.
💡 Bon à savoir

Dans nos exemples ci-dessous, nous encryptons les adresses email de nos contacts à l'aide de la clé suivante : e5a34a481274c776856d04119bed8188. Veuillez noter que vous ne devez pas utiliser la même clé, mais plutôt générer votre propre clé en respectant les exigences ci-dessus.

Encodage Entrée Sortie

Aucun encodage (encodage base64 std par défaut)

{{ contact.EMAIL | aes_256:
"e5a34a481274c776856d04119bed8188" }}
Imprime une chaîne aléatoire qui doit être décryptée pour lire la valeur d'origine

Encodage base64 raw_std

{{ contact.EMAIL | aes_256:
"e5a34a481274c776856d04119bed8188,
raw_std" }}
Imprime une chaîne aléatoire qui doit être décryptée pour lire la valeur d'origine

Encodage base64 url

{{ contact.EMAIL | aes_256:
"e5a34a481274c776856d04119bed8188,
url" }}
Imprime une chaîne aléatoire qui doit être décryptée pour lire la valeur d'origine

Encodage base64 raw_url

{{ contact.EMAIL | aes_256:
"e5a34a481274c776856d04119bed8188,
raw_url" }}
Imprime une chaîne aléatoire qui doit être décryptée pour lire la valeur d'origine

🔎 Autres filtres

first

Renvoie le premier élément d'une séquence, d'un mappage ou d'une chaîne.

Entrée Demande API Sortie
{{ params.array|first }} "params" :
{
"array" : [ 1,2,3,4 ]
}
1

join

Combine les éléments d'un tableau en une seule chaîne de caractères en utilisant l'argument comme séparateur.

Le séparateur entre les éléments est vide par défaut. Vous pouvez le définir avec le premier paramètre optionnel.

Entrée Sortie
{{ [1, 2, 3]|join }} 123
{{ [1, 2, 3]|join: '|' }} 1|2|3

last

Renvoie le dernier élément d'une séquence, d'un mappage ou d'une chaîne.

Entrée Sortie
{{ [1, 2, 3, 4]|last }} 4

length

Renvoie le nombre d'éléments d'une séquence ou d'un mappage, ou la longueur d'une chaîne.

Entrée Sortie
{{ ['a', 'b', 'c', 'd']|length }} 4

safe

Marque une chaîne de caractères comme ne nécessitant pas d'échappement HTML supplémentaire avant la sortie.

A

Demande API

Entrée Sortie
"params" :{HtmlTest: "<p>This is my test sentence.</p>"} {{ params.htmltest|safe }} This is my test sentence

B

Attribut de contact

Placeholder

Entrée Sortie
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

  Sans le filtre safe, la balise HTML s'afficherait comme une chaîne normale dans l'e-mail du destinataire : "<p>This is my test sentence</p>" ou "Welcome to <b>Brevo</b>, we're glad to have you here".

slice

Extrait une tranche d'une séquence, d'un mappage ou d'une chaîne.

Ce filtre peut être configuré pour :

A Ne passer en boucle que le premier nombre "n" d'éléments d'un tableau Dans ces deux cas, rappelez-vous que les éléments d'un tableau se voient attribuer un numéro de position unique commençant par "0" comme première position (ils sont "indexés à zéro").
B Passer en boucle les éléments entre deux positions spécifiées ("n" et "m") dans le tableau.
C Passer en boucle les éléments entre deux éléments spécifiés dans un tableau.  

Dans chaque exemple, considérez que votre tableau contient les éléments suivants : ["a","b","c","d","e","f","g","h"...].

 

Entrée Sortie

A

{% for product in params.products|slice:':5' %}
{{ product.name }} - {{ product.price }}
{% endfor %}
Passera en boucle les 5 premières positions (0-4), qui sont : ["a","b","c","d","e"]
B {% for product in params.products|slice:'2:3' %}
{{ product.name }} - {{ product.price }}
{% endfor %}
Passera en boucle les positions (2-3), qui sont : ["c","d"]
C {% for product in params.products|slice:'b:d' %}
{{ product.name }} - {{ product.price }}
{% endfor %}
Passera en boucle les éléments spécifiés, qui sont : ["b","c","d"]

verbatim

Dans Brevo, les variables sont écrites à l'aide de doubles accolades, comme {{ params.property }}. Lorsque vous incluez des doubles accolades comme {{ ceci }} dans votre email, Brevo les traite comme un élément de template.

Pour afficher {{ }} sous forme de texte brut dans votre email, encapsulez le contenu dans un bloc {% verbatim %} :

Entrée Sortie
{% verbatim %}
{{ Print variable }}
{% endverbatim %}
{{ Print variable }}

autoescape

Par défaut, Brevo échappe tout le contenu variable, y compris HTML et JavaScript. Cela signifie que si votre variable contient du code HTML (par exemple, <h1>Mon titre</h1>), elle sera affichée en texte brut plutôt qu’en HTML.

Pour autoriser le rendu HTML, vous devez désactiver l’échappement automatique à l’aide de la balise {% autoescape off %}. Encapsulez la variable dans ce bloc et fermez-la avec {% endautoescape %} :

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

  Entrée Sortie
Sans la balise autoescape {{ params.my_html }} <h1>Mon titre</h1>
Avec la balise autoescape

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

Mon titre

📖 Ressources complémentaires

 Le langage de template de Brevo est basé sur Pongo2, qui est une réimplémentation de Django en Go (un langage de programmation).

Tags supportés

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

Filtres supportés

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.

Filtres supportés pour les algorithmes de hachage

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.

💡 Bon à savoir
Si vous identifiez un filtre qui n’est pas encore pris en charge, contactez notre équipe d’assistance en créant un ticket depuis votre compte. Si vous n'avez pas encore de compte, vous pouvez cliquer ici pour nous contacter.

🤔 Vous avez des questions ?

Pour toute question, n’hésitez pas à contacter notre service client en créant un ticket à partir de votre compte. Si vous n’avez pas encore de compte, vous pouvez nous contacter ici.

Si vous avez besoin d'aide pour un projet impliquant Brevo, nous pouvons vous mettre en relation avec une agence partenaire Brevo.

💬 Cet article vous a-t-il été utile ?

Utilisateurs qui ont trouvé cela utile : 15 sur 43