Mit Variablen (auch Personalisierungs-Tags oder Merge-Tags genannt) kannst du personalisierte Daten für alle Empfänger:innen einfügen, z. B. den Vornamen oder den letzten Einkauf. Filter ändern die Darstellung dieser Daten.
Wie verwendet man Filter?
Du verwendest Filter innerhalb doppelter geschweifter Klammern {{ }} mit einer Pipe |. Beispiel:
| Eingabe | Ausgabe |
| {{ contact.FIRSTNAME|upper }} | EMILIA |
Du kannst mehrere Filter verketten, sodass die Ausgabe eines Filters an den nächsten weitergegeben wird. Beispiel:
| Eingabe | Ausgabe |
| {{ contact.FIRSTNAME|title|truncatechars:4 }} | EMIL |
Um eine Variable mit Filtern in eine Nachricht einzufügen, kannst du Folgendes tun:
-
Gib die Variable und die Filter manuell ein, oder
-
Wähle eine bestehende Variable aus und bearbeite ihre Syntax auf der Registerkarte Advanced settings (Erweiterte Einstellungen).
💬 Einen Standardwert einfügen
default
Fügt einen Fallback-Wert ein, wenn eine Variable leer ist.
| Eingabe | Ausgabe |
| Hallo {{ contact.FIRSTNAME|default:'there' }}, | Guten Tag lieber Kunde, |
🔠 Groß- und Kleinschreibung
capfirst
Der erste Buchstabe wird groß geschrieben.
| Eingabe | Ausgabe |
| {{ contact.MESSAGE|capfirst }} | Mein rotes Auto |
title
Der erste Buchstabe eines jeden Wortes wird groß geschrieben.
| Eingabe | Ausgabe |
| {{ contact.FULLNAME|title }} | John Doe |
upper
Wandelt alle Buchstaben in Großbuchstaben um.
| Eingabe | Ausgabe |
| {{ contact.FULLNAME|upper }} | JOHN DOE |
lower
Wandelt alle Buchstaben in Kleinbuchstaben um.
| Eingabe | Ausgabe |
| {{ contact.FULLNAME|lower }} | john doe |
truncatechars
Verkürzt eine Zeichenkette auf N Zeichen. Verkürzte Werte enden mit einem Auslassungszeichen (...), das in der Zeichenzählung enthalten ist.
| Eingabe | Ausgabe |
| {{ contact.MANAGER|truncatechars:7 }} | Elisab… |
🔢 Zahlen formatieren
floatformat
Rundet die Werte von Float-Werten auf eine bestimmte Anzahl von Nachkommastellen.
| Eingabe | Ausgabe |
| {{ params.total|floatformat:2 }} | 40.32 |
| {{ params.total|floatformat:0 }} | 40 |
integer
Konvertiert eine Zahl im String- oder Gleitkommaformat in eine Ganzzahl.
| Eingabe | Ausgabe |
| {{ 10.578|integer }} | 10 |
| {{ "16.765"|integer }} | 16 |
float
Konvertiert eine Zahl im String- oder Integer-Format in eine Gleitkommazahl.
| Eingabe | Ausgabe |
| {{ 10|float }} | 10.000000 |
| {{ "16.765"|float }} | 16.765000 |
lang_format
Formatiert Zahlen entsprechend der Sprache.
| Eingabe | Ausgabe |
| {{ 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 |
-
Um 2 Dezimalstellen zu erzwingen, füge
,%.2fnach dem Sprachfilter hinzu. - Im Französischen ist das Tausendertrennzeichen ein geschütztes Leerzeichen.
📅 Datum und Uhrzeit formatieren
time_parse
- Tages- und Monatsnamen (vollständig und abgekürzt) müssen auf Englisch sein.
- Die Referenzzeit ist „Monday January 2 15:04:05 -0700 MST 2006“.
- Fehlende Werte werden auf 0 gesetzt.
- Die Standardzeitzone ist UTC.
- Die Schlüsselwörter am/pm können verwendet werden.
- Zeitzonen können Schlüsselwörter (MST, CET, UTC, Asia/Kolkata) oder numerische Offsets (+0100, -0100) sein.
Konvertiert einen Datumsstring in einen Standard-Zeitstempel, der mit anderen Filtern wie date oder date_i18n verwendet werden kann.
Wenn du dein Datumsformat als Argument übergibst, schreibe das Datum und die Uhrzeit genau so, wie die Referenzzeit aussehen würde, wenn sie der Wert wäre.
| Eingabe | Ausgabe |
| {{ params.MY_DATE|time_parse:"Monday 02 January 2006" }} | Tuesday 11 March 2021 |
Verwende time_parse_rfc3339 für RFC3339-formatierte Strings, ohne ein eigenes Format anzugeben.
date
Konvertiert einen Zeitstempel oder ein geparstes Datum in ein bestimmtes Format. Verwende es mit einem Datum, das mit time_parse geparst wurde, oder mit der aktuellen Zeit mit time_now.
| Eingabe | Ausgabe |
| {{ "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" }} | Druckt den aktuellen Tag und das Datum im angegebenen Format |
| {{ time_now|date:"02/01/2006" }} | Druckt den aktuellen Tag und das Datum im angegebenen Format |
| {{ time_now|date:"01" }} | Zeigt den aktuellen Monat an |
| {{ time_now|date:"02" }} | Druck den aktuellen Tag |
| {{ time_now|date:"2006" }} | Gibt das aktuelle Jahr aus |
date_i18n
Konvertiert einen Zeitstempel oder ein geparstes Datum in ein bestimmtes Format, wobei die Ausgabe in einer bestimmten Sprache angezeigt wird. Dieser Filter funktioniert wie das Datum, aber du musst zuerst die Sprache und dann das Format angeben.
Die unterstützten Sprachen sind en, fr, it, es, de und pt.
| Eingabe | Ausgabe |
| {{ "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
Fügt Jahre, Monate und Tage zu einem Zeitstempel oder geparsten Datum hinzu. Du musst die hinzuzufügende Zeit in der Reihenfolge Jahr, Monat, Tag angeben.
| Eingabe | Ausgabe |
| {{ time_now|time_add_date:"1,2,3" }} | Druckt den Zeitstempel, nachdem 1 Jahr, 2 Monate und 3 Tage zum aktuellen Zeitstempel hinzugefügt wurden |
| {{ "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
Konvertiert einen Zeitstempel oder ein geparstes Datum in eine bestimmte Zeitzone. Du musst die Zeitzone im Format Ort/Zeitzone angeben.
| Eingabe | Ausgabe |
| {{ time_now|time_in_location:"Europe/Berlin" }} | Druckt den aktuellen Zeitstempel 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
Fügt Stunden, Minuten und Sekunden zu einem Zeitstempel oder geparsten Datum hinzu. Du musst den Wert im Format h,m,s angeben und mindestens einen Wert (Stunde, Minute oder Sekunde) im Filter übergeben.
| Eingabe | Ausgabe |
| {{ time_now|time_add_duration:"1h2m3s" }} | Druckt den Zeitstempel, nachdem 1 Stunde, 2 Minuten und 3 Sekunden zum Zeitwert im aktuellen Zeitstempel hinzugefügt wurden |
| {{ time_now|time_add_duration:"30m" }} | Druckt den Zeitstempel, nachdem 30 Minuten zum Zeitwert hinzugefügt wurden |
time_unix
Konvertiert einen Zeitstempel zum Unix Timestamp in Sekunden.
| Eingabe | Ausgabe |
| {{ time_now|time_unix }} | Druckt den aktuellen Unix Timestamp in Sekunden |
time_unix_nano
Konvertiert einen Zeitwert in den Unix Timestamp in Nanosekunden.
| Eingabe | Ausgabe |
| {{ time_now|time_unix_nano }} | Druckt den aktuellen Unix Timestamp in Nanosekunden |
🧑💻 Daten codieren oder verschlüsseln
base64_encode oder decode
Codiert oder decodiert base 64:
- base64_decode decodiert einen String zu einem []Byte
- base64_decode codiert ein Byte zu einem []String
| Eingabe | Ausgabe |
| https://example.com/test?name={{ contact.FIRSTNAME|base64_encode }} | https://example.com/test?name=RW56bw== (instead of https://example.com/test?name=Enzo) |
Die Filter base64_encode und base64_decode können einen optionalen Codierungsparameter verwenden:
- std: normale base64-Codierung,
- raw_std: normale base64-Codierung ohne die Füllzeichen =,
- url: sichere Version der base64-Codierung für URL, + und / werden mit - und _ ersetzt,
- raw_url: eine Kombination aus raw und url.
aes_128, 192, oder 256
Verschlüsselt einen Wert. Sie können diesen Filter verwenden, um verschlüsselte Kontaktinformationen wie beispielsweise eine E-Mail-Adresse oder eine ID in einer URL zu versenden.
Die verwendete AES-Variante hängt von der Länge des bereitgestellten Schlüssels ab:
| Länge des Geheimschlüssels | AES-Variante |
| 16 Byte (128 Bit) | AES-128 |
| 24 Byte (192 Bit) | AES-192 |
| 32 Byte (256 Bit) | AES-256 |
Beispielsweise muss die Variable für die AES-256-Variante als {{ contact.ATTRIBUTE | aes_256:'key' }} formatiert werden, wobei der Schlüssel:
- Aus 32 Zahlen bestehen
- Zufällig generiert werden
- Auf Ihrer Seite fortbestehen, damit der Originalwert entschlüsselt werden kann
Wenn kein Codierungsparameter definiert wird, wird standardmäßig base64 std verwendet. Andernfalls wird Folgendes unterstützt:
- raw_std: normale base64-Codierung ohne die Füllzeichen =,
- url: sichere Version der base64-Codierung für URL, + und / werden mit - und _ ersetzt,
- raw_url: eine Kombination aus raw und url.
In unseren Beispielen unten verschlüsseln wir die E-Mail-Adressen unserer Kontakte mit dem folgenden Schlüssel: e5a34a481274c776856d04119bed8188. Beachte, dass du nicht denselben Schlüssel verwenden und stattdessen deinen eigenen Schlüssel gemäß den oben genannten Anforderungen erstellen solltest.
| Codierung | Eingabe | Ausgabe |
| Keine Codierung (standardmäßig Codierung base64 std) | {{ contact.EMAIL | aes_256:'e5a34a481274c776856d04119bed8188' }} | Druckt eine zufällige Zeichenfolge, die entschlüsselt werden muss, um den Originalwert zu lesen |
| Codierung Base64 raw_std | {{ contact.EMAIL | aes_256:'e5a34a481274c776856d04119bed8188,raw_std' }} | Druckt eine zufällige Zeichenfolge, die entschlüsselt werden muss, um den Originalwert zu lesen |
| Codierung Base64 url | {{ contact.EMAIL | aes_256:'e5a34a481274c776856d04119bed8188,url' }} | Druckt eine zufällige Zeichenfolge, die entschlüsselt werden muss, um den Originalwert zu lesen |
| Codierung Base64 raw_url | {{ contact.EMAIL | aes_256:'e5a34a481274c776856d04119bed8188,raw_url' }} | Druckt eine zufällige Zeichenfolge, die entschlüsselt werden muss, um den Originalwert zu lesen |
🔎 Andere Filter
first
Gibt das erste Element einer Sequenz, eines Mappings oder einer Zeichenkette zurück.
| Eingabe | API-Anfrage | Ausgabe |
| {{ params.array|first }} | "params" : { "array" : [ 1,2,3,4 ] } |
1 |
join
Kombiniert die Elemente in einem Datenfeld zu einem einzigen String, wobei das Argument als Trennzeichen verwendet wird.
Das Trennzeichen zwischen den Elementen ist standardmäßig leer. Du kannst es mit dem optionalen ersten Parameter definieren.
| Eingabe | Ausgabe |
| {{ [1, 2, 3]|join }} | 123 |
| {{ [1, 2, 3]|join: '|' }} | 1|2|3 |
last
Gibt das letzte Element einer Sequenz, eines Mappings oder eines Strings wieder.
| Eingabe | Ausgabe |
| {{ [1, 2, 3, 4]|last }} | 4 |
length
Gibt die Anzahl der Elemente einer Sequenz, eines Mappings oder die Länge eines Strings wieder.
| Eingabe | Ausgabe |
| {{ ['a', 'b', 'c', 'd']|length }} | 4 |
safe
Kennzeichnet eine Zeichenfolge so, dass kein weiteres HTML-Escaping vor der Ausgabe erforderlich ist.
| A | API-Anfrage | Eingabe | Ausgabe | |
| "params" :{HtmlTest: "<p>This is my test sentence.</p>"} | {{ params.htmltest|safe }} | This is my test sentence | ||
| B | Kontaktattribut | Platzhalter | Eingabe | Ausgabe |
| 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 | |
Ohne den Filter "safe" würde das HTML-Tag in der E-Mail des Empfängers als normaler String angezeigt: "<p>This is my test sentence</p>" oder "Welcome to <b>Brevo</b>, we're glad to have you here".
slice
Extrahiert ein Stück aus einer Sequenz, eines Mappings oder eines Strings.
Dieser Filter kann konfiguriert werden, um:
| A | Nur durch die erste Zahl "n" von Elementen in einem Array zu iterieren. | Denken Sie in beiden Fällen daran, dass Elemente in einem Array einer einmaligen Positionsnummer zugewiesen sind, die erste Position ist "0" (sie sind "nullbasiert"). |
| B | Durch Elemente zwischen zwei angegebenen Positionen ("n" und "m") in einem Array zu iterieren. | |
| C | Durch Elemente zwischen zwei angegebenen Elementen in einem Array zu iterieren. |
Denken Sie in jedem Beispiel daran, dass Ihr Array Folgendes enthält: ["a","b","c","d","e","f","g","h"...].
| Eingabe | Ausgabe | |
| A |
{% for product in params.products|slice:':5' %} {{ product.name }} - {{ product.price }} {% endfor %} |
Iteriert über die ersten 5 Positionen (0-4), nämlich: ["a","b","c","d","e"} |
| B |
{% for product in params.products|slice:'2:3' %} {{ product.name }} - {{ product.price }} {% endfor %} |
Iteriert über die Positionen (2-3), nämlich ["c","d"] |
| C |
{% for product in params.products|slice:'b:d' %} {{ product.name }} - {{ product.price }} {% endfor %} |
Iteriert über die angegebenen Elemente, nämlich: ["b","c","d"] |
verbatim
In Brevo werden Variablen mit doppelten geschweiften Klammern wie {{ params.property }} geschrieben. Wenn du doppelte geschweifte Klammern wie {{ this }} in deine E-Mail einfügst, behandelt Brevo sie als Template-Element.
Um {{ }} als reinen Text in deiner E-Mail anzuzeigen, verpacke den Inhalt in einen {% verbatim %}-Block:
| Eingabe | Ausgabe |
|---|---|
|
{% verbatim %} {{ Print variable }} {% endverbatim %} |
{{ Print variable }} |
autoescape
Standardmäßig bricht Brevo alle variablen Inhalte, einschließlich HTML und JavaScript, ab. Das bedeutet, dass, wenn deine Variable HTML enthält (z.B. <h1>Mein Titel</h1>), wird sie als reiner Text angezeigt und nicht als HTML gerendert.
Um die HTML-Wiedergabe zu ermöglichen, musst du das Auto-Escaping mit dem Tag {% autoescape off %} deaktivieren. Schließe die Variable in diesem Block ein und schließe ihn mit {% endautoescape %}:
{% autoescape off %}{{ params.my_html }}{% endautoescape %}
| Eingabe | Ausgabe | |
|---|---|---|
| Ohne das Autoescape-Tag | {{ params.my_html }} | <h1>Mein Titel</h1> |
| Mit dem Autoescape-Tag |
{% autoescape off %} {{ params.my_html }} {% endautoescape %} |
Mein Titel |
📖 Zusätzliche Ressourcen
Die Brevo Template Language basiert auf Pongo2, einer Re-Implementierung von Django in Go (einer Programmiersprache).
Alle unterstützten Tags
autoescape, comment, cycle, filter, firstof, for, if, ifchanged, now, set, spaceless, templatetag, with.
Alle unterstützten Filter
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.
Alle unterstützten Filter für Hash-Funktionen
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.
🤔 Sie haben eine Frage?
Wenden Sie sich bei Fragen an unser Support-Team: Erstellen Sie einfach ein Ticket über Ihr Konto. Wenn Sie noch kein Konto haben, können Sie uns hier kontaktieren.
Wenn Sie Unterstützung bei einem Projekt mit Brevo suchen, können wir Sie mit der richtigen zertifizierten Brevo-Partneragentur verbinden.