Resources · n8n integration

Telegram n8n integrationAutomate Telegram with n8n.

How far can a bot take your Telegram n8n integration? The node exposes 24 operations across 4 resources, from a plain text message to a pinned announcement or a file pulled back out of a chat. The trigger listens to 9 update types. It fits teams running alerts, approvals or a support bot.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What does the Telegram n8n integration actually cover?

The Telegram n8n integration pairs two nodes that ship with n8n. The Telegram node acts as the bot: it posts text, photos, video, audio, documents, stickers and locations into a chat, edits or deletes what it already sent, pins and unpins, and reads chat data back. The Telegram Trigger starts a workflow when an update reaches that same bot, so a line typed in a group can set off everything downstream.

Alerting is the shortest of the three shapes. A workflow watching a new row in Google Sheets ends on message.sendMessage, and the group chat sees the line within seconds. Set Parse Mode to HTML when the numbers need to stand out, and switch Append n8n Attribution off in Additional Fields so the post does not close with the n8n signature.

Approvals are what separate Telegram from a one way notification channel. message.sendAndWait posts the question and holds the execution until someone answers, which is why that operation carries a Response Type with Approval, Free Text and Custom Form. A refund request that arrived by Gmail gets decided in the chat, in the time it takes to read one line.

The third shape is a two way bot. The trigger fires on an incoming message, the workflow answers with message.sendMessage, and an inline keyboard reply comes back as a callback_query that callback.answerQuery acknowledges. Photos the field team sends go through file.get before they land in Google Sheets for the record. The same pattern runs on Slack, with one practical difference: a Telegram group is addressed by a numeric Chat ID, and @channelusername works on public channels only.

Reach for the HTTP Request node when the Bot API method you need sits outside the 24 operations. It calls any Telegram endpoint while reusing the same credential, so nothing gets rebuilt from scratch. Two limits deserve a plan: the Bot API accepts 30 messages per second, which a Loop Over Items node feeding at most 30 chat IDs plus a Code node pause keeps you under, and Telegram stores a single webhook per bot, so a workflow under test takes the events away from the published one.

If the open question is the platform rather than the node, the n8n review covers hosting and cost, and the n8n training walks through building workflows like these.

Connect

How do you connect Telegram to n8n?

  1. 01

    Create the bot with BotFather

    A Telegram account is the only prerequisite. Open a chat with @BotFather, send /newbot, and answer its two questions. The name shows in contact details and can be changed later. The username is what search, mentions and t.me links use: 5 to 32 characters, Latin letters, numbers and underscores, not case sensitive, ending in bot, and fixed once created.

  2. 02

    Store the access token as a credential

    BotFather answers with a token. In n8n, open the Credentials menu, create a Telegram credential and paste that value into Access Token. It is the one authentication method these nodes support. A credential is created once and then offered in the dropdown of every workflow that needs it, and the Telegram Trigger takes exactly the same one, so a bot gets set up a single time.

  3. 03

    Give the bot access to the channel

    A bot cannot post where it is not a participant. In the Telegram app, open the target channel and select its name, label the channel as a public channel, then go to Administrators, Add Admin, search for the bot username and confirm with the checkmark at the top right. Skip this step and the first run returns Error: Forbidden: bot is not a participant of the channel.

Triggers

What starts a workflow from Telegram ?

Telegram Trigger is the node that starts a workflow when something happens in Telegram. It listens to 9 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Telegram account.

What you see in n8n

Every event, by family

One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.

callback_query.*1
  • callback_query.
    • callback_query
channel_post.*1
  • channel_post.
    • channel_post
edited_channel_post.*1
  • edited_channel_post.
    • edited_channel_post
edited_message.*1
  • edited_message.
    • edited_message
inline_query.*1
  • inline_query.
    • inline_query
message.*1
  • message.
    • message
poll.*1
  • poll.
    • poll
pre_checkout_query.*1
  • pre_checkout_query.
    • pre_checkout_query
shipping_query.*1
  • shipping_query.
    • shipping_query

The trigger also accepts * (any event). Handy for logging, dangerous in production.

Configuration notes

01Telegram Trigger setupThe Telegram Trigger registers a webhook when the workflow is activated. A webhook here is just a URL that Telegram calls, so an update reaches n8n within seconds and nothing polls the API on a timer.

The Telegram Trigger registers a webhook when the workflow is activated. A webhook here is just a URL that Telegram calls, so an update reaches n8n within seconds and nothing polls the API on a timer.

