Error Workflow и Error Trigger
Когда сценарий падает целиком — несмотря на retry и continue on fail — нужно, чтобы кто-то узнал об этом. Для этого в n8n есть механизм Error Workflow: отдельный сценарий, который автоматически запускается, когда другой сценарий завершился с ошибкой.
Идея
У каждого сценария можно указать, какой другой сценарий запустить, если этот закончится ошибкой. В этом «другом» сценарии стоит специальный триггер — Error Trigger — он принимает на вход информацию о том, что и где пошло не так.
Дальше уже ваше дело, что с этой информацией сделать: написать в Telegram, отправить email, записать в базу, поставить задачу в трекер.
Как настроить
В двух шагах:
Шаг 1. Создайте отдельный сценарий, который будет «обработчиком ошибок». Первым узлом в нём поставьте Error Trigger. Дальше — узлы уведомлений.
Шаг 2. Откройте сценарий, для которого вы хотите получать уведомления о сбоях. В настройках сценария найдите поле Error Workflow (где-то в общих настройках, в зависимости от версии — в Settings, в свойствах workflow, или через выпадающее меню). Выберите сценарий из шага 1.
Готово. Теперь, когда основной сценарий упадёт, n8n автоматически запустит обработчик и передаст ему контекст ошибки.
Что приходит на вход в Error Trigger
Error Trigger получает один item с информацией об ошибке. Точная структура зависит от версии n8n, но обычно там есть:
- название и id «упавшего» сценария;
- название и id execution'а;
- ссылка на execution в интерфейсе n8n;
- сообщение об ошибке;
- название узла, в котором произошёл сбой.
Этого хватает, чтобы быстро сообщить, что и где сломалось, и приложить ссылку, по которой можно зайти и посмотреть детали.
Один обработчик на все сценарии
Удобно создать один общий error workflow и подключить его к десятку рабочих сценариев. Тогда все сбои — в одном месте, и формат уведомлений одинаковый. Если завтра вы решите отправлять не в Slack, а в Telegram — это правка в одном сценарии.
Что включить в уведомление
Минимум:
- что сломалось — имя сценария;
- где — имя узла;
- когда — время;
- что именно произошло — сообщение об ошибке;
- ссылка на execution в интерфейсе n8n, чтобы быстро открыть и посмотреть.
Дополнительно стоит добавить какой-то «приоритет»: упал ли это критичный сценарий с оплатами или второстепенный с подписками на новости — реакция должна быть разной.
Чего не делает Error Workflow
- Он не может «починить» исходный сценарий и перезапустить его автоматически. Это задача отдельного решения (например, повторная постановка задачи в очередь).
- Он запускается даже если упал он сам — поэтому сам error workflow должен быть максимально простым. Не используйте в нём узлы, которые могут упасть.
Тест перед продакшеном
После настройки специально провоцируйте сбой в основном сценарии и убедитесь, что уведомление приходит. Без такой проверки часто оказывается, что в Settings выбран не тот workflow или в обработчике не настроены credentials для Telegram.