Daily
Get a sourced news digest on your topics every morning
Every morning a short newsletter on your chosen topics arrives in your inbox, with each story linked to its source.
- Runs
- Daily
- Apps
- Gmail, Perplexity
- AI
- Not needed
- Access
- Perplexity key; gmail.send
Send this to your assistant
Create a ClickRuntime automation: every day at 7am, ask Perplexity for the top news on AI and on logistics from the last 24 hours, format it with sources and email it to me from my Gmail.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Staying informed across two or three topics means reading several newsletters that overlap and miss things, or checking news sites that bury what matters to you under what matters to everyone.
Executives, analysts and founders use it to get one short briefing on exactly their topics, with links to check anything before acting on it.
What you get out of it
One email, your topics
Each topic gets its own short section, so one email replaces several newsletters.
Every claim linked
Sources are listed under each section so you can read the original.
No repeats
Stories already sent in earlier digests are left out.
Delivered on your schedule
It arrives at the time you choose, ready for your first look at the inbox.
How it works
What happens, step by step
Every morning at the time you choose, ClickRuntime asks Perplexity for the main news on each of your topics from the last day.
Stories whose links were already sent in earlier digests are left out.
Each topic gets a short section with its sources listed underneath.
The digest is sent to you from your Gmail address.
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 Perplexity
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
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Gmail and Perplexity steps into one automation
Under the hood
The code that runs this automation
import base64
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, state
TOPICS, ME = ["AI", "logistics and freight"], "me@example.com"
def sonar(prompt):
r = http.post("https://api.perplexity.ai/chat/completions", headers={"Authorization": f"Bearer {credentials.secret('PERPLEXITY_API_KEY')}"},
json={"model": "sonar", "messages": [{"role": "user", "content": prompt}]}, timeout=90).json()
return r["choices"][0]["message"]["content"], [s["url"] for s in r.get("search_results", [])]
def send(to, subject, body):
raw = f"To: {to}\r\nSubject: {subject}\r\nContent-Type: text/plain; charset=utf-8\r\n\r\n{body}"
build("gmail", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).users() \
.messages().send(userId="me", body={"raw": base64.urlsafe_b64encode(raw.encode()).decode()}).execute()
@on_trigger
def run(event):
seen, sections = set(state.get("seen") or []), []
for topic in TOPICS:
text, links = sonar(f"Top news about {topic} from the last 24 hours. Up to five short bullets.")
new = [l for l in links if l not in seen]
sections += [f"## {topic}\n{text}\nSources:\n" + "\n".join(new)] if new else []
seen |= set(new)
if not sections:
return {"sent": False}
send(ME, "Your morning briefing", "\n\n".join(sections))
state.set("seen", sorted(seen)[-2000:])
return {"sections": len(sections)}FAQ
Common questions
How many topics can I include?
Can I send it to my team?
How are repeats avoided?
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 researched LinkedIn draft in your inbox every Monday
Every Monday a trending topic in your field is researched and a LinkedIn post draft arrives in your inbox for you to edit and post.
See how it worksGet a one-page brief on every new lead
When a new lead comes in, Perplexity researches the company and you get a one-page brief by email before you reach out.
See how it worksSend new sign-ups a welcome email that mentions their company
Each new sign-up gets a welcome email from your Gmail that refers to their company and how they might use your product.
See how it worksKeep exploring
Set up “Get a sourced news digest on your topics every morning” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.