Key parameters

  • Trigger On: the updates the bot subscribes to. The catalogue exposes 9 of them, and * takes everything except Chat Member, Message Reaction and Message Reaction Count.
  • Restrict to Chat IDs: fire only for the chat IDs listed here, separated by commas.
  • Restrict to User IDs: the same filter applied to user IDs.
  • Download Images/Files: pulls an attached image or file into the item, with Image Size choosing which size to take, large by default.
When to use it
subscribe to the narrowest event that does the job, then add the restrictions. The workflow stops waking up for conversations it has nothing to say about, and the execution list stays readable.
02Message and Edited MessageThese two carry ordinary chat traffic, and most bots are built on the pair.

These two carry ordinary chat traffic, and most bots are built on the pair.

Key parameters

  • Message (message): a new incoming message of any kind, text, photo or sticker alike.
  • Edited Message (edited_message): a new version of a message the bot already knows about that was edited.
Use cases
a support bot answers a question the moment it is typed. Subscribing to the edited event as well catches the correction someone posts ten seconds later, instead of treating the first version as final and the fix as a second request.
When to use it
keep both on when the answer depends on the exact wording, and drop the edited one when duplicate handling costs more than it saves.
03Channel Post and Edited Channel PostChannels broadcast in one direction, and Telegram reports their activity separately from chat messages.

Channels broadcast in one direction, and Telegram reports their activity separately from chat messages.

Key parameters

  • Channel Post (channel_post): a new incoming channel post of any kind, text, photo or sticker included.
  • Edited Channel Post (edited_channel_post): a new version of a channel post the bot knows about that was edited.
Use cases
mirror every announcement into an archive as it goes out, or watch a channel and react when a post is quietly rewritten after publication, which is the case the plain post event never sees.
When to use it
the bot has to sit in the channel for either event to fire, which is the same admin step that posting requires. Pair the two when the archive has to stay faithful to what the channel shows today.
04Callback Query and Inline QueryBoth of these come from someone interacting with the bot rather than writing to it, and both expect an answer back.

Both of these come from someone interacting with the bot rather than writing to it, and both expect an answer back.

Key parameters

  • Callback Query (callback_query): a new incoming callback query, the kind an inline keyboard sends back to the bot.
  • Inline Query (inline_query): a new incoming inline query, raised when a user types the bot name inside any chat.
Use cases
the button path pairs with callback.answerQuery, which sends the answer back to that keyboard. The typing path pairs with callback.answerInlineQuery, which returns the list of results the person can insert into the conversation.
When to use it
subscribe to the callback event as soon as a workflow sends buttons, since every button response arrives as an event that something has to answer. The inline event only matters for a bot meant to be called from other people's chats.
05Poll, Pre-Checkout Query and Shipping QueryThe last three events are narrow on purpose, and each carries a condition worth knowing before you build on it.

The last three events are narrow on purpose, and each carries a condition worth knowing before you build on it.

Key parameters

  • Poll (poll): a new poll state. Bots receive updates only about stopped polls and polls the bot sent itself.
  • Pre-Checkout Query (pre_checkout_query): a new incoming pre-checkout query, carrying the full checkout information.
  • Shipping Query (shipping_query): a new incoming shipping query, raised for invoices with a flexible price only.
Use cases
record the outcome of a team poll the moment Telegram reports it stopped, and write the result straight into the sheet that tracks it. The two payment events belong to a bot that sells inside Telegram, and they stay silent everywhere else, which makes them easy to leave subscribed without noise.
Actions

What can the Telegram node do?

The Telegram node exposes 24 operations across 4 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.

Resources × operations matrix
ResourceGetGet AdministratorsAnswer Inline QueryAnswer QueryDelete Chat MessageEdit Message TextLeaveGet MemberPin Chat MessageSend and Wait for ResponseSend AnimationSend AudioSend Chat ActionSend DocumentSend LocationSend Media GroupSend MessageSend PhotoSend StickerSend VideoSet DescriptionSet TitleUnpin Chat Message
Chat✓✓✓✓✓✓
Callback✓✓
File✓
Message✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓

Chat

6 operations
01

Get a chat

chat.get

What you see in n8n

Notes & use cases

Pulls the current state of a chat back into the workflow, so the nodes that follow branch on what Telegram actually reports instead of on an assumption.

Key parameters

  • Chat ID: the unique identifier of the target chat, or its username. When you do not have it, ask @get_id_bot.
Use cases
read the chat once at the start of a run, then let an IF node decide between a full report and a single summary line.
02

Get all administrators in a chat

chat.administrators

What you see in n8n

Notes & use cases

