Co to są Wyrażenia?
Wyrażenie wygląda jak ciąg o określonej składni. Zostanie «wykonane» na serwerze w konkretnym kontekście, a wynikiem wykonania stanie się jedna z dwóch wartości logicznych: prawda lub fałsz (true / false).
Faktycznie wyrażenie odpowiada na pytanie: czy należy teraz wysłać tę konkretną wiadomość temu konkretnemu subskrybentowi?
W przypadku wiadomości wyzwalanych takie pytania z reguły nie występują — zawsze trzeba je wysyłać. Natomiast w przypadku wiadomości marketingowych wszystko jest bardziej skomplikowane. Konieczność wysłania zależy od tego, jakie dokładnie dane ma subskrybent (na przykład wiadomość z pomysłami, co podarować na 8 marca, logiczniej jest wysyłać do męskiej publiczności, a nie do żeńskiej), jakie wiadomości otrzymywał wcześniej i jak z nimi wchodził w interakcję.
Wszystkie te złożone reguły (logikę biznesową) można przedstawić w postaci sekwencji sprawdzeń i porównań, których wykonanie doprowadzi nas do odpowiedzi «Tak» lub «Nie» — wspomnianej już wartości logicznej true / false.
W naszym systemie takie Wyrażenia są dostępne w kilku miejscach i mogą mieć różny zestaw zmiennych, do których można odwoływać się wewnątrz wyrażenia.
Podstawowa składnia
Wewnątrz wyrażenia można używać różnych typów danych:
10— liczba całkowita3.14— liczba ułamkowatrue— wartość logiczna truefalse— wartość logiczna falsenull— wartość specjalna null"Hello"— ciąg znakówsubscriber.id— dostęp do właściwości obiektu"World"— jeszcze jeden sposób zapisu ciągu znaków["new", "paid", "shipped"]— tablica ciągów znaków
Operatory porównania
==— równa się!=— nie równa się<— mniejsze<=— mniejsze lub równe>— większe>=— większe lub równe
Operatory matematyczne
+— dodawanie-— odejmowanie*— mnożenie/— dzielenie
Operatory logiczne
and— logiczne Ior— logiczne LUBnot— logiczna negacja
Można też używać nawiasów okrągłych do zmiany priorytetu wykonania, jak zwykle ma to miejsce w formułach matematycznych: to, co w nawiasach, wykonuje się wcześniej.
Kilka przykładów
subscriber.address_country in ["UA", "PL", "NL"] — zwróci true tylko w tym przypadku, jeśli kraj subskrybenta jest jednym z wymienionych.
(subscriber.birthday_month == now.format("M")) and (now.format("Y") - subscriber.birthday_year == 18) — subskrybent ma urodziny w tym miesiącu i kończy 18 lat.
Dostępne zmienne
Zestaw dostępnych zmiennych zależy od miejsca, w którym stosowane jest Wyrażenie.
Zmienne dla warunku wejścia subskrybentów z bazy do kampanii wysyłki:
time, subscriber, tags, now
Zmienne do sprawdzania wykonania Zdarzenia w kampanii wysyłki:
time, subscriber, tags, now, url (tylko dla zdarzenia kliknięcia w link), url_md5 (tylko dla zdarzenia kliknięcia w link)
Opis zmiennych
- time — liczba całkowita, bieżący czas w formacie Unix timestamp
- subscriber — obiekt z danymi o subskrybencie, szczegółowy opis pól podano na tej stronie
- tags — tablica ciągów znaków zawierająca tagi subskrybenta, na przykład
["tag1", "tag2", "tag3"] - now — specjalny obiekt bieżącego czasu, który ma metodę
format. Na przykładnow.format("Y")zwróci bieżący rok w postaci ciągu czterech znaków - url — link HTTP, w który kliknięto
- url_md5 — ciąg MD5, czyli wartość MD5 dla linku, w który kliknięto