n8n Telegram Integration

Last verified: July 2026Works with: n8n 2.x

By Rick, NoCode Guide

n8n Telegram integration bot trigger workflow

Set up the n8n Telegram trigger to build a bot that sends messages, photos, and alerts. This guide covers prerequisites, credential setup, the numbered steps, an importable workflow, and troubleshooting.

Prerequisites

  • A running n8n instance (self-hosted or Cloud).
  • A Telegram account with API access enabled.
  • Your Telegram API key or OAuth credentials to hand.

Credential setup

In n8n, open Credentials → New, search for Telegram, and paste your API key or complete the OAuth flow. Save and give it a clear name so you can reuse it across workflows.

Step-by-step setup

Step 1: Add credentials

Create a Telegram credential in n8n with your API key or OAuth login.

Step 2: Add the trigger or action node

Drop the Telegram node onto the canvas and pick the operation.

Step 3: Import the example workflow

Paste the provided JSON via Import from Clipboard.

Step 4: Test and activate

Run once to confirm, then toggle the workflow active.

Import this workflow

Copy the JSON below, then in n8n choose Import from Clipboard and paste it:

Telegram workflow.json
{
  "name": "Telegram example",
  "nodes": [],
  "connections": {}
}

Troubleshooting

  • 401 / auth errors: re-create the credential and confirm the token scopes.
  • Webhook not firing: ensure the workflow is active and your N8N_WEBHOOK_URL is your public domain.
  • Rate limits: add a Wait node or batch requests to stay under Telegram's limits.

Related: webhook guide and self-hosting hub. Official docs: n8n integrations documentation.

Why Telegram is the easiest bot platform to start with

Of all the messaging integrations, Telegram has the lowest barrier to a working bot. There is no business verification, no phone number restriction and no template approval process. You message BotFather, it gives you a token, and you have a bot. That makes Telegram the right place to learn the trigger-and-reply pattern before taking it somewhere with more rules, such as WhatsApp.

It is also the natural home for personal and internal alerting. A bot that posts to a private channel costs nothing, is faster to set up than email and does not get lost in an inbox. If what you want is to know when a workflow fails or a sale lands, Telegram is often the pragmatic answer rather than Slack.

Polling versus webhooks

Telegram bots can receive updates two ways, and n8n's Telegram trigger uses webhooks: Telegram calls your n8n instance when a message arrives. That is efficient and instant, and it has one requirement that catches people out. Telegram will only deliver webhooks to a public HTTPS URL with a valid certificate. A local n8n instance, or one behind HTTP, will register the trigger without complaint and then never receive anything.

So before debugging a silent Telegram trigger, confirm three things: your n8n instance is reachable from the internet, it is served over HTTPS, and N8N_WEBHOOK_URL is set to the public address so the webhook URL n8n hands Telegram is the one that works.

Patterns worth building

Three come up repeatedly.

Notification channel. A private channel with your bot as a member, and a workflow that posts a formatted message on an event. Add it as the final node of any workflow you care about, and you will know within seconds when something goes wrong. Pair it with an error workflow so failures in other workflows route here automatically.

Command bot. Messages starting with a slash route to different branches: one command fetches a report, another kicks off a job, another returns a status. The n8n side is a trigger, a switch on the command text, and a branch per command. For an internal team this replaces a surprising amount of dashboard-building.

Media relay. Telegram handles photos, documents and voice notes natively, and the trigger exposes the file for download. Receiving a photo, running it through a model, and replying with what it found is a short workflow, and the whole exchange is a single execution however many steps it takes.

Two things to get right early

Group privacy mode is on by default, which means your bot only sees messages that mention it or start with a slash command. If you want the bot to see everything in a group, you have to disable that through BotFather, and people spend a long time wondering why their trigger fires on some messages and not others before finding this setting.

And treat the bot token as a credential, not a config value. Anyone with it can send messages as your bot. Store it in n8n's credential store, never in a workflow node or an exported JSON file.

Frequently asked questions

Related integrations

We use cookies for analytics to understand how our guides are used. You can decline non-essential cookies.