Co jsou Výrazy?
Výraz vypadá jako řetězec určité syntaxe. Bude «vykonán» na serveru v konkrétním kontextu a výsledkem vykonání bude jedna ze dvou booleovských hodnot: pravda nebo nepravda (true / false).
Fakticky výraz odpovídá na otázku: je třeba právě teď odeslat tento konkrétní e-mail tomuto konkrétnímu odběrateli?
U triggerových e-mailů takové otázky zpravidla chybí — ty je vždy třeba odeslat. Ale u marketingových e-mailů je to složitější. Nutnost odeslání závisí na tom, jaké údaje odběratel má (například e-mail s nápady, co darovat k 8. březnu, je logičtější odeslat mužskému publiku a nikoli ženskému), jaké e-maily dříve dostával a jak s nimi interagoval.
Všechna tato složitá pravidla (obchodní logiku) lze podat v podobě posloupnosti kontrol a porovnání, jejichž vykonání nás přivede k odpovědi «Ano» nebo «Ne» — již zmíněné booleovské hodnotě true / false.
V našem systému jsou takové Výrazy dostupné na několika místech a mohou mít různou sadu proměnných, na které lze uvnitř výrazu odkazovat.
Základní syntaxe
Uvnitř výrazu lze používat různé datové typy:
10— celé číslo3.14— desetinné číslotrue— booleovská hodnota truefalse— booleovská hodnota falsenull— speciální hodnota null"Hello"— řetězecsubscriber.id— přístup k vlastnosti objektu"World"— další způsob zápisu řetězce["new", "paid", "shipped"]— pole řetězců
Operátory porovnání
==— rovná se!=— nerovná se<— menší než<=— menší nebo rovno>— větší než>=— větší nebo rovno
Matematické operátory
+— sčítání-— odčítání*— násobení/— dělení
Logické operátory
and— logické Aor— logické NEBOnot— logická negace
Rovněž lze používat kulaté závorky pro změnu priority vykonávání, jak k tomu obvykle dochází v matematických vzorcích: to, co je v závorkách, se vykoná dříve.
Několik příkladů
subscriber.address_country in ["UA", "PL", "NL"] — vrátí true pouze v tom případě, pokud je země odběratele jednou z uvedených.
(subscriber.birthday_month == now.format("M")) and (now.format("Y") - subscriber.birthday_year == 18) — odběratel má tento měsíc narozeniny a bude mu 18 let.
Dostupné proměnné
Sada dostupných proměnných závisí na místě, kde se Výraz používá.
Proměnné pro podmínku vstupu do kampaně rozesílky odběratelů z databáze:
time, subscriber, tags, now
Proměnné pro kontrolu splnění Události v kampani rozesílky:
time, subscriber, tags, now, url (pouze pro událost přechodu na odkaz), url_md5 (pouze pro událost přechodu na odkaz)
Popis proměnných
- time — celé číslo, aktuální čas ve formátu Unix timestamp
- subscriber — objekt s údaji o odběrateli, podrobný popis polí je uveden na této stránce
- tags — pole řetězců obsahující tagy odběratele, například
["tag1", "tag2", "tag3"] - now — speciální objekt aktuálního času, který má metodu
format. Napříkladnow.format("Y")vrátí aktuální rok v podobě řetězce ze čtyř znaků - url — HTTP odkaz, na který byl proveden přechod
- url_md5 — MD5 řetězec, tedy hodnota MD5 pro odkaz, na který byl proveden přechod