- Home
- Resources
- Integrations
- Telegram
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
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.
How do you connect Telegram to n8n?
- 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 inbot, and fixed once created. - 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.
- 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.
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.*1callback_query. callback_query
channel_post.*1channel_post. channel_post
edited_channel_post.*1edited_channel_ post. edited_channel_ post
edited_message.*1edited_message. edited_message
inline_query.*1inline_query. inline_query
message.*1message.message
poll.*1poll.poll
pre_checkout_query.*1pre_checkout_ query. pre_checkout_ query
shipping_query.*1shipping_query. shipping_query
The trigger also accepts * (any event). Handy for logging, dangerous in production.
Configuration notes
01Telegram Trigger setup
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.
02Message and Edited Message
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.
03Channel Post and Edited Channel Post
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.
04Callback Query and Inline Query
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.
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.05Poll, Pre-Checkout Query and Shipping Query
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.
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.
| Resource | Get | Get Administrators | Answer Inline Query | Answer Query | Delete Chat Message | Edit Message Text | Leave | Get Member | Pin Chat Message | Send and Wait for Response | Send Animation | Send Audio | Send Chat Action | Send Document | Send Location | Send Media Group | Send Message | Send Photo | Send Sticker | Send Video | Set Description | Set Title | Unpin Chat Message |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chat | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||||||||
| Callback | ✓ | ✓ | |||||||||||||||||||||
| File | ✓ | ||||||||||||||||||||||
| Message | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
Chat
6 operationsGet a chat
chat.getWhat 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.
Get all administrators in a chat
chat.administratorsWhat 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
@channelusernameformat. A Telegram Trigger placed earlier in the workflow hands that value over directly.
Get a member in a chat
chat.memberWhat 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.
Leave a chat
chat.leaveWhat 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.
Set description on a chat
chat.setDescriptionWhat 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.
Set a title on a chat
chat.setTitleWhat 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.
Callback
2 operationsAnswer Query a callback
callback.answerQueryWhat 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.
Answer an inline query callback
callback.answerInlineQueryWhat 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.
File
1 operationGet a file
file.getWhat 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.
Message
15 operationsDelete a chat message
message.deleteMessageWhat 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.
Edit a text message
message.editMessageTextWhat 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.
Pin a chat message
message.pinChatMessageWhat 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.
Send an animated file
message.sendAnimationWhat 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_idthat already exists on the Telegram servers, the recommended route, or an HTTP URL.
Send an audio file
message.sendAudioWhat 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_idor an HTTP URL, used instead of the binary route. - Performer and Title: Additional Fields that fill the two lines the player shows.
Send a chat action
message.sendChatActionWhat 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.
Send a document
message.sendDocumentWhat 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_idor an HTTP URL when the binary route is off. - File Name: an Additional Field setting the name the recipient sees.
Send a location
message.sendLocationWhat 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.
Send a media group message
message.sendMediaGroupWhat 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_idor an HTTP URL.
Send a text message
message.sendMessageWhat 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.
Send message and wait for response
message.sendAndWaitWhat 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.
Send a photo message
message.sendPhotoWhat 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_idalready on the Telegram servers, or an HTTP URL, when the binary route is off. - Caption: 0 to 1024 characters under the image.
Send a sticker
message.sendStickerWhat 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_idalready on the Telegram servers, or an HTTP URL pointing at a .webp file.
Send a video
message.sendVideoWhat 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_idor 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.
Unpin a chat message
message.unpinChatMessageWhat 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.
Need help automating Telegram with n8n?
A person reads every message.


