Условия и ветвления

Условие — развилка на холсте: флоу проверяет что-то и идёт по пути «да» или по пути «нет». Это то, что превращает набор шагов в логику.

Как это выглядит

Узел «Условие» добавляется через «Добавить узел» → «Условие». У него две исходящие точки: зелёная «да» и красная «нет». К каждой можно подключить свою цепочку шагов.

Флоу «Заявка» с развилкой

Что можно проверять

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

Операторы — по-человечески:

Оператор Проверка
равно / не равно Точное совпадение текста или числа
больше / больше или равно / меньше / меньше или равно Числа и даты
содержит Вхождение подстроки: form.email содержит @
совпадает с шаблоном Регулярное выражение, для строгих проверок формата
пароль совпадает Сверка введённого пароля с хэшем из CMS (для входа участников)
токен верный Проверка одноразовой ссылки из письма (сброс пароля, подтверждение)

Три тонкости:

  • В значениях для «пароль совпадает» и «токен верный» можно подставлять данные ({{ results.… }}), остальные операторы сравнивают значение буквально.
  • В проверках доступны и cookie посетителя — cookies.имя. На этой проверке построен режим «Только для участников» (он включается на узле «Начало» и не требует ручных условий).
  • Если проверка сломалась (опечатка в имени поля), условие считается несойденным — флоу пойдёт по «нет». Это безопасный запасной вариант.

Пример из флоу «Заявка» (см. кадр выше): одна строка form.email — содержит — @. Заполнил посетитель почту — идём писать письмо и показывать «Спасибо»; оставил мусор — вежливо возвращаем на форму.

Несколько готовых рецептов. Каждый — одна-две строки в панели условия; выражение пишется целиком: поле, оператор, значение.

Почта похожа на почту — письмо вам, иначе возврат на форму:

form.email  содержит  @

Согласие на обработку — принять заявку, иначе показать страницу «подтвердите согласие»:

form.agree  равно  да

Промокод из списка — скидка в письме, иначе обычная цена. Несколько допустимых значений — несколько строк, объединённых переключателем «или»:

form.promo  равно  BLACKFRIDAY
form.promo  равно  SALE30

Только совершеннолетние — обычный путь, иначе отказ:

form.age  больше или равно  18

Корпоративная почта — заявка в отдел продаж, иначе общий поток. Регулярное выражение отсекает популярные бесплатные домены:

form.email  совпадает с шаблоном  .*@(?!gmail|yandex|mail)\..+

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

Попробовать вживую можно на демо-сайте: primer.dynapi.ru/contacts — отправьте форму с пустым полем почты, и условие вернёт вас обратно; с заполненной — получите письмо-подтверждение и страницу «Спасибо».

Ветка «нет» необязательна

Если у условия подключён только путь «да», то при несошедшемся условии флоу просто завершится (посетитель останется на той же странице). Ничего дорисовывать ради симметрии не нужно.

Частый вопрос: а если в ветках по несколько шагов?

Соединяйте шаги в цепочку внутри ветки — «да» может привести к письму, за ним к странице «Спасибо», а «нет» — сразу к редиректу. Длина веток не ограничена; внутри ветки тоже можно поставить ещё одно условие и получить третий уровень развилки.

Зациклить флоу (связь назад к более раннему узлу) платформа не даст — сохранение отклонится с ошибкой.


Следующая статья: Маршруты: как посетитель попадает во флоу