Returns the administrators of a chat in one call, through the Bot API getChatAdministrators method.

Key parameters

  • Chat ID: the Chat ID, or the channel username in the @channelusername format. A Telegram Trigger placed earlier in the workflow hands that value over directly.
Use cases
rebuild a moderator list every morning, or check that whoever sent a command is allowed to run it before the rest of the workflow executes.
03

Get a member in a chat

chat.member

What you see in n8n

Notes & use cases

Checks one person against one chat and returns that member's record.

Key parameters

  • Chat ID: the chat whose membership is being checked.
  • User ID: the unique identifier of the target user.
Use cases
gate an internal command behind membership of a private group. The bot looks the person up, and the branch that follows decides what to do with the answer it gets.
04

Leave a chat

chat.leave

What you see in n8n

Notes & use cases

Takes the bot out of a group, a supergroup or a channel.

Key parameters

  • Chat ID: the group, supergroup or channel the bot leaves.
Use cases
wind down a temporary project group at the end of a campaign. The last node of the closing workflow removes the bot, so nobody has to remember six weeks later which chats it was invited to and what it can still read.
05

Set description on a chat

chat.setDescription

What you see in n8n

Notes & use cases

Writes a new description under the chat name, replacing whatever was there.

Key parameters

  • Chat ID: the chat whose description changes, as an ID or an @channelusername.
  • Description: the new chat description, 0 to 255 characters, so build the string with that ceiling in mind.
Use cases
keep a support channel description in step with the current on call rotation, refreshed by a scheduled workflow every Monday morning.
06

Set a title on a chat

chat.setTitle

What you see in n8n

Notes & use cases

Renames a chat from the workflow, which pays off when the name carries information rather than decoration.

Key parameters

  • Chat ID: the chat being renamed.
  • Title: the new chat title, 1 to 255 characters.
Use cases
a war room named after the incident it tracks, retitled as the status moves from investigating to resolved, so anyone opening the chat list reads the current state without scrolling into the conversation.

Callback

2 operations
07

Answer Query a callback

callback.answerQuery

What you see in n8n

Notes & use cases

Answers a callback query sent from an inline keyboard, so each button in that keyboard gets a reply from the workflow.

Key parameters

  • Query ID: the unique identifier of the query being answered. A Telegram Trigger set to Callback Query passes it in.
  • Text: an optional notification of 0 to 200 characters. Leave it empty and the user sees nothing.
  • Show Alert: turns that notification into an alert box instead of a banner at the top of the chat screen.
Use cases
confirm a ticket closure on the button itself, in the chat where the request started.
08

Answer an inline query callback

callback.answerInlineQuery

What you see in n8n

Notes & use cases

Replies to someone who typed the bot name in any chat, with a list of results they can insert without leaving the conversation.

Key parameters

  • Query ID: the unique identifier of the answered query, taken from a Telegram Trigger set to Inline Query.
  • Results: a JSON serialized array of results for the inline query. Telegram accepts at most 50 per query.
  • Cache Time: how long, in seconds, the client may keep that answer cached.
Use cases
an internal lookup bot where a colleague types the bot name and a product code, then picks the right price line.

File

1 operation
09

Get a file

file.get

What you see in n8n

Notes & use cases

Fetches a file the bot can reach from its identifier, and optionally brings the bytes into the workflow.

Key parameters

  • File ID: the ID of the file to get.
  • Download: on, the node downloads the file; off, it returns the file record only.
  • MIME Type: set it when the extension alone would not identify the file, for instance image/jpeg.
Use cases
a user sends a receipt to the bot, and the workflow downloads it before anything tries to read what is on it.

Message

15 operations
10

Delete a chat message

message.deleteMessage

What you see in n8n

Notes & use cases

Removes a message from a chat through the Bot API deleteMessage method.

Key parameters

  • Chat ID: the chat that holds the message.
  • Message ID: the unique identifier of the message to delete.
Use cases
clear the temporary status message a long workflow posted while it was working, once the final result has been sent and the placeholder only adds noise.
11

Edit a text message

message.editMessageText

What you see in n8n

Notes & use cases

Rewrites the text of a message already in the chat, in place, rather than stacking a correction underneath it.

Key parameters

  • Chat ID: the chat holding the message to rewrite.
  • Message ID: the unique identifier of the message to edit.
  • Inline Message ID: used instead when Message Type is set to Inline Message.
  • Text: the text the message becomes.
  • Reply Markup: None, or Inline Keyboard to keep buttons under the edited text.
Use cases
one status line that moves from queued to running to done, so the channel is not flooded with three near identical posts.
12

