Перейти к содержанию

Error Workflow в n8n: Telegram-алерт с severity, дедупликацией и runbook

Обновлено: 2026-05-30

AI summary: AI-friendly Problem/Solution-мануал: как настроить Error Workflow в n8n, чтобы Telegram получал полезный алерт с workflow name, execution_id, error node, severity, dedupe key и ссылкой на runbook, а не поток одинаковых сообщений.
Шаблон для внедрения

Импортируйте workflow, подключите Telegram credential и назначьте его Error Workflow для production-сценариев.

Проблема: failed execution в n8n часто замечают только тогда, когда менеджер сообщает, что лид не попал в CRM, счёт не обновился или клиент не получил письмо. Логи есть, но команда не видит их в рабочем канале.

Решение: отдельный Error Workflow с Telegram-алертом, severity, dedupe key и ссылкой на runbook. Это не “прислать красное сообщение”, а минимальная система инцидентов для автоматизации продаж, CRM и платежных workflow.

Схема Error Workflow в n8n с Telegram alert, severity и дедупликацией
Хороший алерт короткий, дедуплицированный и ведёт прямо к execution и runbook.

Проблема: почему failed execution в n8n теряется без Error Workflow

Вручную проверять executions невозможно: ошибка может случиться ночью, в выходной или после обновления credential. Если workflow связан с оплатами, заявками или SLA поддержки, “увидим завтра” превращается в потерянные деньги. Error Workflow в n8n позволяет централизовать реакцию на сбой и не добавлять Telegram-ноду в каждый сценарий отдельно.

Но алерты без severity быстро превращаются в шум. Команда должна отличать временный timeout от сломанного OAuth, а повторяющиеся 429 не должны засыпать чат сотней одинаковых сообщений.

Архитектура Error Workflow для Telegram-алертов

НодаРольЧто проверить
Error TriggerПолучает данные failed executionWorkflow назначен как Error Workflow
Classify severityСобирает severity и dedupe keyПравила для 401/403/429/timeout
Check dedupeПодавляет повтор одинаковых ошибокTTL, unique key, reset после recovery
Send Telegram alertОтправляет понятный алертchat_id, parse mode, лимит длины
Incident logПишет событие в Notion/Jira/CRMНе хранить токены и полный stack trace

Контракт данных Error Trigger

Error Trigger отдаёт контекст выполнения: workflow, node, execution URL и сообщение ошибки. Для теста можно использовать такой payload через отдельный test webhook или pin data.

{
  "execution": { "id": "84721", "url": "https://n8n.example.com/execution/84721" },
  "workflow": { "id": "crm-sync", "name": "CRM sync from webhook" },
  "node": { "name": "Update CRM deal", "type": "n8n-nodes-base.httpRequest" },
  "error": { "message": "429 Too Many Requests", "stack": "NodeApiError: rate limit" },
  "lastNodeExecuted": "Update CRM deal",
  "mode": "trigger"
}

Code Node: severity, dedupe key и короткое сообщение

Code Node ниже делает алерт полезным: классифицирует severity, нормализует похожие ошибки в один dedupe key и собирает короткий текст для Telegram.

const e = $json;
const workflow = e.workflow?.name ?? 'Unknown workflow';
const executionId = e.execution?.id ?? 'unknown';
const node = e.node?.name ?? e.lastNodeExecuted ?? 'unknown node';
const message = String(e.error?.message ?? 'Unknown error');

let severity = 'warning';
if (/401|403|auth|credential/i.test(message)) severity = 'critical';
if (/payment|invoice|production|crm/i.test(workflow + ' ' + message)) severity = 'critical';
if (/429|timeout|ETIMEDOUT|ECONNRESET/i.test(message)) severity = 'warning';

const dedupeKey = `n8n-error:${workflow}:${node}:${message.replace(/\d+/g, '#').slice(0, 120)}`;
const runbookUrl = `https://nodbot.ru/runbooks/n8n-error-workflow/#${encodeURIComponent(workflow.toLowerCase().replace(/\s+/g, '-'))}`;
const text = [
  `🚨 n8n ${severity.toUpperCase()}`,
  `Workflow: ${workflow}`,
  `Node: ${node}`,
  `Execution: ${executionId}`,
  `Error: ${message.slice(0, 500)}`,
  `Runbook: ${runbookUrl}`
].join('
');

return [{ json: { severity, dedupe_key: dedupeKey, telegram_text: text, execution_url: e.execution?.url, runbook_url: runbookUrl } }];
Почему нужен dedupe key

Если внешний API отвечает 429 десять минут подряд, команда должна получить один инцидент с обновлением, а не сотню сообщений. Dedupe key можно хранить в Postgres, Redis или Google Sheets, но для production лучше durable storage.

Готовый workflow JSON: скачать и импортировать

Полный workflow JSON доступен для импорта. Внутри оставлены placeholder credentials для Telegram и storage-ноды.

{
  "name": "Nodbot - n8n Error Workflow Telegram alert",
  "nodes": [
    { "name": "Error Trigger", "type": "n8n-nodes-base.errorTrigger", "purpose": "Получить failed execution" },
    { "name": "Classify severity", "type": "n8n-nodes-base.code", "purpose": "Собрать severity, dedupe_key и runbook URL" },
    { "name": "Check dedupe", "type": "n8n-nodes-base.postgres", "purpose": "Не слать одинаковый алерт каждую минуту" },
    { "name": "Send Telegram alert", "type": "n8n-nodes-base.telegram", "purpose": "Отправить короткий диагностический алерт" },
    { "name": "Create incident comment", "type": "n8n-nodes-base.httpRequest", "purpose": "Опционально записать событие в CRM/Notion/Jira" }
  ],
  "connections": "Error Trigger → Classify severity → Check dedupe → Telegram → Incident log"
}

Пошаговая настройка Error Workflow в n8n

  1. Создайте Telegram bot и добавьте его в рабочий чат инцидентов.
  2. Импортируйте workflow JSON и замените Telegram credential.
  3. Настройте Postgres/Redis dedupe storage с TTL.
  4. Назначьте этот workflow как Error Workflow для production-сценариев n8n.
  5. Создайте runbook: кто отвечает, что проверить и как откатить изменение.

Тесты алертов, runbook и anti-spam

curl -X POST "https://YOUR-N8N-DOMAIN/webhook/test-error-workflow"   -H "Content-Type: application/json"   --data @error-workflow-telegram-alert-payload.json

Дополнительно принудительно сломайте тестовый workflow через Stop And Error node. В Telegram должны прийти workflow name, node, execution_id, severity и ссылка на runbook.

Production-риски алертинга

  • Один общий чат для всего. Critical-ошибки тонут в информационных уведомлениях.
  • Нет ссылки на execution. Инженер тратит время на поиск нужного запуска.
  • Stack trace целиком в Telegram. Можно случайно раскрыть токены и персональные данные.
  • Нет dedupe. Один сбой внешнего API создаёт лавину сообщений.
  • Error Workflow не назначен. Шаблон есть, но production-сценарии его не используют.

Полезные ссылки и документация

Смотрите также: Retry и DLQ для HTTP Request, Проверка подписи webhook, ENV-переменные n8n. Официальная документация: n8n error handling, Error Trigger node, Telegram Bot API.

Пример Telegram алерта из Error Workflow n8n

Критерии готовности

  1. Любой failed production workflow отправляет диагностический алерт.
  2. В сообщении есть execution URL, workflow name, node и короткая ошибка.
  3. Повторяющиеся ошибки дедуплицируются.
  4. Critical-ошибки отделены от warning.
  5. У каждого critical-сценария есть runbook и ответственный.
Нужно, чтобы n8n перестал падать незаметно?

Nodbot настроит Error Workflow, Telegram/Jira алерты, retry, DLQ и runbook-и для ваших production-автоматизаций.

Настроить мониторинг