Daily
Get a morning newsletter digest on Telegram
Yesterday's newsletters arrive as one short digest on Telegram at 7am, as text or a voice message.
- Runs
- Daily
- Apps
- Gmail, Telegram
- AI
- Yes, uses the built-in AI allowance
- Access
- Gmail gmail.readonly; Telegram bot token
Send this to your assistant
Create a ClickRuntime automation: every morning at 7, summarise yesterday's newsletter emails and send me the digest on Telegram as a voice message.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A product manager subscribes to fifteen industry newsletters. Most mornings they sit unread under work email, and on Friday she archives the lot. The one item that mattered to her roadmap went past without her seeing it.
A single digest at 7am, ready to read or listen to on the commute, keeps her informed without opening every newsletter.
What you get out of it
Stay informed in a few minutes
One digest replaces a stack of long emails, so keeping up takes a short read or a listen with coffee.
Listen while you travel
A voice message can be played on the commute or a walk, when reading is not practical.
A cleaner work inbox
Newsletters no longer compete with work email for attention, because what matters reaches you elsewhere.
Keep your subscriptions
You can stay subscribed to every source you value without feeling behind on all of them.
How it works
What happens, step by step
Every morning at 7, ClickRuntime collects the newsletter emails you received yesterday.
It keeps the main text of each one and drops footers, images and tracking links.
AI writes one short digest with the key points from each newsletter.
The digest is sent to you on Telegram as a message, a voice message, or both.
Before it runs live
- Connect Google through your own Google app (a one-time, 10-minute setup), so it works with your own Gmail
- Connect Telegram
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Gmail and Telegram steps into one automation
Under the hood
The code that runs this automation
from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials
from clickruntime import on_trigger, credentials, ai, http
CHAT_ID = "your-telegram-chat-id"
@on_trigger
def run(event):
gmail = build("gmail", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).users()
ids = gmail.messages().list(userId="me", q="label:newsletters newer_than:1d", maxResults=20).execute().get("messages", [])
items = []
for m in ids:
msg = gmail.messages().get(userId="me", id=m["id"], format="metadata", metadataHeaders=["Subject", "From"]).execute()
subject = next((h["value"] for h in msg["payload"]["headers"] if h["name"] == "Subject"), "")
items.append(f"{subject}: {msg['snippet'][:400]}")
bot = f"https://api.telegram.org/bot{credentials.secret('TELEGRAM_BOT_TOKEN')}"
if not items:
http.post(f"{bot}/sendMessage", json={"chat_id": CHAT_ID, "text": "No newsletters yesterday."})
return {"items": 0}
digest = ai.generate("Write a short morning digest, one line per item:\n" + "\n".join(items), max_output_tokens=600).text
http.post(f"{bot}/sendMessage", json={"chat_id": CHAT_ID, "text": digest})
audio = http.post("https://api.openai.com/v1/audio/speech", headers={"Authorization": f"Bearer {credentials.secret('OPENAI_API_KEY')}"},
json={"model": "tts-1", "voice": "alloy", "input": digest}).content
http.post(f"{bot}/sendAudio", data={"chat_id": CHAT_ID}, files={"audio": ("digest.mp3", audio)})
return {"items": len(items)}FAQ
Common questions
How does it know which emails are newsletters?
Can I choose text instead of audio?
What if there were no newsletters yesterday?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get new videos from your favourite YouTube channels with AI summaries
New videos from the channels you follow arrive on Telegram and by email, each with a short summary so you know which to watch.
See how it worksClear out old promotional emails every night
Old promotions that are truly junk move to trash each night, and you get a short Telegram report of what went.
See how it worksMonitor your sites and SSL certificates with Telegram alerts
Your websites are checked every 5 minutes and their certificates daily, and you hear on Telegram and by email when something is wrong.
See how it worksKeep exploring
Set up “Get a morning newsletter digest on Telegram” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.