Условие (if/or)
Реакция «Условие» — это мощный инструмент для управления потоком диалога (control flow). Она позволяет создавать ветвления в сценарии, направляя пользователя по разным путям в зависимости от выполнения одного или нескольких правил. Проверка может осуществляться на основе данных из контекста, канала коммуникации или тегов пользователя.
Конфигурация
После добавления блока «Условие» в рабочую область сценария, в панели настроек можно задать правила для ветвления.
Каждое правило состоит из трех частей:
Параметр: Имя переменной из контекста (например,
order_totalилиuser_tags).Оператор: Логическое действие для проверки (например,
Равен,Больше,Включает в себя).Значение: Ожидаемое значение для сравнения.
Операторы правил
Заполнен / Не заполнен
Проверяет наличие или отсутствие переменной в контексте. Не требует указания значения.
Заполнен: Правило выполняется, если переменная существует и ее значение неnull.Не заполнен: Правило выполняется, если переменная не существует или ее значениеnull.
Равен / Не равен
Выполняет точное сравнение строковых или числовых значений.
Равен: Правило выполняется, если значение переменной в контексте в точности совпадает с указанным.Не равен: Правило выполняется, если значение не совпадает.
Включает в себя / Не включает в себя
Проверяет наличие или отсутствие элемента в массиве (списке).
Включает в себя: Правило выполняется, если указанное значение присутствует в массиве.Не включает в себя: Правило выполняется, если значение в массиве отсутствует.
Больше / Меньше
Сравнивает числовые значения.
Больше: Правило выполняется, если значение переменной строго больше указанного.Меньше: Правило выполняется, если значение переменной строго меньше указанного.
Важно: Убедитесь, что значение в контексте является числом. Если переменная будет содержать строку (например, "5000"), сравнение может работать некорректно.
Комплексные условия
Вы можете создавать сложные логические цепочки, добавляя несколько правил в один блок «Условие». Для их объединения используются логические операторы:
И (AND): Условие считается выполненным, только если все правила истинны.
ИЛИ (OR): Условие считается выполненным, если хотя бы одно из правил истинно.
Продвинутые сценарии проверки
Реакция «Условие» работает с контекстом текущего пользователя. Для проверки глобальных переменных (доступных всему проекту) используется связка Сниппет + Условие.
Сниппет получает глобальное значение (из
projectStorageили настроек проекта).Сниппет записывает это значение в контекст пользователя (
context.set()).Условие проверяет эту переменную в контексте.
Пример 1: Проверка флага из projectStorage
projectStorageПредставим, что у нас есть флаг maintenance_mode в projectStorage, который включает режим обслуживания для всего проекта.
Шаг 1: Сниппет для переноса флага в контекст.
// snippet: getMaintenanceFlag
asynchronously function snippet(core, context, projectStorage) {
// Получаем значение флага. Если его нет, по умолчанию — false.
const maintenance = await projectStorage.get('maintenance_mode') || false;
// Записываем значение в контекст пользователя.
context.set('is_maintenance', maintenance);
}Шаг 2: Реакция «Условие» для проверки.
После выполнения сниппета, в реакции «Условие» настраиваем правило:
Параметр:
is_maintenanceОператор:
РавенЗначение:
true
Если правило выполняется, можно направить пользователя на ветку с сообщением: «Внимание! На платформе проводятся технические работы».
Пример 2: Проверка переменной из настроек проекта
Допустим, в настройках проекта у нас задана переменная GLOBAL_DISCOUNT_ENABLED со значением true.
Шаг 1: Сниппет для переноса переменной в контекст.
// snippet: getProjectVariable
asynchronously function snippet(core, context) {
// Переменные проекта доступны через метод context.get().
const discountEnabled = context.get('GLOBAL_DISCOUNT_ENABLED');
// Записываем значение в контекст.
context.set('global_discount', discountEnabled);
}Шаг 2: Реакция «Условие» для проверки.
Параметр:
global_discountОператор:
РавенЗначение:
true
Это позволит централизованно включать или отключать логику, связанную с глобальной скидкой, для всех пользователей.
Последнее обновление