Ce sunt Expresiile?
O expresie arată ca un șir cu o anumită sintaxă. El va fi «executat» pe server într-un context concret, iar rezultatul execuției va deveni una din două valori booleene: adevărat sau fals (true / false).
De fapt, expresia răspunde la întrebarea: este necesar acum să se trimită acest e-mail concret acestui abonat concret?
Pentru e-mailurile de declanșare astfel de întrebări, de regulă, lipsesc — ele trebuie întotdeauna trimise. Iar pentru e-mailurile de marketing totul este mai complicat. Necesitatea trimiterii depinde de ce anume date are abonatul (de exemplu, un e-mail cu idei ce să dăruiești de 8 martie este mai logic să fie trimis publicului masculin, și nu celui feminin), ce e-mailuri a primit anterior și cum a interacționat cu ele.
Toate aceste reguli complexe (logica de afaceri) pot fi prezentate sub forma unei secvențe de verificări și comparații, a căror execuție ne va conduce la răspunsul «Da» sau «Nu» — deja menționata valoare booleană true / false.
În sistemul nostru astfel de Expresii sunt disponibile în mai multe locuri și pot avea un set diferit de variabile la care se poate apela înăuntrul expresiei.
Sintaxa de bază
Înăuntrul unei expresii se pot folosi diferite tipuri de date:
10— număr întreg3.14— număr fracționartrue— valoare booleană truefalse— valoare booleană falsenull— valoare specială null"Hello"— șirsubscriber.id— accesul la proprietatea unui obiect"World"— un alt mod de a scrie un șir["new", "paid", "shipped"]— array de șiruri
Operatori de comparație
==— egal!=— diferit<— mai mic<=— mai mic sau egal>— mai mare>=— mai mare sau egal
Operatori matematici
+— adunare-— scădere*— înmulțire/— împărțire
Operatori logici
and— ȘI logicor— SAU logicnot— negație logică
De asemenea, se pot folosi paranteze rotunde pentru schimbarea priorității de execuție, așa cum se întâmplă de obicei în formulele matematice: ceea ce este în paranteze se execută mai întâi.
Câteva exemple
subscriber.address_country in ["UA", "PL", "NL"] — va returna true doar în cazul în care țara abonatului este una dintre cele indicate.
(subscriber.birthday_month == now.format("M")) and (now.format("Y") - subscriber.birthday_year == 18) — abonatul are ziua de naștere luna aceasta și împlinește 18 ani.
Variabile disponibile
Setul de variabile disponibile depinde de locul unde se aplică Expresia.
Variabile pentru condiția de intrare în campania de marketing a abonaților dintr-o bază:
time, subscriber, tags, now
Variabile pentru verificarea îndeplinirii unui Eveniment în campania de marketing:
time, subscriber, tags, now, url (doar pentru evenimentul de clic pe un link), url_md5 (doar pentru evenimentul de clic pe un link)
Descrierea variabilelor
- time — număr întreg, ora curentă în formatul Unix timestamp
- subscriber — obiect cu date despre abonat, descrierea detaliată a câmpurilor este indicată pe această pagină
- tags — array de șiruri care conține etichetele abonatului, de exemplu
["tag1", "tag2", "tag3"] - now — obiect special de oră curentă, care are metoda
format. De exemplu,now.format("Y")va returna anul curent sub forma unui șir din patru caractere - url — link HTTP pe care s-a făcut clicul
- url_md5 — șir MD5, adică valoarea MD5 a linkului pe care s-a făcut clicul