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
Funkcje
rand(from, to)— przyjmuje dwa argumenty liczbowe: from i to. Zwraca losową liczbę całkowitą z zakresu od pierwszego argumentu do drugiego. Może być używana do wywoływania wyrażenia tylko dla określonego procentu przypadków
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.
rand(1, 100) > 25 — zwróci true w 75% przypadków
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: base, time, subscriber, tags, now
Zmienne do sprawdzania wykonania Zdarzenia w kampanii wysyłki: base, time, subscriber, tags, now, url (tylko dla zdarzenia kliknięcia w link), url_md5 (tylko dla zdarzenia kliknięcia w link)
Zmienne do sprawdzania wykonania Zdarzenia w Bazach subskrybentów: base, time, subscriber, tags, now
Opis zmiennych
- base — obiekt z danymi bazy subskrybenta, szczegółowy opis pól znajduje się na tej stronie
- 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