Использование логических выражений в сообщениях
Если вы используете несколько логических операторов в одном выражении if
, обязательно заключайте каждую пару условий в скобки — это необходимо для корректного парсинга.
Пример корректного синтаксиса:
<html>
{{if "par1" and ("ads" and ("ads" and "ads"))}} <!--правильно-->
if true
{{else}}
if false
{{end}}
</html>
Пример, который вызовет ошибку:
<html>
{{if "par1" and "ads" and "ads" and "ads"}} <!--неправильно-->
if true
{{else}}
if false
{{end}}
</html>
В сообщениях можно формировать условные блоки, используя данные подписчика, 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}