Нода «Условие»

Нода «Условие» разветвляет сценарий по данным: ответу клиента, сохранённой переменной, текущей дате или времени. С её помощью бот ведёт разных клиентов разными путями — например, жителей Москвы и регионов или тех, кто выбрал доставку, и тех, кто выбрал самовывоз.

Что делает / Возможности

У ноды два выхода: «Соответствует» и «Не соответствует». В ноде может быть несколько правил — они объединяются логикой «каждое из условий» (И) или «любое из условий» (ИЛИ).

Что можно проверить в правиле:

СлеваЧто сравнивается
Пользовательское полеПеременная сценария — ответ на «Вопрос», поле «Формы», результат «Действия». Выбирается из списка пользовательских полей.
Текущая датаСегодняшняя дата в формате ГГГГ-ММ-ДД, по часовому поясу организации. Дата без года, например 01.10, — в текущем году.
Текущее времяВремя ЧЧ:ММ, по часовому поясу организации.
День неделиСегодняшний день недели по часовому поясу организации. Дни выбираются кнопками: один, несколько, «Будни» или «Выходные».
Дата подпискиДата начала текущего прохода сценария, ГГГГ-ММ-ДД.

Часовой пояс организации по умолчанию — Москва. Его меняют создатель и администратор в профиле или в настройках сценария. Раньше дата, время и день недели считались по UTC: если вы писали время с поправкой (06:00 вместо 09:00 по Москве), исправьте значение.

Справа — значение для сравнения. В нём можно использовать переменные: {{city}}, {{global.min_order}}, {{system.phone}}.

Слева выбирается только пользовательское поле из раздела «Пользовательские поля» конструктора. Если «Вопрос» сохраняет ответ в переменную city, заведите поле с ключом city — тогда его можно будет выбрать в условии. Глобальные и системные переменные можно использовать только справа.

Операторы: равно, не равно, больше, меньше, не меньше, не больше, содержит, не содержит. Подробнее — в статье Операторы сравнения.

День недели

Отметьте дни кнопками «Пн»…«Вс» или нажмите «Будни» / «Выходные». Равно срабатывает, если сегодня один из отмеченных дней, не равно — если ни один. «Позже» и «раньше» сравнивают с одним днём: «позже» «Пт» — суббота и воскресенье.

Сохраняются номера дней: 1 — понедельник, 7 — воскресенье. Если в условии записано название — «суббота», «сб», «выходные», «пн-пт», — бот его тоже поймёт, а редактор предложит пересохранить номерами. Значение, которое не день недели, условие не пропустит: проверка сценария об этом предупредит.

Теги клиента и чата условие не проверяет.

Когда применять

  • Развилка по ответу — разные ответы для разных городов, тарифов или способов доставки.
  • Проверка суммы — бесплатная доставка для заказов от порога.
  • Рабочее время — днём предложить сотрудника, ночью принять заявку. Время сравнивается по часовому поясу организации: «Текущее время» не раньше 09:00 и не позже 18:00.
  • Выходные — «День недели» равно «Сб» и «Вс»: в выходные бот принимает заявку, в будни зовёт сотрудника. День тоже считается по часовому поясу организации.
  • Разбор результата действия — например, статуса HTTP-запроса или поиска в таблице (found / not_found).

Как настроить

  1. Добавьте ноду «Условие»

    Нажмите «Добавить шаг» и выберите «Условие».
  2. Задайте правило

    Выберите, что проверять, оператор и значение. Например: поле city равно «Москва».

  3. При необходимости добавьте ещё правила

    И выберите логику: «Соответствует каждому из условий» или «Соответствует любому из условий».

  4. Разведите выходы

    Протяните стрелку от «Соответствует» к одному шагу, от «Не соответствует» — к другому.

Соедините оба выхода. Если выход не связан, на этой ветке сценарий закончится. Для нескольких вариантов ставьте условия цепочкой — см. Несколько вариантов.

С чем сочетать

Пример

Сценарий доставки: нода «Вопрос» спрашивает город и сохраняет его в city → нода «Условие» проверяет city равно «Москва» → из «Соответствует» уходит Сообщение про курьерскую доставку по Москве, из «Не соответствует» — про доставку в регионы.