Перейти к основному содержимому
Altcraft Docs LogoAltcraft Docs Logo
Пользователям iconПользователям
Разработчикам iconРазработчикам
Администраторам iconАдминистраторам
Русский
  • Русский
  • English
Войти
    Документация пользователяС чего начатьFAQТермины
      Обновления платформыarrow
    • v2026.1.76v2025.4.75v2025.4.74v2025.3.73v2025.2.72v2025.1.71v2024.4.70v2024.3.69v2024.2.68.2v2024.1.68
      Хранение и сбор данныхarrow
    • Ресурсы подписокРабота с базами данныхПрофиль подписчикаИмпорт профилей клиентов и обновление данныхИмпорт данных по расписаниюАвтоматизация сбора данных о профилеМассовое обновление профилей клиентовDouble opt-in подпискаСтоп-спискиСвязи между профилямиЭкспорт истории профилейЭкспорт профилейАвтоматическое создание статического сегмента при импортеКак открыть CSV-файлМатчингТипы полей в базе данныхГлобальные контрольные группыМенеджер подписок
      Каналы коммуникацииarrow
      • Email-каналarrow
      • Рекомендации по взаимодействию с ISPНастройка собственного from-доменаНастройка и использование постмастеровБыстрый старт
        Push-каналarrow
        • Mobile Pusharrow
        • Настройка и подключение
            Интеграция приложения с Altcraftarrow
          • Провайдеры: структура push сообщенияОбработка и добавление подпискиРегистрация событий
          Web Pusharrow
        • Предварительные настройки
            Настройка для различных браузеровarrow
          • Apple SafariMozilla ServicesFirebase Cloud Messaging
          Подключение Web Push на сайтПередача данных в платформуМетоды Web Push SDK
            Миграция и перенос подписокarrow
          • Перенос push-подписок из стороннего сервисаКак перенести push-подписки, настроенные для SafariМиграция с OneSignal
      SMS-канал
        Создание рассылки с нуляarrow
      • EmailSMSWeb PushMobile PushWhatsAppViber™Руководство: SMS-рассылка через VK NotifyMAX BotMAX GroupNotifyTelegram BotTelegram Group
      Схема работы каналов коммуникацииРуководство: SMS-рассылка через УТШРуководство: push-рассылка через сервис от "Согласие"
      Сегментацияarrow
    • Статические сегментыДинамические сегментыОбновляемые сегменты
        Условия сегментацииarrow
      • Сегментация по данным профиляСегментация по взаимодействиям с сущностямиСегментация по активности в каналах коммуникацииСегментация по внешним даннымСегментация по внешним SQL-таблицамСегментация по структуре профиля
      Лучшее время отправки (BST)Логические операторы "И" и "ИЛИ"Рекомендации по работе с сегментами
      Шаблоны сообщенийarrow
      • Работа с шаблонами сообщенийarrow
      • Работа в редактореEmail-шаблонSMS-шаблонPush-шаблонMAX-шаблонTelegram-шаблонWhatsApp-шаблонViber™-шаблонNotify-шаблон
        Визуальный редактор для email-шаблонаarrow
      • Интерфейс редактораДобавление элементовЭлементы и их настройкиПользовательские блокиСтили элементаСтруктура элементов
      Блочный редактор для email-шаблонаФрагменты шаблоновИзображения в сообщенияхПерсонализация контента в сообщенияхФормирование таблиц на основе элементов массива
        Переменные и функции Altcraftarrow
      • Использование логических выражений в сообщенияхИспользование циклов в сообщенияхИспользование переменных маркета в сообщенияхИспользование функционала JSONPath
        Динамический контент сообщенийarrow
      • Использование API-контента в сообщенияхИспользование HTML-контента в сообщенияхИспользование JSON-контента в сообщенияхИспользование контента из SQL базы данных в сообщениях
      Импорт и экспорт шаблона сообщенияЭкспорт шаблона из PixcraftИмпорт шаблона из стороннего сервиса
      Рассылкиarrow
    • Календарь рассылокБроадкаст рассылкаРегулярная рассылкаТриггерная рассылкаМультивариантный тест (A/B/n)Тестирование расылокРасписание рассылокРазмещения
      Кампанииarrow
    • Работа с КампаниямиЛокальные контрольные группы (ЛКГ)Ошибка нарушения стратификации при достижении лимитаРасширение аудитории в кампанииРазметка аудитории в кампаниях
      Сценарии автоматизацииarrow
    • Работа со Сценариями автоматизацииУзлы сценарияКлассические сценарии автоматизации маркетингаПриветственный сценарий: пошаговая настройкаАвтоматическое оповещение менеджера через сценарийСценарий брошенной корзины
      Маркетarrow
    • Настройки маркета
        Продуктыarrow
      • Создание продукта вручнуюИмпорт продукта из файлаИмпорт по расписаниюСегменты продуктов и SKUПодготовка YML-файла
      ЗаказыПеременные маркета в шаблонахРуководство: как отправить письмо подтверждения заказа
      Лояльностьarrow
    • Создание и настройка программы лояльностиИнтеграция лояльности с внешними системамиБыстрый стартБазовые кейсы использования программы лояльностиСегменты заказовПромокоды
      Веб-слойarrow
      • Формыarrow
      • Создание формыКонструктор формыОформление формыДействия при активации формыАналитика данныхСвязывание данных канала и формыУсловная постраничная логика в формах и опросахNPS-тестирование
        Пикселиarrow
      • Целевые действия клиентов и скоринг
        Попапыarrow
      • Создание и публикация попапаНастройка попапа в редакторе кодаУправление попапами вручную через скриптАналитика попаповРуководство: попап для подписки на pushБазовые кейсы размещения попапа через Менеджер теговКейс: Создание попапа с виджетом "Колесо фортуны"
        Менеджер теговarrow
      • Настройка и установка Менеджера теговТипы триггеровТипы переменныхСвязывание пикселя и Менеджера тегов
      Отчеты и аналитикаarrow
    • Отчет по каналамОтчёт по трафику
        Сводный отчётarrow
      • Все показатели сводного отчета
      Когортный отчётВремя жизниВоронка конверсииЦелиПрирост аудиторииКарта кликов (Email)Отчет по программам лояльностиОтчёт о возвратахОтчёт о недоставкахОтчет по глобальным контрольным группам
      Интеграцииarrow
    • Синхронизация статических сегментовMAXЯндекс.Аудитории™Аудитории Google AdsFacebook Ads Manager™Область видимости интеграцииWhatsAppViber™Tilda™Yandex AppMetrica™Lpgenerator™VK Реклама™Передаваемые при синхронизации данные
        Интеграция сторонних сервисов с Altcraft через Albatoarrow
      • Подключение Altcraft к AlbatoЗапуск приветственного сценария через AlbatoПередача данных о событииОтправка триггерной рассылкиРегистрация событийИмпорт данных из Google Sheets через AlbatoПередача данных из Altcraft
      Notify
        Захват событийarrow
      • Захват событий AltcraftТипы событий для захватаСтруктуры сообщений захвата событийОтправить JSON-запрос батчемОтправить сообщение в очередь RabbitMQОтправить сообщение в exchange RabbitMQОтправить сообщение в Kafka brokerПредварительное тестирование события
      Настройкиarrow
    • Настройки аккаунтаНастройки атрибутовПоисковые теги: создание и применениеПользовательские ссылкиВиртуальные сендерыПолитики отправки
        Пользователи и разграничение доступаarrow
      • Двухфакторная аутентификация (2FA)
        Подключенияarrow
      • Подключение к Facebook AdsПодключение к Google AdsПодключение к Яндекс.Аудиториям™Подключение к 360dialogПодключение к EdnaПодключение к Devino TelecomПодключение к SMS TrafficПодключение к VK Рекламе™Подключение к MTS OmniChannelПодключение через OAuth2Подключение через Basic AuthenticationПодключение через Token AuthenticationПодключение через Custom AuthenticationПодключение к MAXПодключение к NotifyПодключение к Rapporto
      Журнал аудита
      API-запросы: с чего начатьarrow
    • Импорт и обновление профиляЗапуск триггерной рассылкиОтправка профиля клиента в сценарий
    Архив документацииБиблиотека email-маркетолога
  • Шаблоны сообщений
  • Переменные и функции Altcraft
  • Использование логических выражений в сообщениях

