Сквозной проект: обработка заявки

Чистые данные: нормализация и валидация

Содержание курса

Валидация обязательных полей узлом IF

После того как Edit Fields привёл значения к нужному виду, нужно ответить на вопрос: а есть ли там вообще что-то полезное? Именно для этого к цепочке подключается узел IF.

IF работает просто: он проверяет заданное условие для каждого item и отправляет его в одну из двух веток — true или false. В контексте валидации удобнее мыслить от обратного: условие описывает проблему, а не норму.

Если условие формулируется как «поле пустое», то:

  • ветка true — данные невалидны, item нужно остановить;
  • ветка false — данные в порядке, обработка продолжается дальше.

Простейшее условие для проверки email выглядит так:

{{ $json.email === '' }}

Но здесь есть ловушка. Если пользователь вообще не заполнил поле, которое в форме помечено как необязательное, n8n может не создать этот ключ в JSON item вовсе. Тогда $json.email равен не пустой строке, а undefined — и условие === '' вернёт false. Невалидный item проскользнёт в ветку обработки, как будто всё нормально.

Надёжное условие закрывает оба случая сразу:

{{ !$json.email || $json.email.trim() === '' }}

!$json.email срабатывает, если ключ отсутствует или равен undefined/null/пустой строке. .trim() === '' добавляет защиту от строки, которая выглядит непустой, но состоит только из пробелов — например, если пользователь случайно нажал пробел и отправил форму.

В интерфейсе n8n условие IF настраивается в разделе Conditions: выбираем тип значения — Expression, и вставляем выражение выше. Можно добавить несколько условий и объединить их через AND/OR — например, проверять сразу имя и email.

Когда условие срабатывает (ветка true), item уходит дальше по этой ветке — туда будет подключён узел остановки. Ветка false при этом продолжает цепочку с чистыми и проверенными данными.