Looping
Циклы — повторное выполнение
Пауза выполнения workflow с возобновлением по времени или событию
Waiting позволяет приостановить выполнение workflow и возобновить его позже — по таймеру или при получении webhook.
| Сценарий | Описание |
|---|---|
| Rate limiting | Задержка между API вызовами |
| Ожидание подтверждения | Пауза до одобрения пользователем |
| Scheduled actions | Отложенное выполнение |
| External events | Ожидание внешнего события |
Нода Wait приостанавливает выполнение workflow.
Возобновление через указанное время:
┌────────────┐ ┌────────────┐ ┌────────────┐│ Trigger │───→│ Wait │───→│ Следующая ││ │ │ (5 минут) │ │ нода │└────────────┘ └────────────┘ └────────────┘Настройки:
Возобновление в конкретное время:
// Примеры:// - Завтра в 9:00// - Через 3 дня// - В конкретную дату и времяНастройки:
Возобновление при получении webhook:
┌────────────┐ ┌────────────┐ ┌────────────┐│ Trigger │───→│ Wait │ ← hook ─│ External ││ │ │ (webhook) │ │ System │└────────────┘ └────────────┘ └────────────┘ │ ↓ ┌────────────┐ │ Следующая │ │ нода │ └────────────┘Настройки:
При работе с API с лимитами:
┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐│ Get Data │───→│ Process │───→│ Wait │───→│ Next Batch ││ │ │ │ │ (1 секунда)│ │ │└────────────┘ └────────────┘ └────────────┘ └────────────┘Отправка письма с ссылками на одобрение/отклонение:
┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐│ Request │───→│ Send Email │───→│ Wait │───→│ Switch ││ │ │ (с ссылками)│ │ (webhook) │ │(approve?) │└────────────┘ └────────────┘ └────────────┘ └────────────┘ │ ┌─────────┴─────────┐ ↓ ↓ ┌──────────┐ ┌──────────┐ │ Approved │ │ Rejected │ └──────────┘ └──────────┘Email содержит:
Новый запрос на отпуск от {{ $json.employee }}
[Одобрить]({{ $node.Wait.resumeUrl }}?action=approve)[Отклонить]({{ $node.Wait.resumeUrl }}?action=reject)Напоминание через определённое время:
┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐│ Create │───→│ Slack │───→│ Wait │───→│ Slack ││ Task │ │ (создано) │ │ (24 часа) │ │(напомнить) │└────────────┘ └────────────┘ └────────────┘ └────────────┘Сбор данных в несколько этапов:
Step 1: Получить email ↓ [Wait for webhook] ← Пользователь заполняет форму ↓Step 2: Получить контактные данные ↓ [Wait for webhook] ← Пользователь продолжает ↓Step 3: ФинализацияПри использовании режима On webhook call, Wait нода предоставляет уникальный URL:
// Доступ к URL в выражениях:{{ $node.Wait.resumeUrl }}
// Полный URL примерно такой:https://n8n.example.com/webhook-waiting/abc123-def456Данные, отправленные на webhook, доступны в следующих нодах:
# Пример вызова:curl -X POST "https://n8n.example.com/webhook-waiting/abc123" \ -H "Content-Type: application/json" \ -d '{"action": "approve", "comment": "OK"}'// В следующей ноде:{{ $json.action }} // "approve"{{ $json.comment }} // "OK"| Ограничение | Описание |
|---|---|
| Максимальное время | Зависит от настроек (по умолчанию 365 дней) |
| Память | Данные хранятся в БД, не в памяти |
| Webhooks | URL валиден только пока execution ожидает |
// В переменных окружения:EXECUTIONS_TIMEOUT=3600 // Общий timeout (секунды)EXECUTIONS_TIMEOUT_MAX=86400 // Максимальный timeoutВ настройках Wait ноды можно установить максимальное время ожидания webhook:
Limit Wait Time: 7 daysЕсли webhook не получен за это время — execution завершается с ошибкой.
// ✅ Хорошо: конкретный лимитWait: 24 hours (max 7 days)
// ❌ Плохо: бесконечное ожиданиеWait: foreverПри отправке approval ссылок:
┌────────────┐ ┌────────────┐ ┌────────────┐│ Wait │───→│ Switch │───→│ Process ││ (webhook) │ │ (timeout?) │ │ │└────────────┘ └─────┬──────┘ └────────────┘ │ Timeout ↓ ┌────────────┐ │ Fallback │ └────────────┘При работе с webhooks добавляйте ID для отслеживания:
// В URL:{{ $node.Wait.resumeUrl }}?request_id={{ $json.id }}| Задача | Лучший выбор |
|---|---|
| Простая задержка | Wait с time interval |
| Задержка между batch | Split In Batches |
| Запуск по расписанию | Schedule Trigger |
| Ожидание события | Wait с webhook |
| Polling внешней системы | Loop + Wait + IF |
Looping
Циклы — повторное выполнение
Triggers
Триггеры — запуск workflows
Error Handling
Обработка ошибок — timeout errors