Логика потоков
Условия, ветвление и управление потоком данных в n8n
Управление потоком
Заголовок раздела «Управление потоком»n8n предоставляет несколько способов управления потоком выполнения:
IF (Условие)
Заголовок раздела «IF (Условие)»Простое условное ветвление: true или false.
Базовое использование
Заголовок раздела «Базовое использование»| Параметр | Описание |
|---|---|
| Conditions | Одно или несколько условий |
| Combine | AND (все) или OR (любое) |
Типы условий
Заголовок раздела «Типы условий»{{ $json.status }} equals "active"{{ $json.name }} contains "John"{{ $json.email }} matches regex .*@gmail\.com{{ $json.age }} is greater than 18{{ $json.price }} is less than or equal 100{{ $json.count }} equals 0{{ $json.isActive }} is true{{ $json.verified }} is false{{ $json.data }} existsПример: Проверка статуса
Заголовок раздела «Пример: Проверка статуса»Настройка IF:
Condition: {{ $json.statusCode }} equals 200Множественные условия
Заголовок раздела «Множественные условия»Условие 1: {{ $json.status }} equals "active"ANDУсловие 2: {{ $json.age }} is greater than 18Switch (Переключатель)
Заголовок раздела «Switch (Переключатель)»Множественное ветвление по значению.
Режимы работы
Заголовок раздела «Режимы работы»| Режим | Описание |
|---|---|
| Rules | Набор правил с условиями |
| Expression | Выражение, возвращающее номер выхода |
Routing Rules
Заголовок раздела «Routing Rules»Настройка правил:
Rule 1: {{ $json.type }} equals "email" → Output 0Rule 2: {{ $json.type }} equals "sms" → Output 1Rule 3: {{ $json.type }} equals "push" → Output 2Fallback: Output 3Expression Mode
Заголовок раздела «Expression Mode»// Возвращает индекс выхода (0, 1, 2, ...)switch($json.priority) { case 'high': return 0; case 'medium': return 1; default: return 2;}Фильтрация items по условию.
Пример: Только активные пользователи
Заголовок раздела «Пример: Только активные пользователи»// Условие фильтрации{{ $json.status }} equals "active"Результат: Items, не соответствующие условию, отбрасываются.
Remove Duplicates
Заголовок раздела «Remove Duplicates»Удаление дубликатов по полю.
| Параметр | Описание |
|---|---|
| Compare | Поле для сравнения |
| Action | Keep first / Keep last |
Пример:
Compare: {{ $json.email }}Action: Keep First MatchОграничение количества items.
| Параметр | Описание |
|---|---|
| Max Items | Максимальное количество |
| Keep | First / Last items |
Сортировка items.
| Параметр | Описание |
|---|---|
| Sort By | Поле для сортировки |
| Order | Ascending / Descending |
| Type | String / Number / Date |
Пауза в выполнении.
Режимы ожидания
Заголовок раздела «Режимы ожидания»| Режим | Описание |
|---|---|
| After Time Interval | Пауза на время |
| At Specific Time | Продолжить в указанное время |
| On Webhook Call | Ждать webhook |
| On Form Submission | Ждать заполнения формы |
Пример: Rate Limiting
Заголовок раздела «Пример: Rate Limiting»No Operation (NoOp)
Заголовок раздела «No Operation (NoOp)»Нода-заглушка, не выполняющая действий.
Использование:
- Placeholder для будущей логики
- Точка соединения нескольких веток
- Комментарий к workflow
Паттерны ветвления
Заголовок раздела «Паттерны ветвления»Параллельное выполнение
Заголовок раздела «Параллельное выполнение»Подключите несколько нод к одному выходу.
Условное выполнение
Заголовок раздела «Условное выполнение»Fallback паттерн
Заголовок раздела «Fallback паттерн»Лучшие практики
Заголовок раздела «Лучшие практики»-
Ясные имена условий — называйте IF/Switch понятно: “Check Status”, “Route by Type”
-
Минимум вложенности — избегайте глубоких цепочек IF
-
Default ветка — всегда добавляйте fallback в Switch
-
Логирование ветвлений — добавляйте logging для отладки
-
Документируйте логику — используйте Sticky Notes
Следующие шаги
Заголовок раздела «Следующие шаги»- Структура данных — формат данных n8n
- Слияние данных — объединение потоков
- Циклы — итерация по данным