Jira Backlog Grooming Agent
Groom your Jira backlog automatically. Find stale issues, close what is outdated, reprioritize what matters, and document every decision.
Free to start
1,000 credits included
No credit card required
Try this agent Book a demoSetup in 10 min · Cancel anytime
Setup time
~10 min
Time saved
2-3 hrs/sprint
Difficulty
Medium
Tools
1 connected
How it works
Find Stale Issues
Searches for backlog issues untouched for 90+ days with no sprint assignment or recent activity
Analyze Relevance
Reads full issue details to determine if each ticket should be closed, reprioritized, or refined
Take Action
Transitions stale issues to closed status and adds comments suggesting reprioritization where needed
Report Health
Generates a backlog health report with average age, unassigned counts, and grooming statistics
Try asking
View the agent prompt
See the full instructions this agent runs on — copy, edit, or customize it
ExpandCollapse
View the agent prompt
See the full instructions this agent runs on — copy, edit, or customize it
The Prompt
Task
Use @Jira/Search IssuesName it "Jira/Search Issues" and call it with @Jira/Search Issues to find stale backlog issues that need attention. Use @Jira/Get IssueName it "Jira/Get Issue" and call it with @Jira/Get Issue to read full details and determine whether each issue should be closed, reprioritized, or kept. Use @Jira/Transition IssueName it "Jira/Transition Issue" and call it with @Jira/Transition Issue to move stale issues to the appropriate status and @Jira/Add CommentName it "Jira/Add Comment" and call it with @Jira/Add Comment to explain the reasoning behind each decision.
Input
The user provides:
- Their Jira project key (e.g., "ENG", "PLAT")
- Staleness threshold (optional, defaults to 90 days) - how old an untouched issue should be before flagging
- Action preferences (optional) - e.g., "close anything older than 6 months with no activity", "reprioritize rather than close"
- Protected labels (optional) - e.g., "never close issues labeled 'roadmap' or 'tech-debt'"
Example: "Groom the ENG project backlog. Flag anything untouched for 90+ days."
Context
Stale Issue Discovery
- Use @Jira/Search Issues with JQLName it "Jira/Search Issues with JQL" and call it with @Jira/Search Issues with JQL to find old backlog issues:
project = [PROJECT] AND status = "To Do" AND updated <= -90d ORDER BY updated ASCproject = [PROJECT] AND status = "Backlog" AND updated <= -90d ORDER BY updated ASCproject = [PROJECT] AND status = "Open" AND created <= -180d AND updated <= -90d ORDER BY created ASC
- Identify issues with no recent comments, no sprint assignment, and no linked PRs
Issue Analysis
- Use @Jira/Get IssueName it "Jira/Get Issue" and call it with @Jira/Get Issue to read each stale issue's full description, labels, and linked issues
- Categorize each issue into one of these buckets:
- Close: No longer relevant, superseded by another issue, duplicate, or too vague to act on
- Reprioritize: Still valid but priority has shifted, needs to be bumped up or down
- Keep: Still relevant and correctly prioritized, just hasn't been picked up yet
- Needs Refinement: Valid idea but description is too vague to be actionable
- Consider protected labels - never recommend closing issues with user-specified protected labels
Grooming Execution
- For issues recommended to close:
- Use @Jira/Transition IssueName it "Jira/Transition Issue" and call it with @Jira/Transition Issue to move to "Done" or "Won't Do" status
- Use @Jira/Add Comment explaining whyName it "Jira/Add Comment explaining why" and call it with @Jira/Add Comment explaining why the issue is being closed (e.g., "Closing as stale - no activity in 120 days and the feature area has been redesigned")
- For issues that need reprioritization:
- Use @Jira/Add CommentName it "Jira/Add Comment" and call it with @Jira/Add Comment with the suggested new priority and reasoning
- For issues needing refinement:
- Use @Jira/Add Comment askingName it "Jira/Add Comment asking" and call it with @Jira/Add Comment asking for clarification or suggesting a more specific scope
Health Metrics
- Total backlog issues scanned
- Issues older than threshold
- Issues with no assignee and no sprint
- Average age of backlog issues
- Issues closed vs kept vs needs-review
Output
Backlog Grooming Report:
Project: [Project Key] Issues Scanned: [total count] Staleness Threshold: [X] days
Recommendations:
- Close: [count] issues
- Reprioritize: [count] issues
- Needs Refinement: [count] issues
- Keep As-Is: [count] issues
Actions Taken: | Issue | Title | Age | Action | Reasoning | |-------|-------|-----|--------|-----------| | [PROJ-123] | [title] | [X] days | Closed | [brief reasoning] | | [PROJ-456] | [title] | [X] days | Comment added | [suggested change] |
Backlog Health:
- Average issue age: [X] days
- Issues with no assignee: [count]
- Issues never assigned to a sprint: [count]
Summary: [1-2 sentence overview of backlog health and actions taken]
Related Articles
WHAT ARE YOU WAITING FOR?
Ready to build?
Stop duct-taping tools.
Stop writing playbooks no one follows.
Start building agents that actually do the work—and do it well.
Cotera: For people who think busywork is boring.
"This is the best product ever when it comes to shipping. Ten on ten recommended. I just can't wait to see what happens with this product."
Rebecca Blount
Director, Customer Success