Нода «Условие»
Нода «Условие» разветвляет сценарий по данным: ответу клиента, сохранённой переменной, текущей дате или времени. С её помощью бот ведёт разных клиентов разными путями — например, жителей Москвы и регионов или тех, кто выбрал доставку, и тех, кто выбрал самовывоз.
Что делает / Возможности
У ноды два выхода: «Соответствует» и «Не соответствует». В ноде может быть несколько правил — они объединяются логикой «каждое из условий» (И) или «любое из условий» (ИЛИ).
Что можно проверить в правиле:
| Слева | Что сравнивается |
|---|---|
| Пользовательское поле | Переменная сценария — ответ на «Вопрос», поле «Формы», результат «Действия». Выбирается из списка пользовательских полей. |
| Текущая дата | Сегодняшняя дата в формате ГГГГ-ММ-ДД, по часовому поясу организации. Дата без года, например 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).
Как настроить
Добавьте ноду «Условие»
Нажмите «Добавить шаг» и выберите «Условие».Задайте правило
Выберите, что проверять, оператор и значение. Например: поле
cityравно «Москва».При необходимости добавьте ещё правила
И выберите логику: «Соответствует каждому из условий» или «Соответствует любому из условий».
Разведите выходы
Протяните стрелку от «Соответствует» к одному шагу, от «Не соответствует» — к другому.
Соедините оба выхода. Если выход не связан, на этой ветке сценарий закончится. Для нескольких вариантов ставьте условия цепочкой — см. Несколько вариантов.
С чем сочетать
- Нода «Вопрос» и Нода «Форма» — ставятся перед условием: сначала собрали ответ в переменную, потом разветвили по нему.
- Нода «Сообщение» — ставится после условия: каждая ветка ведёт на своё сообщение.
- Нода «Действия» — её результат (статус, найдено/не найдено) можно проверить условием.
- Кнопки под сообщением — когда ветвление зависит от прямого выбора клиента, кнопки проще условия.
- Случайный выбор — когда ветвление нужно не по правилу, а случайно (A/B-проверка).
Пример
Сценарий доставки: нода «Вопрос» спрашивает город и сохраняет его в city → нода «Условие» проверяет city равно «Москва» → из «Соответствует» уходит Сообщение про курьерскую доставку по Москве, из «Не соответствует» — про доставку в регионы.