Hourly
Get a lessons-learned write-up when an epic is done
When an epic is marked Done, you get a summary of how it went, built from its child issues and comments.
- Runs
- Hourly
- Apps
- Jira
- AI
- Yes, uses the built-in AI allowance
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: when an epic in project ABC is marked Done, gather its child issues and comments and email me a lessons-learned summary: what went well, what slipped and why.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A Jira epic for a new billing flow wraps up after three months. Forty child issues were completed, a few were descoped, and a couple of surprises cost a sprint. The team means to hold a retrospective, but the next project starts immediately. The history sits in dozens of tickets, and the people who remember why choices were made have moved on to other work, so the next epic repeats the same mistakes.
Every hour, ClickRuntime checks Jira for epics that have just moved to Done. For each, it fetches the child issues and has built-in AI write a summary of what was delivered, what was cut or delayed, and what appears to have caused trouble. It emails the write-up to you.
Engineering managers and product owners who want a record of each large piece of work will find it handy.
What you get out of it
Lessons are captured while memory is fresh
A write-up produced the day an epic closes catches details people will forget in a month. The reasons for scope cuts and delays are recorded before the team moves on.
Retrospectives start with a draft
Instead of a blank whiteboard, the team begins with a summary of what happened. Conversation goes into what to do differently, not into reconstructing a timeline from ticket histories. The meeting then produces actions instead of a long recital of events.
Future estimates improve
Reading how earlier epics ran over, and why, gives planners realistic numbers for similar work. Over several epics, patterns such as underestimated integrations become clear and fixable. That makes the next quarter's plan more credible to the people who have to fund it.
New team members get context
Someone joining the project later can read the write-ups to learn what was built and what went wrong. That is faster than interviewing colleagues or digging through old tickets. It also saves the original team from answering the same background questions repeatedly.
Stakeholders see what was delivered
Executives and customer-facing teams can read a plain summary of what shipped from an epic, with the tickets listed. They avoid asking engineers to explain it in a meeting. Nobody needs to schedule a walkthrough just to find out what a finished epic delivered.
How it works
What happens, step by step
Every hour, ClickRuntime checks Jira for epics that have just been marked Done.
For each one, it collects the epic's child issues and their comments.
AI writes a short lessons-learned summary covering what went well and what slipped.
The write-up is emailed to you.
Before it runs live
- Connect Jira
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 Jira steps into one automation
Under the hood
The code that runs this automation
import json
from clickruntime import on_trigger, credentials, http, ai, state, notify, report_fetched
JIRA = "https://api.atlassian.com/ex/jira/your-cloud-id"
def jira(method, path, **kw):
resp = http.request(method, JIRA + path, headers={
"Authorization": f"Bearer {credentials.connection('jira', 'work')}", "Accept": "application/json"}, **kw)
resp.raise_for_status()
return resp.json() if resp.content else None
def search(jql, fields, limit=100):
return jira("POST", "/rest/api/3/search/jql", json={"jql": jql, "fields": fields, "maxResults": limit})["issues"]
@on_trigger
def run(event):
epics = search("project = ABC AND issuetype = Epic AND status changed to Done AFTER -7d", ["summary"], 20)
done = set(state.get("done") or [])
new = [e for e in epics if e["key"] not in done]
report_fetched(len(new))
if not new:
return {"reports": 0}
for epic in new:
children = search(f"parent = {epic['key']}", ["summary", "status", "created", "resolutiondate", "comment"], 100)
lines = []
for c in children:
comments = [json.dumps(cm["body"])[:300] for cm in c["fields"]["comment"]["comments"][-3:]]
lines.append(f"{c['key']} {c['fields']['summary']} | {c['fields']['status']['name']} | "
f"{c['fields']['created'][:10]} → {(c['fields'].get('resolutiondate') or '')[:10]} | {' / '.join(comments)}")
report = ai.generate("\n".join(lines)[:15000], max_output_tokens=600,
system="Write a blameless lessons-learned summary for this epic: what went well, what slipped and why.").text
notify.email_me(f"Lessons learned: {epic['key']} {epic['fields']['summary']}", report)
done.add(epic["key"])
state.set("done", sorted(done))
return {"reports": len(new)}FAQ
Common questions
How does the AI know what went wrong on the epic?
What counts as an epic being done?
Will it write up the same epic twice?
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
Triage new Jira tickets as they come in
New tickets get labels and a priority, and the reporter is asked for anything missing, like steps to reproduce.
See how it worksEmail release notes when a Jira version is released
When a version is released, you get readable release notes built from its resolved issues.
See how it worksGet a sprint report when a sprint closes
When a sprint ends you see the completion rate, what got done and what carried over, by person.
See how it worksKeep exploring
Set up “Get a lessons-learned write-up when an epic is done” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.