Le variabili (note anche come tag di personalizzazione o merge tag) ti consentono di inserire dati personalizzati per ogni destinatario, ad esempio il nome o l'acquisto più recente. I filtri modificano il modo in cui vengono visualizzati questi dati.
Come utilizzare i filtri?
Utilizza i filtri all'interno di doppie parentesi graffe {{ }} con una barra verticale |. Ad esempio:
| Ingresso | Uscita |
| {{ contact.FIRSTNAME|upper }} | EMILIA |
Puoi concatenare più filtri, così che i risultati di un filtro vengano sottoposti al successivo. Ad esempio:
| Ingresso | Uscita |
| {{ contact.FIRSTNAME|title|truncatechars:4 }} | EMIL |
Per inserire una variabile con filtri in un messaggio, puoi:
-
Digitare manualmente la variabile e i filtri, oppure
-
Selezionare una variabile esistente e modificane la sintassi nella scheda Advanced settings (Impostazioni avanzate).
💬 Inserimento di un valore predefinito
default
Inserisce un valore di riserva se una variabile è vuota.
| Ingresso | Uscita |
| Ciao {{ contact.FIRSTNAME|default:'there' }}, | Buongiorno a te, |
🔠 Formato Maiuscolo/minuscolo
capfirst
Scrive con la maiuscola il primo carattere.
| Ingresso | Uscita |
| {{ contact.MESSAGE|capfirst }} | La mia macchina rossa |
title
Scrive con la maiuscola la prima lettera di ogni parola.
| Ingresso | Uscita |
| {{ contact.FULLNAME|title }} | John Doe |
upper
Converte tutti i caratteri in maiuscolo.
| Ingresso | Uscita |
| {{ contact.FULLNAME|upper }} | JOHN DOE |
lower
Converte tutti i caratteri in minuscolo.
| Ingresso | Uscita |
| {{ contact.FULLNAME|lower }} | john doe |
truncatechars
Accorcia una stringa a N caratteri. I valori troncati terminano con i puntini di sospensione (…) inclusi nel conteggio dei caratteri.
| Ingresso | Uscita |
| {{ contact.MANAGER|truncatechars:7 }} | Elisab… |
🔢 Formato dei numeri
floatformat
Arrotonda i valori fino a un numero specificato di decimali.
| Ingresso | Uscita |
| {{ params.total|floatformat:2 }} | 40.32 |
| {{ params.total|floatformat:0 }} | 40 |
integer
Converte un numero in formato stringa o in virgola mobile in un numero intero.
| Ingresso | Uscita |
| {{ 10.578|integer }} | 10 |
| {{ "16.765"|integer }} | 16 |
float
Converte un numero in formato stringa o intero in un numero in virgola mobile.
| Ingresso | Uscita |
| {{ 10|float }} | 10.000000 |
| {{ "16.765"|float }} | 16.765000 |
lang_format
Formatta i numeri secondo una data lingua.
| Ingresso | Uscita |
| {{ 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 |
-
Per forzare 2 cifre decimali, aggiungi
,%.2fdopo il filtro della lingua. - Per il francese, il separatore delle migliaia è uno spazio unificatore.
📅 Formato di data e ora
time_parse
- I nomi di giorno e mese (per esteso e abbreviati) devono essere in inglese.
- L'orario di riferimento è "Monday January 2 15:04:05 -0700 MST 2006" (lunedì 2 gennaio 15:04:05 -0700 MST 2006).
- I valori mancanti sono automaticamente impostati a 0.
- Il fuso orario predefinito è UTC.
- Possono essere utilizzate le parole chiave am/pm.
- I fusi orari possono essere parole chiave (MST, CET, UTC, Asia/Kolkata) o intervalli numerici (+0100, -0100).
Converte una stringa di date in un marcatore temporale standard che può essere utilizzato con altri filtri, come date o date_i18n.
Per utilizzare il formato della data come argomento, scrivi data e ora esattamente così come apparirebbe l'orario di riferimento se fosse il valore.
| Ingresso | Uscita |
| {{ params.MY_DATE|time_parse:"Monday 02 January 2006" }} | Tuesday 11 March 2021 |
Utilizza time_parse_rfc3339 per le stringhe con formattazione RFC3339 senza immettere un formato personalizzato.
date
Converte un marcatore temporale o una data analizzata in un formato specificato. Utilizzalo con una data analizzata tramite time_parse o con l'orario attuale utilizzando time_now.
| Ingresso | Uscita |
| {{ "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" }} | tamperà il giorno e la data correnti nel formato specificato |
| {{ time_now|date:"02/01/2006" }} | tamperà il giorno e la data correnti nel formato specificato |
| {{ time_now|date:"01" }} | Stamperà il mese corrente |
| {{ time_now|date:"02" }} | Stamperà il giorno corrente |
| {{ time_now|date:"2006" }} | Stamperà l'anno corrente |
date_i18n
Converte un riferimento temporale o una data analizzata in un formato specificato, con l'output visualizzato in una lingua specificata. Questo filtro funziona come date, ma devi prima specificare la lingua, seguita dal formato.
Le lingue supportate sono en, fr, it, es, de e pt.
| Ingresso | Uscita |
| {{ "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
Aggiunge anni, mesi e giorni a un riferimento temporale o a una data analizzata. Devi specificare l'orario per aggiungere nell'ordine anno, mese, giorno.
| Ingresso | Uscita |
| {{ time_now|time_add_date:"1,2,3" }} | Stamperà il timbro data/ora dopo aver aggiunto 1 anno, 2 mesi e 3 giorni al timbro data/ora corrente |
| {{ "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 un riferimento temporale o una data analizzata in un fuso orario specificato. Devi specificare il fuso orario nel formato posizione/fuso orario.
| Ingresso | Uscita |
| {{ time_now|time_in_location:"Europe/Berlin" }} | Stamperà il timbro data/ora corrente in 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
Aggiunge ore, minuti e secondi a un riferimento temporale o a una data analizzata. Devi specificare il valore nel formato h, m, s e passare almeno un valore (ora, minuto o secondo) nel filtro.
| Ingresso | Uscita |
| {{ time_now|time_add_duration:"1h2m3s" }} | Stamperà il timbro data/ora dopo aver aggiunto 1 ora, 2 minuti e 3 secondi al valore di tempo nel timbro data/ora corrente |
| {{ time_now|time_add_duration:"30m" }} | Stamperà il timbro data/ora dopo aver aggiunto 30 minuti al valore di tempo |
time_unix
Converte un valore di tempo nel timbro data/ora Unix in secondi.
| Ingresso | Uscita |
| {{ time_now|time_unix }} | Stamperà il timbro data/ora Unix corrente in secondi |
time_unix_nano
Converte un valore di tempo nel timbro data/ora Unix in nanosecondi.
| Ingresso | Uscita |
| {{ time_now|time_unix_nano }} | Stamperà il timbro data/ora Unix corrente in nanosecondi |
🧑💻 Codifica o cifratura dei dati
base64_encode o decode
Codifica o decodifica la base 64:
- base64_decode decodifica una stringa in []byte
- base64_encode codifica []byte in una stringa
| Ingresso | Uscita |
| https://esempio.com/test?nome={{ contact.FIRSTNAME|base64_encode }} | https://example.com/test?name=RW56bw== (invece di https://example.com/test?name=Enzo) |
I filtri base64_encode e decode possono accettare un parametro di codifica facoltativo:
- std: normale codifica base64,
- raw_std: normale codifica base64, senza il carattere di riempimento =,
- url: versione protetta della codifica base64 per gli URL, + e / sono sostituiti rispettivamente da - e _,
- raw_url: una combinazione di raw e url.
aes_128, 192 o 256
Crittografa un valore. Ad esempio, è possibile utilizzare questo filtro per inviare informazioni di contatto crittografate in un URL, ad esempio un indirizzo di posta elettronica o un ID.
La variante AES utilizzata dipende dalla lunghezza della chiave fornita:
| Lunghezza della chiave segreta | Variante AES |
| 16 byte (128 bit) | AES-128 |
| 24 byte (192 bit) | AES-192 |
| 32 byte (256 bit) | AES-256 |
Ad esempio, per la variante AES-256, la variabile deve essere formattata come {{ contact.ATTRIBUTE | aes_256:'key' }}, con la chiave:
- Deve essere costituita da 32 cifre.
- Deve essere generata in modo casuale.
- Deve continuare a persistere sul tuo lato affinché sia possibile decrittografare il valore originale.
Per impostazione predefinita, se non viene aggiunto alcun parametro di codifica, verrà utilizzato base64 std. In caso contrario, supporta anche:
- raw_std: normale codifica base64, senza il carattere di riempimento =,
- url: versione protetta della codifica base64 per gli URL, + e / sono sostituiti rispettivamente da - e _,
- raw_url: una combinazione di raw e url.
Nei nostri esempi seguenti, stiamo crittografando gli indirizzi email dei nostri contatti utilizzando la seguente chiave: e5a34a481274c776856d04119bed8188. Nota che non devi utilizzare la stessa chiave, ma generare invece la tua chiave seguendo le indicazioni sopra fornite.
| Codifica | Ingresso | Uscita |
| Nessuna codifica (codifica base64 std per impostazione predefinita) | {{ contact.EMAIL | aes_256:'e5a34a481274c776856d04119bed8188' }} | Stamperà una stringa casuale che deve essere decrittografata per poter leggere il valore originale |
| Codifica base64 raw_std | {{ contact.EMAIL | aes_256:'e5a34a481274c776856d04119bed8188,raw_std' }} | Stamperà una stringa casuale che deve essere decrittografata per poter leggere il valore originale |
| Codifica base64 url | {{ contact.EMAIL | aes_256:'e5a34a481274c776856d04119bed8188,url' }} | Stamperà una stringa casuale che deve essere decrittografata per poter leggere il valore originale |
| Codifica base64 raw_url | {{ contact.EMAIL | aes_256:'e5a34a481274c776856d04119bed8188,raw_url' }} | Stamperà una stringa casuale che deve essere decrittografata per poter leggere il valore originale |
🔎 Altri filtri
first
Restituisce il primo elemento di una sequenza, un abbinamento o una stringa.
| Ingresso | Richiesta API | Uscita |
| {{ params.array|first }} | "params" : { "array" : [ 1,2,3,4 ] } |
1 |
join
Combina gli elementi di una matrice in una singola stringa usando l'argomento come separatore.
Il separatore tra gli elementi è vuoto per impostazione predefinita. Puoi definirlo con il primo parametro opzionale.
| Ingresso | Uscita |
| {{ [1, 2, 3]|join }} | 123 |
| {{ [1, 2, 3]|join: '|' }} | 1|2|3 |
last
Restituisce l'ultimo elemento di una sequenza, un abbinamento o una stringa.
| Ingresso | Uscita |
| {{ [1, 2, 3, 4]|last }} | 4 |
length
Restituisce il numero di elementi di una sequenza o di un abbinamento, o la lunghezza di una stringa.
| Ingresso | Uscita |
| {{ ['a', 'b', 'c', 'd']|length }} | 4 |
safe
Contrassegna una stringa come elemento che non necessita di ulteriore escape HTML prima dell'output.
| A | Richiesta API | Ingresso | Uscita | |
| "params" :{HtmlTest: "<p>This is my test sentence.</p>"} | {{ params.htmltest|safe }} | This is my test sentence | ||
| B | Attributo di contatto | Segnaposto | Ingresso | Uscita |
| 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 | |
Senza il filtro safe, il tag HTML verrebbe visualizzato come una normale stringa nell'email del destinatario: "<p>This is my test sentence</p>" o "Welcome to <b>Brevo</b>, we're glad to have you here".
slice
Estrae una parte di una sequenza, un abbinamento o una stringa.
Questo filtro può essere configurato per:
| A | Passare a ciclo continuo solo i primi "n" elementi di una matrice. | In entrambi i casi, ricorda che agli elementi di una matrice viene assegnato un numero di posizione unico con "0" come prima posizione (sono "indicizzati a zero"). |
| B | Passare a ciclo continuo gli elementi compresi fra due posizioni specificate ("n" e "m") della matrice. | |
| C | Passare a ciclo continuo gli elementi compresi fra due elementi specificati di una matrice. |
Per ogni esempio, tieni presente che la matrice contiene quanto segue: ["a","b","c","d","e","f","g","h"...].
| Ingresso | Uscita | |
| A |
{% for product in params.products|slice:':5' %} {{ product.name }} - {{ product.price }} {% endfor %} |
Passerà a ciclo continuo le prime 5 posizioni (0-4), che sono: ["a","b","c","d","e"] |
| B |
{% for product in params.products|slice:'2:3' %} {{ product.name }} - {{ product.price }} {% endfor %} |
Passerà a ciclo continuo le posizioni (2-3), che sono: ["c","d"] |
| C |
{% for product in params.products|slice:'b:d' %} {{ product.name }} - {{ product.price }} {% endfor %} |
Passerà a ciclo continuo gli elementi specificati, che sono: ["b","c","d"] |
verbatim
In Brevo, le variabili vengono scritte utilizzando doppie parentesi graffe come {{ params.property }}. Quando includi doppi parentesi graffe come {{ this }} nella tua email, Brevo lo considera un elemento del modello.
Per visualizzare {{ }} come testo semplice nella tua email, racchiudi il contenuto in un blocco {% verbatim %}:
| Ingresso | Uscita |
|---|---|
|
{% verbatim %} {{ Print variable }} {% endverbatim %} |
{{ Print variable }} |
autoescape
Per impostazione predefinita, Brevo esegue l'escape di tutto il contenuto della variabile, inclusi HTML e JavaScript. Ciò significa che se la tua variabile contiene codice HTML (ad esempio, <h1>Il mio titolo</h1>), verrà visualizzata come testo normale anziché come HTML.
Per consentire il rendering HTML, devi disabilitare l'autoescape utilizzando il tag {% endautoescape %}. Inserisci la variabile in questo blocco e chiudilo con {% endautoescape %}:
{% autoescape off %}{{ params.my_html }}{% endautoescape %}
| Ingresso | Uscita | |
|---|---|---|
| Senza il tag autoescape | {{ params.my_html }} | <h1>Il mio titolo</h1> |
| Con il tag autoescape |
{% autoescape off %} {{ params.my_html }} {% endautoescape %} |
Il mio titolo |
📖 Risorse aggiuntive
Il linguaggio per modelli Brevo è basato su Pongo2, che è una reimplementazione di Django in Go (un linguaggio di programmazione).
Tutti i tag supportati
autoescape, comment, cycle, filter, firstof, for, if, ifchanged, now, set, spaceless, templatetag, with.
Tutti i filtri supportati
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.
Tutti i filtri supportati per gli algoritmi 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.
🤔 Domande?
In caso di domande, non esitare a contattare il team dell’assistenza creando un ticket dal tuo account. Se ancora non hai un account, puoi contattarci qui.
Se stai cercando aiuto per un progetto che prevede l'utilizzo di Brevo, possiamo metterti in contatto con l'agenzia partner di Brevo giusta per te.