Field guide · n8n Telegram Trigger
Telegram Trigger works in test mode but not after activation? Prove which webhook owns the bot.
Telegram allows one webhook per bot. Starting an n8n test listener can replace the production webhook, and publishing can replace the test webhook. Check the registered URL first; do not rotate the token or rebuild a working workflow on a guess.
The shortest safe recovery sequence
- Stop the editor test listener and exit any stuck test execution.
- Publish the workflow that should own the production Telegram webhook.
- Inspect Telegram's current webhook registration with
getWebhookInfo. - Send one new update that matches the node's event and restrictions.
- Verify a new production execution and its intended downstream result.
Do not test and production-run the same bot at the same time. n8n's documented options are to stop production while testing or use a separate Telegram bot for test traffic.
1. Inspect the webhook without sharing the bot token
Run the request in a private local terminal. The bot token is a password. Never enter it into this site, a public forum, analytics, screenshots, or an initial support ticket.
read -rs "ARD_TELEGRAM_BOT_TOKEN?Telegram bot token: "
echo
curl --silent --show-error --request POST \
"https://api.telegram.org/bot${ARD_TELEGRAM_BOT_TOKEN}/getWebhookInfo"
unset ARD_TELEGRAM_BOT_TOKEN
Record only a redacted interpretation. Telegram documents these useful response fields:
url: the webhook currently registered for the botpending_update_count: updates waiting for deliverylast_error_date: when the most recent delivery error occurredlast_error_message: Telegram's most recent delivery error
The response URL can disclose your public n8n host and webhook path. Redact the host, path, IP address, and error details before sharing evidence.
2. Interpret the result before changing anything
The editor listener most likely owns the bot. Stop testing, publish once, and inspect the registration again.
The expected production webhook is not registered. Check publication and the public webhook URL configuration.
Use the pending count and last error, then check event selection, restrictions, permissions, and production executions.
Preserve one timestamped result before toggling the workflow. It distinguishes a registration problem from a delivery or filtering problem and gives you a clean before-and-after check.
3. Restore one clean production registration
- Stop Execute step or Execute workflow for the Telegram Trigger.
- If the canvas remains stuck listening, n8n recommends leaving the workflow and opening it again.
- Confirm the intended production workflow is saved and published.
- Run
getWebhookInfoagain and compare only the redacted host/path classification. - Send a brand-new Telegram update after the production webhook is registered.
- Open n8n's production execution list. Do not use another editor test as proof.
If people need uninterrupted production traffic while you debug, create a second Telegram bot for testing. Reusing one bot will continue switching its single webhook between test and production.
4. If self-hosted, prove the public HTTPS route
n8n says a reverse-proxied instance should set its public
WEBHOOK_URL, configure N8N_PROXY_HOPS,
and pass the forwarded host, protocol, and client information from
the last proxy. Telegram requires an HTTPS webhook URL.
WEBHOOK_URL=https://n8n.example.com/
N8N_PROXY_HOPS=1
- The registered URL uses the public HTTPS origin, not an internal host or port.
- The last proxy forwards
X-Forwarded-For,X-Forwarded-Host, andX-Forwarded-Proto. - The production webhook route reaches this n8n instance without an authentication interstitial or redirect loop.
- Telegram's last error and pending count improve after the route is corrected and the workflow is republished.
5. Prove the update qualifies for this trigger
A correct webhook can still produce no execution when the incoming update does not match the node. Record the expected event and restrictions before sending the controlled test.
- Selected event, such as Message, Callback Query, Channel Post, or Chat Member
- Any Restrict to Chat IDs values
- Any Restrict to User IDs values
- Bot administrator rights required by events such as Chat Member or Chat Join Request
- The exact UTC timestamp and type of the new update sent after publication
n8n's default all-events option excludes Chat Member, Message Reaction, and Message Reaction Count. Some Telegram events also require additional bot permissions.
6. Write the acceptance test before declaring victory
Production acceptance
published_workflow_id:
registered_url_class: production | test | empty | unexpected
pending_update_count:
last_error_class:
new_update_sent_at_utc:
production_execution_id:
first_failed_node:
observable_downstream_state:
The fix is verified only when a new qualifying Telegram update reaches the published workflow and produces the intended downstream state. A corrected webhook URL alone is intermediate evidence.
Official references
- n8n Telegram Trigger common issues ↗
- n8n Telegram Trigger events and options ↗
- n8n Telegram credential setup ↗
- n8n reverse-proxy webhook URL configuration ↗
- Telegram Bot API getWebhookInfo ↗
Agent Rescue Desk is an independent technical service. It is not affiliated with, endorsed by, or sponsored by n8n or Telegram.
Still failing?
Submit the redacted webhook state and one production timestamp.
The free fit review needs the registered URL classification, pending count, redacted last-error class, trigger restrictions, and one expected update timestamp—never the bot token.