n8n Error Workflow: Telegram Alert When a Workflow Fails
push.tgn8n workflows fail quietly: an expired credential, an API change, a timeout at 3 a.m. An error workflow runs whenever another workflow fails, and one HTTP Request node can send the details to Telegram. Checked against the n8n docs for error handling and the HTTP Request node (October 2026).
Step 1: get your endpoint (30 seconds)
Open @trafficRobot in Telegram and press Start. You get an address like k3x9q@push.tg. Your endpoint is the part before the @: https://push.tg/k3x9q. Every example below uses k3x9q, so swap in your own key.
There's no bot to create, no chat_id to look up and no token to keep safe. Add @trafficRobot to a group and the group gets its own address, so the whole team sees the alerts.
Step 2: build the error workflow
- New workflow, first node: Error Trigger. Name the workflow
Error Handler. - Add an HTTP Request node, configured as below.
- Save the workflow.
HTTP Request node settings:
- Method: POST
- URL:
https://push.tg/k3x9q - Send Body: on
- Body Content Type: Raw
- Content Type:
text/plain - Body (as an expression):
❌ n8n: {{ $json.workflow.name }} failed
Node: {{ $json.execution.lastNodeExecuted }}
Error: {{ $json.execution.error.message }}
{{ $json.execution.url }}Step 3: attach it to your workflows
In each workflow you care about: Options → Settings → Error workflow → pick Error Handler → Save. One error workflow can serve all your workflows.
Note: if the failure happens in the trigger node, n8n sends different data (trigger.error instead of execution), and execution.url is only there when executions are saved. Some lines may come out empty, but you still get the alert.
Plain notifications from any workflow
The same HTTP Request node works anywhere, not just for errors. Put it at the end of a workflow to get "new lead", "invoice paid" or "scrape finished" in Telegram. To force a failure on your own condition, use the Stop and Error node and the error workflow takes over.
Check that the message really arrived. push.tg answers HTTP 200 even when the key is wrong. The body says {"error":"no such user"} instead of {"ok":...}. So a green "test sent" in your tool doesn't prove delivery. Look at Telegram.
More copy-paste guides
- Claude Code, Codex and Cursor: Get a Telegram Message When Your AI Agent Finishes
- Claude Code Telegram Notification Hook
- Uptime Kuma Telegram Alerts Without a Bot Token
- Healthchecks.io Alerts to Telegram
- Proxmox Notifications to Telegram with a Webhook Target
- Home Assistant Telegram Notification Without a Bot
- Grafana Alerts to Telegram with a Custom Webhook Payload
- Cron Job Failure Alert to Telegram (cron and systemd)
- GitHub Actions and GitLab CI Telegram Notification in One Line
- Synology NAS Email Alerts to Telegram
- Nagios Alerts to Telegram with curl
- Python: Get a Telegram Notification When Training Finishes
- How to Receive Email in Telegram Without Giving Out Your Real Address
- Send Server Alerts to Telegram with One curl Command
Get your endpoint: t.me/trafficRobot?start=tg-n8n. It takes 30 seconds, it has no ads, and it has been running since 2016.