Использование логических выражений в сообщениях

подсказка

Если вы используете несколько логических операторов в одном выражении if, обязательно заключайте каждую пару условий в скобки — это необходимо для корректного парсинга.

Пример корректного синтаксиса:


<html>
{if param1 and (param2 and (param3 and param4))} <!--правильно-->
if true
{else}
if false
{end}
</html>

Пример, который вызовет ошибку:

<html>
{if param1 and param2 and param3 and param4} <!--неправильно-->
if true
{else}
if false
{end}
</html>

В сообщениях можно формировать условные блоки, используя данные подписчика, json данные и прочие переменные.

{if lead.field in json.promo_actions1}

Они расширяют возможности персонификации сообщений, существенно сокращают объём работы.

Например, в сообщении используется подпись, которая меняется от подписчика к подписчику.

Нашим лучшим клиентам скидка 42% или Спецпредложение! Скидка 20% со второй покупки!

Вместо того, чтобы делать разные сообщения, можно использовать два условия:

  1. Сначала проверяется, есть ли у подписчика поле "best_buy_type" и является ли он клиентом нужного магазина. Если нет, то он получает обычное предложение.

  2. Затем проверяется значение в этом поле — совершал ли он хоть раз дорогую покупку.

<!-- Если в профиле подписчика есть поля "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 param1}
if true
{else}
if false
{end}
Комплексное условие

Пример 1:

{if param1 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 param1 equal param2}
if true
{else}
if false
{end}
Не равно
{if param1 not_equal param2}
if true
{else}
if false
{end}
Строка равна (не учитывается регистр)
{if param1 like param2}
if true
{else}
if false
{end}
Строка не равна (не учитывается регистр)
{if param1 not_like param2}
if true
{else}
if false
{end}
Строка содержит (не учитывается регистр)
{if param1 contains param2}
if true
{else}
if false
{end}
Строка не содержит (не учитывается регистр)
{if param1 not_contains param2}
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 param1 in array["par1" "par2"]}
if true
{else}
if false
{end}
Элемент в поле тэгов
{if param1 in lead.TagsField}
if true
{else}
if false
{end}
Элемент не в массиве
{if param1 not_in array["par1" "par2"]}
if true
{else}
if false
{end}
Элемент не в поле тэгов
{if param1 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}
Последнее обновление 25 мар. 2026 г.
Предыдущая страница
Переменные и функции Altcraft
Следующая страница
Использование циклов в сообщениях
  • Примеры использования
    • Условия
    • Циклы
    • Соответствие значения
    • Сравнение чисел и дат
    • Массивы и поля с тегами
    • Даты
© 2015 - 2026 Altcraft. Все права защищены.