Использование логических выражений в сообщениях
В сообщениях можно формировать условные блоки, используя данные подписчика, json данные и прочие переменные.
{if lead.field in json.promo_actions1}
Они расширяют возможности персонификации сообщений, существенно сокращают объём работы.
Например, в сообщении используется подпись, которая меняется от подписчика к подписчику.
Нашим лучшим клиентам скидка 42%
или Спецпредложение! Скидка 20% со второй покупки
!
Вместо того, чтобы делать разные сообщения, можно использовать два условия:
-
Сначала проверяется, есть ли у подписчика поле
"best_buy_type"
и является ли он клиентом нужного магазина. Если нет, то он получает обычное предложение. -
Затем проверяется значение в этом поле — совершал ли он хоть раз дорогую покупку.
<!-- Если в профиле подписчика есть поля "shop_name" и "best_buy_type" -->
{if lead.shop_name and lead.best_buy_type}
{if lead.shop_name equal "my_shop"}
<!-- Если подписчик покупал "premium" товары -->
{if lead.best_buy_type contains "premium"}
<p>Нашим лучшим клиентам скидка 42%.</p>
<!-- Если он покупал что-то другое -->
{else}
<p>Спецпредложение! Скидка 20% со второй покупки!</p>
{end}
<!-- Если подписчик является клиентом другого магазина-->
{else}
<p>Спецпредложение! Скидка 20% со второй покупки!</p>
{end}
<!-- На случай, когда поля в профиле не оказывется -->
{else}
<p>Спецпредложение! Скидка 20% со второй покупки!</p>
{end}
Примеры использования
Условия
Простое условие
{if "par1"}
if true
{else}
if false
{end}
Комплексное условие
Пример 1:
{if "par1" in array["par1" "par2"] and ( 5 equal length("par 3") or false )}
if true
{else}
if false
{end}
Пример 2 с apicontent
:
{if apicontent.field_1 not_equal apicontent.field_2 and ( apicontent.field_1 or apicontent.field_2 )}
if true
{else}
if false
{end}
Пример 3:
{if crypt("md5" lead._fname "salt") like "123b003aa39d110d1333b37af9889e10" and crypt("base58" lead.lottery_id) like json.crypted_winner}
if true
{else}
if false
{end}
Пример 4:
{if iseven(lead.count) and iseven(lead.count2) equal false}
if true
{else}
if false
{end}
Проверка наличия поля и отмена отправки, если поля нет
{if lead.some_field}
some_field не пустое
{else}
{cancel}
{end}
Циклы
Простой цикл
{for array[1 "2" 3.3]}
{.}
{else}
if empty array
{end}
Соответствие значения
Равно
{if "par1" equal "par2"}
if true
{else}
if false
{end}
Не равно
{if "par1" not_equal "par2"}
if true
{else}
if false
{end}
Строка равна (не учитывается регистр)
{if "par1" like "par2"}
if true
{else}
if false
{end}
Строка не равна (не учитывается регистр)
{if "par1" not_like "par2"}
if true
{else}
if false
{end}
Строка содержит (не учитывается регистр)
{if "par1" contains "par2"}
if true
{else}
if false
{end}
Строка не содержит (не учитывается регистр)
{if "par1" not_contains "par2"}
if true
{else}
if false
{end}
Сравнение чисел и дат
Больше числа/даты
{if 0 gt 1}
if true
{else}
if false
{end}
Больше или равно числа/даты
{if 0 gte 1}
if true
{else}
if false
{end}
Меньше числа/даты
{if 0 lt 1}
if true
{else}
if false
{end}
Меньше или равно числа/даты
{if 0 lte 1}
if true
{else}
if false
{end}
Массивы и поля с тегами
Элемент в массиве
{if "par1" in array["par1" "par2"]}
if true
{else}
if false
{end}
Элемент в поле тэгов
{if "tag1" in lead.TagsField}
if true
{else}
if false
{end}
Элемент не в массиве
{if "par1" not_in array["par1" "par2"]}
if true
{else}
if false
{end}
Элемент не в поле тэгов
{if "tag1" not_in lead.TagsField}
if true
{else}
if false
{end}
Все элементы первого массива
{if array["par1" "par2"] all_in array["par1" "par2"]}
if true
{else}
if false
{end}
Не все элементы первого массива
{if array["par1" "par2"] not_all_in array["par1" "par2"]}
if true
{else}
if false
{end}
Хотя бы одно совпадение в массивах
{if array["par1" "par2"] any_of array["par1" "par2"]}
if true
{else}
if false
{end}
Нет совпадений в массивах
{if array["par1" "par2"] not_any_of array["par1" "par2"]}
if true
{else}
if false
{end}
Даты
Равен дню
{if "2006-01-01" day_equal "1"}
if true
{else}
if false
{end}
Равен месяцу
{if "2006-01-01" month_equal "1"}
if true
{else}
if false
{end}
Равен году
{if "2006-01-01" year_equal "2006"}
if true
{else}
if false
{end}
Равен месяцу и году
{if "2006-01-01" yearmonth_equal "2006-01"}
if true
{else}
if false
{end}