урок 4 из 10

Условия, ветвления и циклы

Строить условия с двумя выходами и продуманной судьбой каждого, направлять записи ветвлением с обязательной веткой «иначе», соединять условия через И и ИЛИ с помощью таблицы решений и безопасно устраивать повторы без бесконечных кругов.

8 мин чтения · 4 главы ·5 заданий ·домашняя работа

Условие

Сценарий без условий делает одно и то же с каждой записью. Но почти всегда нужно по-разному: крупный заказ — руководителю, мелкий — менеджеру; заявку без телефона — на проверку. Для этого есть условия.

Условие — блок с вопросом и двумя выходами: «да» и «нет». Запись идёт по одному из них. Вопрос — это сравнение поля со значением:

  • равно — город равен «Москва»;
  • больше, меньше — сумма больше 50 000 (только для чисел — урок 3);
  • содержит — в теме письма есть слово «срочно»;
  • пусто или нет — поле «телефон» пустое.

Главное правило условий: у каждого выхода есть судьба. Если выход «нет» никуда не ведёт, записи по нему просто исчезают — без ошибки, без следа. Иногда это и нужно (отфильтровать спам), но это должно быть решением, а не забывчивостью.

Названия условий пишут вопросом: «Сумма больше 50 000?», «Телефон пустой?». Тогда на схеме видно, какой выход что значит, и не нужно открывать блок, чтобы вспомнить.

Ветвление

Когда путей больше двух, условия не нанизывают одно на другое, а используют ветвление: один блок, одно поле, несколько выходов по значениям.

Ветвление удобно, когда запись нужно направить по типу: тема обращения, город, вид товара, статус заказа. Вместо лестницы из пяти условий «это заказ? нет — это возврат? нет — это…» — один блок с пятью ветками, который читается сразу.

Обязательная часть ветвления — ветка «иначе»: куда идут записи, не подошедшие ни под одно правило. Мир всегда пришлёт то, о чём никто не подумал: новую тему в форме, опечатку в городе, пустое значение. Без ветки «иначе» такие записи исчезают.

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

Несколько условий

Часто решение зависит от нескольких условий сразу: сумма и новизна клиента, город и вид товара. Их соединяют словами И и ИЛИ:

  • И — должны выполниться все: сумма больше 10 000 и клиент новый;
  • ИЛИ — хватит одного: тема «срочно» или сумма больше 100 000.

Когда условий становится три-четыре, в голове они путаются. Помогает таблица решений: выписать все сочетания и для каждого — что делать. Её составляют до сборки, на бумаге или в таблице.

Таблица решений даёт три вещи. Видно, все ли случаи учтены — включая пустые значения. Видно, нет ли противоречий — один случай ведёт в два места. И по ней легко проверить готовый сценарий: прогнать по записи на каждую строку таблицы и убедиться, что каждая пришла куда надо.

Порядок проверки тоже важен: сначала ловят особые случаи (пустые поля, крупные суммы), потом обычные. Иначе обычное правило перехватит запись раньше, чем до неё дойдёт особое.

Повторы и круги

Последняя тема урока — повторы. Многие из них система делает сама: пришло двадцать записей — шаг выполнился двадцать раз (урок 3). Но бывают случаи, когда повтор нужно устроить явно.

Пакеты. Многие сервисы ограничивают, сколько запросов можно отправить за минуту. Если записей тысяча, их обрабатывают порциями: по пятьдесят, с паузой между порциями. Иначе сервис начнёт отказывать, и часть записей не дойдёт.

Ожидание. Иногда между шагами нужна пауза: напомнить клиенту через день после заказа, проверить оплату через час. Системы умеют «подождать» — но долгие ожидания лучше делать отдельным сценарием по расписанию, который находит всех, кому пора напомнить.

Повтор при неудаче. Сервис на минуту недоступен — шаг можно повторить через несколько секунд. Об этом подробнее в уроке об ошибках.

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

Простая защита от кругов и повторной обработки — отметка: после обработки записи ставить в ней «обработано» и в начале сценария пропускать такие записи. Она же спасает от дублей, если сценарий случайно запустится дважды.

Задания урока

Каждое проверяется сразу: ответ сверяется с эталоном, и на неверный вариант приходит разбор.

  1. Если выход «нет» условия никуда не ведёт, система покажет ошибку.средне
  2. Сопоставьте сравнение и пример.средне
  3. Разложите: связка И или ИЛИ.средне
  4. Что даёт таблица решений?средне
  5. Заполните пропуски.средне

Практика и материалы по теме курса

Пройти урок с проверкой заданий Курс «Автоматизация без кода: n8n и сценарии» открыт и бесплатен, прогресс сохраняется.
Открыть курс