Pin a chat message

message.pinChatMessage

What you see in n8n

Notes & use cases

Pins a message so it stays at the top of the chat for every member.

Key parameters

  • Chat ID: the chat where the pin appears.
  • Message ID: the unique identifier of the message to pin.
  • Disable Notification: an Additional Field deciding whether everyone gets notified about the new pinned message.
Use cases
pin the incident summary the second it is posted, so the people arriving late read it before scrolling.
13

Send an animated file

message.sendAnimation

What you see in n8n

Notes & use cases

Posts a GIF, or an H.264/MPEG-4 AVC video without sound, up to 50 MB.

Key parameters

  • Chat ID: where the animation lands.
  • Binary File: on when the file comes from the workflow itself.
  • Input Binary Field: the name of the binary property holding that file.
  • Animation: used when Binary File is off. Pass a file_id that already exists on the Telegram servers, the recommended route, or an HTTP URL.
Use cases
a short screen capture showing what changed, sent to the channel that follows releases.
14

Send an audio file

message.sendAudio

What you see in n8n

Notes & use cases

Sends an audio file, which Telegram displays in its music player.

Key parameters

  • Chat ID: the destination chat.
  • Binary File and Input Binary Field: the switch and the property name when the audio comes from a previous node.
  • Audio: a file_id or an HTTP URL, used instead of the binary route.
  • Performer and Title: Additional Fields that fill the two lines the player shows.
Use cases
a voice digest produced elsewhere in the workflow and dropped into a private chat each evening.
15

Send a chat action

message.sendChatAction

What you see in n8n

Notes & use cases

Tells the chat that something is happening on the bot's side. Telegram keeps that status up for 5 seconds or less.

Key parameters

  • Chat ID: the chat that sees the status.
  • Action: what to broadcast, chosen to match what the person is about to receive. Typing, Upload Photo, Upload Document, Record Audio, Find Location and the rest of the list.
Use cases
place it before a slow branch, so someone waiting on an answer sees Typing instead of silence.
16

Send a document

message.sendDocument

What you see in n8n

Notes & use cases

Delivers a file as a document, the right format for a PDF, an export or an archive.

Key parameters

  • Chat ID: the chat that receives the file.
  • Binary File and Input Binary Field: turn the switch on, then name the binary property carrying the document.
  • Document: a file_id or an HTTP URL when the binary route is off.
  • File Name: an Additional Field setting the name the recipient sees.
Use cases
the monthly export leaves the accounting workflow and lands in the finance group already named.
17

Send a location

message.sendLocation

What you see in n8n

Notes & use cases

Drops a point on the map inside the chat, built from a pair of coordinates.

Key parameters

  • Chat ID: the chat the pin is posted to.
  • Latitude: the latitude of the location.
  • Longitude: the longitude of the location.
Use cases
a field team receives the next job as exact coordinates dropped on the map, rather than an address to copy by hand.
18

Send a media group message

message.sendMediaGroup

What you see in n8n

Notes & use cases

Groups several photos and videos into a single album post instead of a burst of separate messages.

Key parameters

  • Chat ID: the chat that gets the album.
  • Media: use Add Media once per file. Each entry takes a Type, Photo or Video, and a Media File given as a file_id or an HTTP URL.
Use cases
four product shots published as one album, so a catalogue channel stays scrollable instead of turning into a wall of images.
19

Send a text message

message.sendMessage

What you see in n8n

Notes & use cases

This is where most workflows end: the bot posts text into a chat.

Key parameters

  • Chat ID: the target chat, as a numeric ID or an @channelusername.
  • Text: the body of the message, up to 4096 characters after entities parsing.
  • Parse Mode: Markdown, MarkdownV2 or HTML, for bold values and links.
  • Append n8n Attribution: on by default, which is why sent messages end with the n8n line. Add the field and turn the toggle off to drop it.
Use cases
the alert saying a payment failed, in the group that can act on it.
20

Send message and wait for response

message.sendAndWait

What you see in n8n

Notes & use cases

Posts a message and holds the execution there until a person answers in Telegram, which turns a chat into an approval step.

Key parameters

  • Chat ID: the chat where the question appears.
  • Message: the text the person reads before deciding.
  • Response Type: Approval for a button, Free Text for a written answer through a form, Custom Form for several fields.
  • Type of Approval: Approve Only, or Approve and Disapprove for both buttons.
  • Limit Wait Time: caps how long the node waits before the execution resumes.
Use cases
a discount above the usual ceiling waits for a manager to approve it before the quote goes out.
21

Send a photo message

