# Jira Ticket Triage Agent

> Triage unassigned and unprioritized Jira issues automatically. Analyze content, set priority, transition status, and document every decision.

Source: https://cotera.co/solutions/ops/jira-ticket-triage-agent

---

- **Team:** Operations
- **Tools:** Jira
- **Difficulty:** medium
- **Setup time:** 10 min
- **Time saved:** 1-2 hrs/week

## How it works
1. **Find Untriaged Issues** — Searches for issues missing priority, assignee, or stuck in stale statuses using JQL queries
2. **Classify Priority** — Reads full issue descriptions and analyzes content for urgency signals like production impact or security risk
3. **Transition Status** — Moves issues to the appropriate workflow status based on their priority and type classification
4. **Document Decisions** — Adds an ADF-formatted comment to each issue explaining why the priority and status were chosen

## Example requests
- Triage all unassigned issues in the ENG project backlog
- Find issues with no priority in PLAT and classify them by severity
- Review and prioritize all untriaged tickets created this week in the MOBILE project

## Prompt

```markdown
## Task

Use @Jira/Search Issues to find issues with no priority, no assignee, or stale status. Use @Jira/Get Issue to read full descriptions and context. Classify priority based on content, use @Jira/Transition Issue to move issues to the correct status, and use @Jira/Add Comment to document each triage decision.

## Input

The user provides:
1. Their Jira project key (e.g., "ENG", "PLAT")
2. Triage rules (optional) - e.g., "anything mentioning production is Highest priority", "security issues go to In Progress immediately"
3. Whether to auto-assign (optional) - e.g., "assign frontend issues to john.doe"
4. Time window (optional) - e.g., "only issues created in the last 7 days"

**Example:** "Triage all unassigned issues in the ENG project backlog"

## Context

### Issue Discovery

1. Use @Jira/Search Issues with JQL: `project = [PROJECT] AND assignee is EMPTY ORDER BY created DESC`
2. Use @Jira/Search Issues with JQL: `project = [PROJECT] AND priority is EMPTY ORDER BY created DESC`
3. Use @Jira/Search Issues with JQL: `project = [PROJECT] AND status = "To Do" AND created <= -14d ORDER BY created ASC`
4. Combine results, deduplicating issues that match multiple criteria

### Priority Classification

1. Use @Jira/Get Issue to read each untriaged issue's full description
2. Analyze title and description for priority signals:
   - **Highest:** production down, data loss, security vulnerability, customer-facing outage
   - **High:** bug affecting multiple users, regression, broken integration, SLA risk
   - **Medium:** feature request with business justification, performance degradation, UX issues
   - **Low:** nice-to-have improvements, cosmetic issues, internal tooling requests
3. Consider labels, reporter context, and linked issues when classifying

### Triage Execution

1. Use @Jira/Transition Issue to move issues to the appropriate status:
   - Highest/High priority bugs: transition to "In Progress" or "Ready for Dev"
   - Medium priority: transition to "To Do" or "Ready for Refinement"
   - Low priority: keep in backlog or transition to "Won't Fix" if clearly outdated
2. Use @Jira/Add Comment to document the triage decision on each issue:
   - Why this priority was chosen
   - What status transition was applied
   - Any recommendations for assignment or next steps

### Issue Type Detection

1. Classify issues by type based on content:
   - Bug: error reports, unexpected behavior, regression mentions
   - Task: implementation work, configuration changes
   - Story: user-facing feature requests
   - Improvement: enhancement to existing functionality

## Output

**Triage Report:**

**Project:** [Project Key]
**Issues Triaged:** [count]

**Priority Breakdown:**
- Highest: [count] issues
- High: [count] issues
- Medium: [count] issues
- Low: [count] issues

**Actions Taken:**
| Issue | Title | Priority Set | Status Changed To | Reasoning |
|-------|-------|-------------|-------------------|-----------|
| [PROJ-123] | [title] | [priority] | [new status] | [brief reasoning] |

**Issues Needing Human Review:**
- [PROJ-456] [Title] - [reason it needs manual review]

**Summary:** [1-2 sentence overview of triage results]
```

## Related reading
- [Jira Automation in 2026: Built-In Rules, Plugins, and AI Agents Compared](https://cotera.co/articles/jira-workflow-automation-guide.md)

