How to build a Telegram RSS feed bot

By the Botable team

A Telegram RSS bot watches feeds and posts new items into a chat or channel. You add feed URLs, it remembers what it has already sent, and it delivers only what is new. Describe your feeds and cadence and Botable builds it.

What is a rss feed bot?

A Telegram RSS bot is a polling loop with a memory. It fetches each feed on a schedule, compares what it finds against what it has already delivered, and posts only the difference. That memory is the whole trick: without a record of sent item IDs, every poll re-posts the entire feed. Feeds are also less well-behaved than they look — some republish items with changed timestamps, some rewrite GUIDs, and some briefly return an empty document during a deploy, which a naive bot reads as "everything is new" on the next successful fetch. Matching on the canonical link rather than the title or date handles most of it. Beyond that, the useful features are per-feed filters, so a busy feed can be narrowed to items matching a keyword, and a digest mode that batches the day into one message instead of trickling.

What commands does it have?

Commands a rss feed bot typically has, and what each one does
CommandWhat it does
/add <url>Starts watching a feed
/feedsLists watched feeds and their last fetch
/remove <id>Stops watching a feed
/filter <id> <word>Only posts matching items from that feed
/digest 09:00Batches the day into one message

What do you need before you start?

  • A Telegram bot token from @BotFather
  • The feed URLs you want watched — RSS or Atom both work
  • A destination: a private chat, a group, or a channel the bot administrates

How do you build it?

How does the bot know an item is new?

It stores the canonical link of everything it has sent and skips anything it recognises. Ask for link-based matching rather than date-based: publication dates get rewritten by CMSs far more often than URLs do, and a rewritten date makes an old article arrive as breaking news.

How often should it check?

Every 15 to 30 minutes is enough for almost everything. Minute-level polling gets you rate-limited or blocked by the publisher and buys nothing, because most feeds do not update that fast. Say the interval when you describe the bot.

How do you keep a busy feed from flooding the chat?

Two levers: a keyword filter per feed so only relevant items post, and a per-run cap so a feed that suddenly publishes forty items sends a summary rather than forty messages. Ask for both — a single busy feed is the usual reason these bots get muted.

Can it post to a channel automatically?

Yes. Make the bot an admin of the channel with permission to post, and point the output there. This is the common setup for a curated news channel, where the bot is the only thing publishing.

A prompt you can use as-is

Paste this into Botable and adjust the details. It is specific on purpose — a vague description produces a vague bot.

Build an RSS bot. /add <url> starts watching a feed, /feeds lists them with the time of the last successful fetch, /remove <id> stops one. Check every 20 minutes and post only items whose canonical link has not been sent before. Each post: title, a two-line excerpt, and the link. /filter <id> <keyword> limits a feed to matching items. Cap each feed at 5 posts per run and summarise the rest. /digest <time> switches to one batched message a day.

Build this bot

Who is this bot for?

  • Curated Telegram channels that republish a niche's news
  • Teams tracking competitor blogs, release notes or job boards
  • Anyone who prefers a feed reader that comes to them

What goes wrong with this kind of bot?

  • Date-based deduplication resurfaces old articles whenever a CMS touches a timestamp
  • A feed that returns empty during a deploy can look like a reset — cap posts per run so a false reset cannot flood
  • Republishing full article text is a copyright problem; post a title, an excerpt and a link

Questions about rss feed bots

Can it watch a site that has no RSS feed?

Not as RSS, but the same shape works: the bot can fetch a page on a schedule and post when a section changes. It is less reliable than a feed because any redesign breaks it, so prefer a feed where one exists.

Can several people have different feeds?

Yes. Feeds are stored per chat, so a private chat has its own list and each group has its own. That also means the same feed in two groups is fetched once and delivered twice, not fetched twice.

All twelve build guides