Перейти к содержимому

Логика потоков

Условия, ветвление и управление потоком данных в n8n

n8n предоставляет несколько способов управления потоком выполнения:

Простое условное ветвление: true или false.

ПараметрОписание
ConditionsОдно или несколько условий
CombineAND (все) или OR (любое)
{{ $json.status }} equals "active"
{{ $json.name }} contains "John"
{{ $json.email }} matches regex .*@gmail\.com

Настройка IF:

Condition: {{ $json.statusCode }} equals 200
Условие 1: {{ $json.status }} equals "active"
AND
Условие 2: {{ $json.age }} is greater than 18

Множественное ветвление по значению.

РежимОписание
RulesНабор правил с условиями
ExpressionВыражение, возвращающее номер выхода

Настройка правил:

Rule 1: {{ $json.type }} equals "email" → Output 0
Rule 2: {{ $json.type }} equals "sms" → Output 1
Rule 3: {{ $json.type }} equals "push" → Output 2
Fallback: Output 3
// Возвращает индекс выхода (0, 1, 2, ...)
switch($json.priority) {
case 'high': return 0;
case 'medium': return 1;
default: return 2;
}

Фильтрация items по условию.

// Условие фильтрации
{{ $json.status }} equals "active"

Результат: Items, не соответствующие условию, отбрасываются.

Удаление дубликатов по полю.

ПараметрОписание
CompareПоле для сравнения
ActionKeep first / Keep last

Пример:

Compare: {{ $json.email }}
Action: Keep First Match

Ограничение количества items.

ПараметрОписание
Max ItemsМаксимальное количество
KeepFirst / Last items

Сортировка items.

ПараметрОписание
Sort ByПоле для сортировки
OrderAscending / Descending
TypeString / Number / Date

Пауза в выполнении.

РежимОписание
After Time IntervalПауза на время
At Specific TimeПродолжить в указанное время
On Webhook CallЖдать webhook
On Form SubmissionЖдать заполнения формы

Нода-заглушка, не выполняющая действий.

Использование:

  • Placeholder для будущей логики
  • Точка соединения нескольких веток
  • Комментарий к workflow

Подключите несколько нод к одному выходу.

  1. Ясные имена условий — называйте IF/Switch понятно: “Check Status”, “Route by Type”

  2. Минимум вложенности — избегайте глубоких цепочек IF

  3. Default ветка — всегда добавляйте fallback в Switch

  4. Логирование ветвлений — добавляйте logging для отладки

  5. Документируйте логику — используйте Sticky Notes