n8n Notification Bots: Complete Telegram & Discord Setup Guide (2026)
Why You Need n8n Notification Bots
After running self-hosted n8n for a while, my most urgent need was: get notified the instant a workflow fails, instead of opening the n8n dashboard and finding out some data got stuck hours later.
There are two directions for n8n notifications:
- **Send notifications**: actively push to Telegram or Discord when a workflow completes/fails
- **Trigger workflows**: trigger n8n to execute actions when receiving Telegram messages/Discord commands
The nodes used for these two directions are different, and the configuration methods also differ. Let's cover them separately.
Prerequisites
- Self-hosted n8n (docker deployment, stable version 2.17.7+, verified)
- Telegram account + BotFather Token
- Discord server admin rights (need to create Webhook)
Telegram Notification Setup: 5 Steps
Step 1: Create a Bot via BotFather
Open Telegram, search for @BotFather, and send:
/newbot
Follow the prompts to enter the bot name and username. BotFather will return a Token in this format:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz123456789
⚠️ Verification: BotFather's bot creation feature has been stable since 2017. This is Telegram's official and only bot creation channel (confirmed 2026-05-31).
Save this Token — you'll need it for n8n Credentials later.
Step 2: Configure Telegram Credentials in n8n
1. n8n UI → Settings → Credentials → Add Credential
2. Select Telegram API type
3. Paste the Token from Step 1 into the Access Token field
4. Save
Step 3: Add the Bot to Your Telegram
Search for your bot's username and tap Start or send any message. This step is essential — bots cannot proactively send messages to users who haven't interacted with them.
Step 4: Get Your Chat ID
When using n8n's Telegram Trigger node, n8n automatically registers the webhook. But if you're sending messages actively (Send Message node), you need to know the target Chat ID.
The easiest way:
1. Send a message to your newly created bot
2. Open in browser: https://api.telegram.org/bot
3. Find the number in the returned JSON under "chat":{"id":-987654321,...} — this is your Chat ID
⚠️ **Pitfall**: If your bot already has many conversations, getUpdates may only return recent messages. You can force-fetch by adding parameters: https://api.telegram.org/bot
Step 5: Send Messages in n8n Workflow
Add a Telegram node (Send Message):
- Operation: Send Message
- Chat ID: your Chat ID (e.g., `-987654321`)
- Message Type: Text
- Text: `{{ $json.message }}` or custom content
Send a test message to verify the configuration works.
Discord Notification Setup: Webhook Method
Discord notifications are simpler than Telegram because you don't need to create a bot — just use a Webhook URL.
Step 1: Create a Discord Webhook
1. Open Discord server → target channel → Edit Channel in the top right → Integrations → Webhooks
2. Click New Webhook → name it (e.g., n8n-alerts) → Copy Webhook URL
⚠️ **Verification**: Discord Webhook creation has been stable since 2019. Webhook URL format: https://discord.com/api/webhooks/ (confirmed 2026-05-31).
Step 2: Configure Discord Webhook in n8n
Discord's Webhook node doesn't require Credentials — just use the HTTP Request node:
1. Add an HTTP Request node
2. Method: POST
3. URL: paste the Webhook URL from Step 1
4. Content-Type: application/json
5. Body (JSON):
{
"content": "Workflow completed: {{ $json.workflowName }}",
"embeds": [{
"title": "{{ $json.status }}",
"description": "{{ $json.message }}",
"color": 5814783
}]
}
Step 3: Format Discord Embed (Optional)
Discord's Webhook supports Embed format for prettier cards:
{
"username": "n8n Alerts Bot",
"avatar_url": "https://i.imgur.com/your-icon.png",
"content": null,
"embeds": [{
"title": "⚠️ Workflow Failed",
"description": "{{ $json.errorMessage }}",
"color": 15158332,
"fields": [
{"name": "Workflow", "value": "{{ $json.workflowName }}", "inline": true},
{"name": "Time", "value": "{{ $json.executedAt }}", "inline": true}
],
"footer": {"text": "n8n Self-Hosted"}
}]
}
Color reference values: 15158332 (red=error), 5814783 (green=success), 16776960 (yellow=warning).
Common Errors and Fixes
Error 1: Telegram Bot Cannot Send Messages Proactively (403 Forbidden)
Cause: User hasn't interacted with the bot, or the bot is restricted.
Solution:
1. Make sure the target user has started your bot
2. Check bot status in BotFather and confirm the Token is valid
3. Verify the Chat ID is correct (note: channels/groups have Chat IDs starting with -100)
Error 2: Discord Webhook Sent but Nothing Shows
Cause: Webhook URL has expired or was reset by channel admin.
Solution:
1. Re-fetch the Webhook URL from the Discord channel
2. Check that Content-Type is application/json
3. Verify JSON format is correct (test in Postman first if needed)
Error 3: n8n Telegram Trigger Fails to Register Webhook
Cause: n8n instance needs to be publicly accessible — localhost won't work for Telegram callbacks.
Solution:
1. Self-hosted n8n needs a publicly accessible URL (via reverse proxy or ngrok)
2. Cloud version n8n automatically provides a public webhook URL, no extra config needed
3. Check n8n logs: docker logs n8n_container for specific errors
Advanced: Error Trigger + Notification Bot Integration
The most useful scenario: any workflow failure automatically pushes to Telegram/Discord.
Configure Error Trigger Workflow
1. Create a new workflow, select Error Trigger as the trigger
2. In the Error Trigger's Node Webhook config, copy the generated Webhook URL
3. Paste this URL into the Error Workflow field of all workflows you want to monitor
Error Trigger Workflow Config
Telegram node config:
Message:
⚠️ Workflow Failed
Workflow Name: {{ $json.workflow.id }}
Error Node: {{ $json.execution.executionId }}
Error Message: {{ $json.execution.error.message }}
Time: {{ $json.execution.startTime }}
This way, any workflow crash pushes real-time alerts to your Telegram/Discord.
n8n Telegram vs Discord: Which to Choose
| Feature | Telegram | Discord |
|---|---|---|
| Config complexity | Need to create bot + get Token | Webhook URL only |
| Message format | Text/photo/document/keyboard | Text/Embed cards |
| Group support | Supported, different Chat ID | Supported, @mention users |
| Rate limits | No clear limits | 2 req/sec for normal webhooks |
| Use cases | Private/instant notifications | Team collaboration/channel broadcast |
| Self-hosted friendliness | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
Recommendation: Use Telegram for personal instant notifications (fast + private); use Discord for team collaboration (more flexible channel management).
Summary
n8n notification bot configuration isn't complex, but there are a few key pitfalls:
- Telegram requires users to interact with the bot before it can proactively send messages
- Self-hosted n8n must have a public URL configured for Telegram to successfully callback
- Discord Webhooks don't support retry queues — failed sends won't auto-retry
Once configured, combined with Error Trigger, you get real-time alerts on your phone whenever any workflow crashes — no more manually checking the n8n dashboard every day.
Related
- n8n Self-Hosted Docker Deployment: 5 Real Problems: 5 real pitfalls including PostgreSQL config and timezone issues
- n8n Self-Hosted Advanced Configuration: N8N_WEBHOOK_URL configuration and database connection issues
- 2026 No-Code Automation Tools Deep Comparison: Complete Zapier vs Make vs n8n comparison
👉 Try MiniMax API now: Add AI capabilities to your n8n workflows → https://platform.minimaxi.com/subscribe/token-plan?code=E5yur9NOub&source=link
📌 This article was AI-assisted generated and human-reviewed | TechPassive — An AI-driven content testing site focused on real tool reviews
🔗 Recommended Tools
These are carefully selected tools. Using our affiliate links supports us to keep producing quality content: