Що таке Вирази?
Вираз виглядає як рядок певного синтаксису. Він буде «виконаний» на сервері в конкретному контексті, а результатом виконання стане одне з двох булевих значень: істина або хиба (true / false).
Фактично, вираз відповідає на запитання: чи потрібно зараз надсилати цей конкретний лист цьому конкретному підписнику?
Для тригерних листів такі запитання, як правило, відсутні — їх завжди потрібно надсилати. А от для маркетингових листів усе складніше. Необхідність надсилання залежить від того, які саме дані є у підписника (наприклад, лист з ідеями, що подарувати на 8 березня, логічніше надсилати чоловічій аудиторії, а не жіночій), які листи він отримував раніше та як із ними взаємодіяв.
Усі ці складні правила (бізнес-логіку) можна подати у вигляді послідовності перевірок і порівнянь, виконання яких і приведе нас до відповіді «Так» або «Ні» — уже згаданого булевого значення true / false.
У нашій системі такі Вирази доступні в кількох місцях і можуть мати різний набір змінних, до яких можна звертатися всередині виразу.
Базовий синтаксис
Усередині виразу можна використовувати різні типи даних:
10— ціле число3.14— дробове числоtrue— булеве значення truefalse— булеве значення falsenull— спеціальне значення null"Hello"— рядокsubscriber.id— доступ до властивості об’єкта"World"— ще один спосіб запису рядка["new", "paid", "shipped"]— масив рядків
Оператори порівняння
==— дорівнює!=— не дорівнює<— менше<=— менше або дорівнює>— більше>=— більше або дорівнює
Математичні оператори
+— додавання-— віднімання*— множення/— ділення
Логічні оператори
AND— логічне ІOR— логічне АБОNOT— логічне заперечення
Також можна використовувати круглі дужки для зміни пріоритету виконання, як це зазвичай відбувається в математичних формулах: те, що в дужках, виконується раніше.
Кілька прикладів
subscriber.address_country in ["UA", "PL", "NL"] — поверне true лише в тому випадку, якщо країна підписника є однією з указаних.
(subscriber.birthday_month == now.format("M")) AND (now.format("Y") - subscriber.birthday_year == 18) — у підписника день народження цього місяця, і йому виповнюється 18 років.
Доступні змінні
Набір доступних змінних залежить від місця, де застосовується Вираз.
Змінні для умови входу до кампанії розсилки підписників із бази:
time, subscriber, tags, now
Змінні для перевірки виконання Події в кампанії розсилки:
time, subscriber, tags, now, url (лише для події переходу за посиланням), url_md5 (лише для події переходу за посиланням)
Опис змінних
- time — ціле число, поточний час у форматі Unix timestamp
- subscriber — об’єкт із даними про підписника, детальний опис полів наведено на цій сторінці
- tags — масив рядків, що містить теги підписника, наприклад
["tag1", "tag2", "tag3"] - now — спеціальний об’єкт поточного часу, який має метод
format. Наприклад,now.format("Y")поверне поточний рік у вигляді рядка з чотирьох символів - url — HTTP-посилання, за яким було здійснено перехід
- url_md5 — MD5-рядок, тобто значення MD5 для посилання, за яким було здійснено перехід