message.sendPhoto

What you see in n8n

Notes & use cases

Publishes an image inside the conversation, which is the operation to pick when the visual is the message.

Key parameters

  • Chat ID: the chat the image goes to.
  • Binary File and Input Binary Field: the pair to use when a previous node produced the image.
  • Photo: a file_id already on the Telegram servers, or an HTTP URL, when the binary route is off.
  • Caption: 0 to 1024 characters under the image.
Use cases
the chart that closes a weekly report, with the headline numbers written in the caption.
22

Send a sticker

message.sendSticker

What you see in n8n

Notes & use cases

Answers with a sticker: static .WEBP, animated .TGS or video .WEBM.

Key parameters

  • Chat ID: the chat receiving the sticker.
  • Binary File and Input Binary Field: used when the sticker file travels through the workflow.
  • Sticker: a file_id already on the Telegram servers, or an HTTP URL pointing at a .webp file.
Use cases
a build that passes gets the same sticker every time, and a team reads that faster than a sentence.
23

Send a video

message.sendVideo

What you see in n8n

Notes & use cases

Uploads a video into the chat, along with the fields that describe the clip.

Key parameters

  • Chat ID: the chat the clip is posted in.
  • Binary File and Input Binary Field: the switch and the binary property holding the video.
  • Video: a file_id or an HTTP URL when the binary route is off.
  • Width, Height and Duration: Additional Fields describing the clip.
  • Thumbnail: a JPEG under 200 kB whose width and height should not exceed 320.
Use cases
a recorded walkthrough attached to the ticket that asked for it.
24

Unpin a chat message

message.unpinChatMessage

What you see in n8n

Notes & use cases

Clears a pinned message once it has served its purpose.

Key parameters

  • Chat ID: the chat holding the pinned message.
  • Message ID: the unique identifier of the message to unpin.
Use cases
the closing branch of an incident workflow unpins the summary it pinned at the start, and the chat goes back to normal without a manual step.
Need help

Need help automating Telegram with n8n?

A person reads every message.

FAQ

Telegram and n8n, the questions that come next

01Is the Telegram n8n integration free?
Yes on the n8n side. The Telegram node and the Telegram Trigger both ship with n8n, so there is nothing to install and nothing extra to pay for, on n8n Cloud as well as on a self-hosted instance under the Community Edition and its Sustainable Use licence. A workflow behaves identically in both places, which means a bot built on a laptop moves to a server without edits. Creating the bot itself happens inside Telegram through BotFather, and the credential you get back is reused across every workflow that needs it.
02What credentials does the Telegram node need in n8n?
One method, and only one: an API bot access token. Start a chat with BotFather, send the /newbot command, answer the name and username questions, then copy the token it generates into the Access Token field of a Telegram credential. A Telegram account is the only prerequisite. The same credential drives the Telegram node and the Telegram Trigger. Posting to a channel takes one more step outside n8n: the bot has to be added to that channel as an administrator, otherwise the first run fails with an error saying the bot is not a participant of the channel.
03What are the limits of the Telegram node?
The node covers 24 operations across 4 resources, and anything the Bot API offers beyond them goes through the HTTP Request node with the same credential. Three ceilings show up in practice. Text in a message stops at 4096 characters after entities parsing. A chat description takes 0 to 255 characters and a caption 0 to 1024. The Bot API also accepts 30 messages per second, so a broadcast to a long list needs a Loop Over Items node handing over at most 30 chat IDs at a time, with a Code node that waits before the next batch.
04Does the Telegram Trigger react in real time?
Yes. The trigger works by webhook: n8n registers its URL with Telegram when the workflow is activated, Telegram calls that URL, and each update arrives within seconds, with no polling on an interval. Two things get in the way. Behind a reverse proxy, Telegram demands an HTTPS address, so the WEBHOOK_URL environment variable has to carry the public HTTPS URL of the instance, and the Execute step button needs websocket proxying enabled or the canvas looks stuck waiting. Telegram also keeps a single webhook per bot, so a workflow being tested takes events away from the published one. Separate bots for test and production avoid that clash.
05n8n or Make for Telegram?
It depends on what you weigh. n8n runs on your own server through Docker or npm, or on n8n Cloud, and a workflow is identical either way, so the conversations can stay on infrastructure you control. Make is hosted only, with no self-hosting option, and it bills per operation, which changes the arithmetic for a chatty bot: every message sent, every callback answered and every file fetched counts. The visual logic differs too. Both cover the common Telegram actions, so the honest test is to rebuild your noisiest workflow in each and compare what comes out.