On a schedule
Get a weekly report of finished work
Every Friday you get the issues completed that week, grouped by team, with a short summary.
- Runs
- On a schedule
- Apps
- Linear
- AI
- Yes, uses the built-in AI allowance
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every Friday at 4pm, email me the Linear issues completed this week, grouped by team, with a short summary of what got done.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Ask an engineering manager on Thursday what the team shipped this week, and the honest answer takes a while to assemble. Completed issues are spread across projects and cycles, and the stand-up memory of Monday's work has faded. The result is a Friday scramble through Linear tabs, or a weekly update to the rest of the company that undersells what was done.
Each Friday, ClickRuntime queries Linear for issues completed in the last seven days, groups them by project or team and passes them to its built-in AI, which writes a short readable summary. You receive it by email, ready to forward as a progress note or to paste into a newsletter.
It is aimed at managers who owe regular updates to leadership or customers. The result is ready to read before your Friday wrap-up meeting.
What you get out of it
Updates to leadership write themselves
A manager who would have spent forty-five minutes assembling a summary gets one instead. The time goes to the actual week-ahead plan, and the message is never skipped because the week was busy.
The team's work gets recognized
Engineers often ship quiet work that nobody sees, such as refactors and fixes. A weekly summary that lists it lets managers give credit where it is due. Recognition costs nothing and means a lot to a team.
Customers hear what changed
Support and account managers can use the summary to tell customers which problems were solved this week. It makes updates concrete without asking engineers to explain. That gives the customer-facing side something concrete to share.
Weekly records feed retrospectives
When the team looks back at a month, the four summaries are a ready-made timeline. It is easier to see trends in what was delivered than to reconstruct them from memory.
Plain language reaches non-engineers
The AI turns ticket titles into short sentences a product manager or executive can read. That makes the update understandable to people who do not use Linear. That makes the summary useful well beyond the engineering team.
How it works
What happens, step by step
Once a week, ClickRuntime collects every Linear issue that was completed in the last seven days.
It groups the finished issues by team.
AI reads the list and writes a short summary of what each team shipped.
You get an email with the number of issues completed and the summary, ready to forward to your team.
Before it runs live
- Connect Linear
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 Linear steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timedelta, timezone
from clickruntime import on_trigger, http, credentials, notify, ai
def linear(query, variables=None):
r = http.post(
"https://api.linear.app/graphql",
headers={"Authorization": credentials.secret("LINEAR_API_KEY")},
json={"query": query, "variables": variables or {}},
)
r.raise_for_status()
return r.json()["data"]
@on_trigger
def run(event):
since = (datetime.now(timezone.utc) - timedelta(days=7)).isoformat()
issues = linear("""query($since: DateTimeOrDuration!) {
issues(first: 250, filter: {completedAt: {gte: $since}}) {
nodes { identifier title team { name } } } }""", {"since": since})["issues"]["nodes"]
by_team = {}
for i in issues:
by_team.setdefault(i["team"]["name"], []).append(f"{i['identifier']} {i['title']}")
listing = "\n\n".join(f"{t}\n" + "\n".join(rows) for t, rows in by_team.items())
summary = ai.generate(f"Summarise what got done this week in 3 sentences:\n{listing}", max_output_tokens=200).text
notify.email_me(f"Completed this week: {len(issues)} issues", f"{summary}\n\n{listing}")
return {"completed": len(issues)}FAQ
Common questions
Which issues count as completed this week?
Can I get a version that lists every ticket without summarizing?
Is the summary accurate if ticket titles are vague?
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
See which open issues nobody has touched
Every Monday you get the open issues with no updates in 14 days, grouped by team and priority.
See how it worksMove issues that have stalled
Issues left in one status too long are moved back automatically, with a comment, and you get the list.
See how it worksGet warned before an issue breaches its SLA
You hear about issues a few hours before their SLA runs out, once per issue.
See how it worksKeep exploring
Set up “Get a weekly report of finished work” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.