Daily or weekly
Track websites and subreddits in Notion with a daily email
New posts and page changes from the sites and subreddits you watch are summarised into Notion, with highlights emailed to you.
- Runs
- Daily or weekly
- Apps
- Gmail, Notion
- AI
- Yes, uses the built-in AI allowance
- Access
- Notion insert; Gmail gmail.send
Send this to your assistant
Create a ClickRuntime automation: every day at 8, check these pages and subreddits for new content, summarise what's new into a Notion page and email me the highlights.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A founder of a niche product wants to know when customers discuss their category on Reddit, when a competitor changes their pricing page, or when an industry blog posts something relevant. Checking a dozen pages every morning takes time, and most days nothing important has changed.
Watching those sources automatically and writing up only what is new means the morning check takes two minutes. Notion keeps a dated archive of everything found, and the email gives you the few items worth acting on.
What you get out of it
Hear what customers say unprompted
Reddit threads show real complaints and wishes in plain words. Seeing them daily gives you product and marketing ideas you would not get from surveys.
Only new content is reported
Each source is compared with what was seen before, so you read about changes, not the same page every day. Quiet days produce a short email or none at all.
A research archive that builds itself
Every day's findings become a Notion page you can search, tag and share. Over months it becomes a useful record of how your market talks and moves.
Highlights you can act on
The email picks out the few items that matter, such as a pricing change or a thread asking for a tool like yours. You can reply or react the same morning.
How it works
What happens, step by step
Every morning, ClickRuntime checks each web page and subreddit on your list.
It compares what it finds with the last check and keeps only new posts and changed pages.
AI summarises the new content and picks out the highlights worth your attention.
A dated page with the full summary is created in your Notion database, and the highlights are emailed to you from Gmail.
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 Notion and share the database you want it to use
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 Notion steps into one automation
Under the hood
The code that runs this automation
import base64, hashlib
from email.message import EmailMessage
from bs4 import BeautifulSoup
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, ai, state
PAGES = ["https://contoso.example.com/pricing"]
SUBREDDITS = ["smallbusiness", "ecommerce"]
NOTION_DB, ME = "your-database-id", "you@example.com"
@on_trigger
def run(event):
seen, found = state.get("seen") or {}, []
for url in PAGES:
text = BeautifulSoup(http.get(url).text, "html.parser").get_text(" ", strip=True)
digest = hashlib.sha256(text.encode()).hexdigest()
if seen.get(url) not in (None, digest):
found.append(f"CHANGED {url}: {text[:3000]}")
seen[url] = digest
for sub in SUBREDDITS:
posts = http.get(f"https://www.reddit.com/r/{sub}/new.json?limit=25", headers={"User-Agent": "clickruntime-monitor"}).json()["data"]["children"]
for p in (x["data"] for x in posts if x["data"]["id"] not in seen.get(sub, [])):
found.append(f"r/{sub}: {p['title']} https://reddit.com{p['permalink']} {p.get('selftext', '')[:500]}")
seen[sub] = [x["data"]["id"] for x in posts]
state.set("seen", seen)
if not found:
return {"new": 0}
out = ai.generate("Summarise these new items, then list the top 3 highlights after 'HIGHLIGHTS:'.\n" + "\n".join(found), max_output_tokens=1200).text
nh = {"Authorization": f"Bearer {credentials.connection('notion', 'work')}", "Notion-Version": "2022-06-28"}
http.post("https://api.notion.com/v1/pages", headers=nh, json={"parent": {"database_id": NOTION_DB},
"properties": {"Name": {"title": [{"text": {"content": f"Monitor {event.scheduled_time or 'manual'}"}}]}},
"children": [{"paragraph": {"rich_text": [{"text": {"content": out[i:i + 1900]}}]}} for i in range(0, len(out), 1900)]})
mail = EmailMessage()
mail["To"], mail["Subject"] = ME, "Monitoring highlights"
mail.set_content(out.split("HIGHLIGHTS:")[-1].strip())
gmail = build("gmail", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
gmail.users().messages().send(userId="me", body={"raw": base64.urlsafe_b64encode(mail.as_bytes()).decode()}).execute()
return {"new": len(found)}FAQ
Common questions
Which subreddits and websites can it watch?
How does it tell what is new?
Can I search for keywords instead of whole subreddits?
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 a morning priorities email from Notion and Gmail
Every morning at 7 you get one email that combines your open Notion tasks and important unread Gmail, put in order by AI.
See how it worksSend client follow-up emails from Notion on schedule
Leads in Notion whose follow-up date is today get the right email from your Gmail, and Notion moves them to the next step.
See how it worksScore CVs from email against your Notion job profiles
Each job application that arrives by email is scored against the matching role in Notion, with the result saved and emailed to you.
See how it worksKeep exploring
Set up “Track websites and subreddits in Notion with a daily email” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.