Daily
Send a daily topic digest to subscribers in an Excel list
Each subscriber in your Excel list gets a daily email digest of news on the topics they chose, sent from your Outlook.
- Runs
- Daily
- Apps
- Microsoft Excel, Outlook
- AI
- Yes, uses the built-in AI allowance
- Access
- Files.Read, Mail.Send
Send this to your assistant
Create a ClickRuntime automation: every morning at 7am, read my Subscribers table in Excel. For each topic, fetch the latest headlines from my RSS feeds, write a short digest with AI, and email each subscriber the digests for their topics from my Outlook.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A trade association sends members a daily news round-up on the topics they care about: regulation, prices, technology. A staff member reads the news, writes the round-ups and sends them to each group. It takes most of the morning.
Writing one digest per topic and sending each member the topics they chose keeps the service going in a fraction of the time, with the member list kept in Excel as before.
What you get out of it
Each member gets what they asked for
Subscribers get only the topics listed against their name.
Hours saved every day
One digest per topic is written automatically and reused for everyone who follows it.
The list stays in Excel
Adding or removing a subscriber is a change to the table, nothing more.
Sent from your own address
Members reply to you as usual.
How it works
What happens, step by step
Every morning, ClickRuntime reads the subscribers and their chosen topics from your Excel table.
For each topic, it collects the latest headlines from your RSS feeds.
AI writes a short digest for each topic.
Each subscriber is emailed the digests for their topics from your Outlook address.
Before it runs live
- Connect Microsoft Excel
- Connect Outlook
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 Microsoft Excel and Outlook steps into one automation
Under the hood
The code that runs this automation
import feedparser
from clickruntime import on_trigger, http, credentials, ai
def graph(method, path, **kw):
r = http.request(method, "https://graph.microsoft.com/v1.0" + path, headers={"Authorization": f"Bearer {credentials.connection('microsoft', 'work')}"}, **kw)
return r.raise_for_status() or (r.json() if r.content else None)
def send_mail(to, subject, text):
graph("POST", "/me/sendMail", json={"message": {"subject": subject, "body": {"contentType": "Text", "content": text},
"toRecipients": [{"emailAddress": {"address": a}} for a in to.split(",")]}})
BOOK = "/me/drive/items/your-workbook-id/workbook"
FEEDS = {"regulation": "https://www.example.gov/news.rss", "prices": "https://www.example.com/markets/feed"}
@on_trigger
def run(event):
rows = [r["values"][0] for r in graph("GET", f"{BOOK}/tables/Subscribers/rows")["value"]]
digests = {}
for topic, url in FEEDS.items():
entries = feedparser.parse(http.get(url).content).entries[:15]
if entries:
digests[topic] = ai.generate("\n".join(f"{e.title} {e.link}" for e in entries), system=f"Write a 5-bullet digest of today's {topic} news, "
"each with its link.", max_output_tokens=400).text
sent = 0
for name, email, topics in rows:
parts = [f"{t.strip().title()}\n{digests[t.strip()]}" for t in str(topics).split(",") if t.strip() in digests]
if parts:
send_mail(email, "Your daily briefing", f"Hi {str(name).split()[0]},\n\n" + "\n\n".join(parts))
sent += 1
return {"sent": sent}FAQ
Common questions
How do subscribers choose topics?
Where does the news come from?
How many subscribers can it handle?
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
Add emailed invoices to your Excel register
Invoices emailed to you are read, added as rows in your Excel invoice register, and the PDF is saved to OneDrive.
See how it worksTurn emailed PDF timesheets into rows in Excel
PDF timesheets emailed in by contractors are read and their hours added to your Excel timesheet table, and you are told about any that can't be read.
See how it worksFlag and summarise emails from your VIP list
Emails from anyone on your Excel VIP list are flagged in Outlook and you get a short summary of each, so important messages never wait.
See how it worksKeep exploring
Set up “Send a daily topic digest to subscribers in an Excel list” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.