Telegram channel watchlist with smart Slack alerts

Every 30 minutes, scan your Telegram channels for posts that actually match what you care about and forward only the signal to Slack.

Agentic Task
TelegramSlackOperationsMarketingNotifications & AlertsResearch & Monitoring

Build an agent workflow that watches a configured set of Telegram channels and supergroups on a recurring schedule and forwards only contextually relevant posts to a Slack channel as alerts.

Trigger: cron, every 30 minutes.

Inputs the user configures upfront:

1. watchedChannels — a list of Telegram channel or supergroup identifiers the user is already a member of (public @usernames or numeric channel IDs). The user picks these once during setup; do not discover channels dynamically.

2. topics — a paragraph of plain English describing what counts as relevant. Example: "flag actual product launches from competitors X, Y, Z that include funding amounts or pricing; flag new token listings on Coinbase or Binance; ignore casual mentions of the word launch, ignore memes, ignore price chatter without news." The agent must reason contextually against this paragraph, not do substring matching.

3. slackChannel — the Slack channel ID or name where alerts should be posted.

On every run:

Step 1. For each channel in watchedChannels, use the Telegram integration's Get Chat History action to fetch messages newer than the last successful run. Track a per-channel cursor (the highest message ID processed last run) so old messages are never re-evaluated. On first run for a newly added channel, start from now, not from history.

Step 2. For each fetched message, the agent decides whether it genuinely matches the topics paragraph. Use contextual reasoning. A passing comment that contains the word "launch" should be skipped; an actual launch announcement with funding details, product name, or pricing should be flagged. Skip empty media, stickers, polls, and reposts of content already flagged this run.

Step 3. For each post that clears the bar, send a Slack message using the Slack Bot integration's Send a Message action to slackChannel. The message body should contain: a one-line summary of the post (what happened, who it concerns), the source channel name, and a Telegram deeplink back to the original message (https://t.me/<username>/<message_id> for public channels, https://t.me/c/<internal_id>/<message_id> for private supergroups). Keep formatting compact, one alert per Slack message.

Step 4. If no messages cleared the bar this run, post nothing. Silence on a quiet half hour is correct behavior, not a bug.

Use the Slack Bot integration (bot token) for posting, not the user-token Slack integration, because these are automated alerts and should appear as the bot, not as the authorizing user.

Use Telegram's Get Chat History per configured channel rather than Search Messages Globally, because the channel set is fixed upfront and we want full coverage of those channels rather than keyword pre-filtering across the user's entire Telegram account.

Optimize for precision over recall. False positives are more costly than missed posts, because the value of this workflow is keeping the Slack channel readable. When in doubt, skip.

Additional information

What does this prompt do?
  • Watches a set of Telegram channels and supergroups you pick, on a 30 minute schedule.
  • Reads only messages posted since the last run, so you never see the same post twice.
  • Uses an agent to judge whether each post genuinely matches your topics, instead of dumb keyword matching.
  • Posts each hit to a Slack channel with a one-line summary, the source channel name, and a link back to the original.
  • Stays silent when nothing relevant came in, so the noise floor stays at zero.
What do I need to use this?
  • A Telegram account that is already a member of the channels and groups you want to watch.
  • A Slack workspace where the alerts should land, and the name of the channel that should receive them.
  • A short plain-English description of what counts as relevant for you (topics, competitors, keywords, criteria to ignore).
How can I customize it?
  • Change which Telegram channels are on the watchlist any time by editing the channel list.
  • Tighten or loosen what counts as relevant by rewriting the topics description in plain English.
  • Send alerts to a different Slack channel, a private channel, or your own DM.
  • Change how often it runs (every 15 minutes, hourly, twice a day) to match how time-sensitive your topics are.

Frequently asked questions

Will it work for private Telegram channels and supergroups?
Yes. As long as your Telegram account is a member of the channel or group, the workflow can read it. You join channels once in the Telegram app, then add them to the watchlist.
What stops it from spamming Slack on busy days?
An agent reads every new post and decides whether it actually matches the topics you described. Casual mentions get dropped, only real hits get forwarded. If a half hour goes by with no real signal, the workflow posts nothing.
Can I track more than one topic at the same time?
Yes. Describe as many topics, competitors, or criteria as you want in one paragraph. The agent evaluates each post against all of them and tags the alert with which topic it matched.
Does it post the full Telegram message or a summary?
It posts a short summary plus a deeplink back to the original message in Telegram, so the Slack channel stays readable and you can click through when you want full context.
Will it re-alert me on old messages if I restart it or add a new channel?
No. The workflow remembers where it left off in each channel and only looks at new messages going forward. Adding a new channel starts the watch from that moment, not from history.
Is this safe for my Telegram account?
The workflow only reads channels you are already in and never sends messages from your account. It uses a read-only session you generate during setup, which you can revoke any time from Telegram Settings.

Stop scrolling Telegram for signal.

Connect Telegram and Slack once, and let an agent flag the posts that actually matter every 30 minutes.