NodaroAccount
Nodaro Docs
DocumentationNode ReferenceModelsTemplatesAI Agents (MCP)DevelopersSelf-hostingResearchCompare
Automate

Telegram Channel Feed

Read the new posts of a public Telegram channel without a bot, as structured posts and as text, to rewrite, summarize or repost them on a schedule.

The Telegram Channel Feed node reads the new posts of a public Telegram channel. It returns them as structured posts, with text, link, date and media, and as one text. It needs no bot and no login, and each run returns only the posts that came after the last run. Use it with a Schedule Trigger to follow a channel, then rewrite or summarize the posts with a Generate Text - Any LLM node and publish the result.

When to use it

  • Follow a channel and rewrite its new posts in your own voice.
  • Build a daily digest of what several channels posted.
  • Repost new posts to your own channel with Telegram Post, or to other networks with Publish to Social.

Quick start

Add the node

Press Tab on the canvas and choose Automate › Get Content › Telegram Channel Feed.

Name the channel

In Channel, enter the public channel as @name, t.me/name or the bare name.

Run it

Save the workflow, so that the node can keep its position. Click Run. The newest posts appear on the node, up to Max posts per run.

Connect the posts and schedule the workflow

Connect the Posts output to the Prompt input of a Generate Text - Any LLM node, and leave its User Prompt empty so that the posts are the request. Write the task under Instructions (System Prompt). Add a Schedule Trigger to check the channel on a schedule.

promptSchedule TriggerEvery hourTelegram Channel Feed@examplenewsGenerate Text - Any LLMRewrite in our voiceTelegram PostOur channel
Every hour the Schedule Trigger runs the workflow: the feed returns the new posts, Generate Text - Any LLM rewrites them, and Telegram Post publishes the result.

Settings

SettingWhat it does
ChannelThe public channel to read: @name, t.me/name or the bare name. Required.
Max posts per runThe most new posts one run returns, from 1 to 30. The default is 5.
PositionWhere the feed stands: the last post it returned and when, or Not started. It appears once the workflow is saved.
Reset positionForgets the position after you confirm. The next run reads the newest posts again.
Re-fetch the last 5Reads the newest posts again without moving the position, to check what the channel carries. The number follows Max posts per run, up to 20. A fetch is charged like a run.

Outputs

OutputSendsWhat it does
PostsTextThe text of the new posts in one text, with a line of --- between two posts. Connect it to a Generate Text - Any LLM node or to any other node that accepts text.
JSONA list of postsThe new posts, oldest first, one object per post.

A connection in Each mode from JSON runs the next node once per post. Extract Field and List read the posts directly.

Each post in JSON has these fields:

FieldWhat it holds
idThe number of the post in the channel.
channelThe name of the channel, without @.
postUrlThe link to the post, https://t.me/<channel>/<id>.
textThe text of the post. The quoted text of a reply is not included.
dateWhen the post was published, as an ISO timestamp.
forwardedFrom{ name, url } when the post was forwarded. url can be missing.
mediaEvery photo and video of the post, as { type: "photo", url } or { type: "video", url, posterUrl }. An album has several. A video has a url only when the preview page includes the file.
imageUrlThe first picture: the first photo, or else the poster of a video. Use it for a node that takes one image.
viewsThe view count as the page shows it, such as 1.52M.

How new posts are found

The node reads the web preview page of the channel, t.me/s/ followed by the channel name.

  • A position for each channel. The node keeps a position: the last post it returned. The position is stored for each node of the saved workflow and for each channel. A new channel starts fresh, and an earlier channel resumes where it stood.
  • The first run. The first run, or the first after Reset position, returns the newest posts, up to Max posts per run. The position then moves to the newest post, and older posts are never read.
  • Every later run. Each run returns the oldest posts after the position, up to Max posts per run, and moves the position to the last of them. When posts arrive faster than the schedule reads them, each run takes the next batch, so nothing is skipped.
  • Posts with nothing to read. A poll, a voice note or a document without a caption is passed over, and the position moves past it.
  • The position moves when the posts are read. If a later node of the same run fails, the next run does not return that batch again. Re-fetch the last 5 shows it again.
  • No new post. The run completes, returns no post and is not charged. The nodes after the feed that would work on its text are skipped.
  • Who moves the position. Scheduled runs, runs of a published app and your own Run share one position. When someone else runs the workflow in the editor, the feed reads the channel without moving the position.

Credits

Each run that returns at least one new post costs 11 credits. A run that finds no new post is free. Re-fetch the last 5 is charged like a run. A failed run, such as one on a private channel, is refunded.

A scheduled feed runs often, so check the cost of the schedule. Every 15 minutes means up to 96 charged runs a day, or at most 1,056 credits. Every hour means up to 24 charged runs a day, or at most 264 credits.

Limits

  • Public channels only. The channel must be public and have its web preview turned on, as most public channels do. A private channel, or a channel with the preview turned off, fails the run with a clear error.
  • About 40 posts per run. A run reads at most two preview pages, about 40 posts. With a long backlog, the rest comes on the next runs.
  • Media links expire. Photo and video links come from Telegram and stop working within days. To keep a picture, pass it on in the same run, for example to an upload node or a generation node, instead of storing the link.

Tips

  • Match the schedule to the channel. A channel that posts twice a day does not need a check every 5 minutes.
  • Tell the model what the text is. In the instructions of the Generate Text - Any LLM node, say that the input is a set of Telegram posts separated by ---.
  • React to your own bot instead. To start a workflow when someone writes to your bot, use the Telegram Trigger.

Frequently asked questions

Does the Telegram Channel Feed node need a bot or a login?

No. It reads the public web preview of the channel, the page at t.me/s/ followed by the channel name. Any public channel with the web preview turned on works.

Can it read a private channel?

No. Private channels, and public channels that turned off their web preview, cannot be read. The run fails with a clear error and the credits are refunded.

Will the node send the same post twice?

No. The node keeps a position, the last post it returned, and each run returns only posts after it. When posts pile up, each run takes the next batch, so a scheduled feed reads every post once and skips none.

How much does the Telegram Channel Feed cost?

11 credits per run that returns at least one new post. A run that finds no new post is free. A schedule that checks every 15 minutes is charged at most 96 times a day, for 1,056 credits.

Does the Telegram Channel Feed return photos and videos?

Yes. The JSON output lists the photos and videos of each post, with their links, and the first picture as imageUrl. The links come from Telegram and expire within days, so pass a picture on in the same run.

Last updated on

On this page