Bedingte Darstellung von Variablen in Nachrichten und Kampagnen
Willkommen beim Leitfaden zur Template-Engine. Dieses Dokument soll Ihnen helfen, die Verwendung unserer Template-Engine zur dynamischen Erstellung von Inhalten zu verstehen. Die Template-Engine unterstützt verschiedene bedingte Anweisungen und Schleifen, mit denen Sie Ihre Vorlagen effektiv anpassen können.
Wo kann man das einsetzen?
In Flow-Meldungen:

Unter „Kampagnen/Vorlagen“:

Syntax
Derzeit gibt es zwei Möglichkeiten, das bedingte Rendering zu nutzen:
If/Else-Rendering
For-Schleife / Darstellung einer Liste
If/Else-Rendering
Die Syntax dafür sieht folgendermaßen aus:
#{{if contact.firstname contains 'dog' then 'Hundeliebhaber' else 'Katzenliebhaber'}}Die Struktur würde also wie folgt aussehen:wenn <Variable> <Bedingung>, dann '<Text>', sonst '<Text>'
Verschiedene Arten von Bedingungen:
enthält:
Beispiel:#{{if contact.firstname contains 'dog' then 'Hundeliebhaber' else 'Katzenliebhaber'}}
isTrue:
Beispiel:#{{if contact.dog isTrue then 'Hundeliebhaber' else 'Katzenliebhaber'}}
leerz. B.
Beispiel:#{{if apiPayload.food isEmpty then 'Kein Essen' else 'Noch Essen'}}
ist gleich:
Beispiel:#{{if contact.pet equals 'dog' then 'HUND' else 'KATZE'}}
For-Schleife / Darstellung einer Liste
Hier sieht die Syntax wie folgt aus:
#{{for item in contact.properties.items}}
<!-- Inhalt, der für jedes Element wiederholt werden soll -->
#{{/each}}Hier könnte ich beispielsweise auch die obige if/else-Anweisung innerhalb der For-Schleife kombinieren:
#{{for item in contact.properties.items}}
#{{wenn der Begriff „Hund“ enthält, dann „Hundeliebhaber“, sonst „Katzenliebhaber“}}
#{{/each}}Auf Variablen zugreifen
Beim Festlegen von Variablen über das Dropdown-Menü in Kampagnen:

Hier sehen Sie, auf welche Eigenschaften Sie genau zugreifen können.
In den „normalen Nachrichten“ eines Flows werden sie angezeigt, wenn du „@“ in das Textfeld eingibst:

Beispiele
Hier sind einige Beispiele und ihre Ergebnisse, damit du dir ein Bild davon machen kannst:
Beispiel 1
TEXT:
#{{for item in contact.properties.items}}
#{{item.quantity}} x #{{item.price}}
#{{/each}}WANN:
contact.properties.items => [{Anzahl:2, Preis: "50 €"}]
AUSGABE:
2 x 50 €
Beispiel 2
TEXT:
#{{wenn der Begriff „Hund“ enthält, dann „Hundeliebhaber“, sonst „Katzenliebhaber“}}WANN:
Element => „Katzen“
AUSGABE:
KatzenliebhaberBeispiel 3
Du kannst auch verschachtelte bzw. mehrere if/else-Anweisungen verwenden:
#{{if contact.isActive isTrue then "Aktiv" else #{{if contact.firstname contains 'cat' then 'Katzenliebhaber' else 'Inaktiv'}}}}