Collects as they arrive, acts daily
Get all project updates in one weekly email
Once a week you get every project update and each project's health in a single summary.
- Runs
- Collects as they arrive, acts daily
- Apps
- Linear
- AI
- Yes, uses the built-in AI allowance
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: collect Linear project updates as they're posted, and every Friday at 4pm email me a summary per project with its latest health.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A head of product or an executive sponsor who oversees six or eight Linear projects cannot read every project update as it is posted. The updates are valuable, with their on track, at risk or off track health markers, but they are scattered across projects and appear at random times. Leadership ends up asking for status in meetings, which costs the people doing the work time they would rather use for building.
ClickRuntime stores each project update as it arrives. On Friday it asks its built-in AI to write a short summary for each project, noting its health and the main points, and emails you one digest covering all of them. The stored updates are then cleared, so next week's digest starts fresh.
It is useful for program managers, directors and sponsors who need an overview without joining every check-in.
What you get out of it
Status meetings can shrink
When leadership has read a clear summary of every project, the meeting can focus on blockers and decisions. Fewer people spend an hour listening to progress they could have read in five minutes.
At-risk projects are not buried
The digest shows project health beside each summary. A project that slipped to off track gets noticed in the same read as the ones that are fine, instead of hiding in a feed.
Project leads write once
Leads already post updates in Linear. Because the digest reuses those posts, nobody has to write a separate status report for managers or stakeholders. That removes a duplicate task from the project lead's week.
Weekly rhythm builds accountability
An email that goes out every Friday encourages teams to post their updates before then. Projects that go quiet become visible when their section is empty. Silence becomes a signal instead of a blind spot.
Stakeholders outside engineering stay informed
Sales, support and finance often want to know when a feature will ship. A readable summary written in plain language answers that without exposing them to the details of tickets.
How it works
What happens, step by step
Whenever someone posts a project update in Linear, ClickRuntime saves it.
On Friday, AI reads the week's updates and writes a short summary for each project, including its health, such as on track or at risk.
You get one email with every project summarised in a line or two.
The saved updates are then cleared, ready for next week.
Before it runs live
- Connect Linear
- Paste your automation's link into the other app's webhook settings
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
- Act only on the items that match your own rules, and skip the rest
- 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 Linear steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, on_trigger, state, ai, notify
@on_event
def collect(event):
body = event.json or {}
if body.get("type") != "ProjectUpdate":
return {"stored": False}
u = body.get("data", {})
updates = state.get("updates") or []
updates.append({"project": (u.get("project") or {}).get("name"), "health": u.get("health"), "body": (u.get("body") or "")[:1500]})
state.set("updates", updates)
return {"stored": True}
@on_trigger
def digest(event):
updates = state.get("updates") or []
if not updates:
return {"projects": 0}
text = "\n\n".join(f"{u['project']} ({u['health']}): {u['body']}" for u in updates)
summary = ai.generate(f"Summarise each project in 2 lines, ending with its latest health:\n{text}", max_output_tokens=600).text
notify.email_me("Project updates this week", summary)
state.set("updates", [])
return {"updates": len(updates)}FAQ
Common questions
What if a project has no update that week?
How does the AI decide what goes in the summary?
Can the digest go to a Slack channel instead of email?
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 weekly report of finished work
Every Friday you get the issues completed that week, grouped by team, with a short summary.
See how it worksRoute new bugs to the right team
New issues in Triage get a team, label and priority, and you get a note explaining each choice.
See how it worksSpot frustrated comments on customer issues
When a comment on a customer issue sounds frustrated, you hear about it before it escalates.
See how it worksKeep exploring
Set up “Get all project updates in one weekly email” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.