Skip to content

Every 10 minutes

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.

Runs
Every 10 minutes
Apps
Jira
AI
Yes, uses the built-in AI allowance
Access
read+write (Edit issues, Add comments)

Send this to your assistant

Create a ClickRuntime automation: every 10 minutes, check new issues in project SUP, set labels and priority, and comment asking for steps to reproduce when they're missing.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A busy Jira project receives thirty tickets a day from support, sales and engineers. Many arrive with no labels, the wrong priority, or a description like "it's broken" with no steps to reproduce. Someone has to read each one, work out what it is about, set the fields, and ask for missing details, so the backlog fills with ambiguous items and triage meetings turn into a guessing session about what a ticket actually means.

Every 10 minutes, ClickRuntime finds issues created since its last run and has built-in AI classify each one and rate how complete its description is. It then updates labels and priority, suggests an assignee, and, when information is missing, adds a comment asking the reporter for exactly what is needed.

Teams with a steady flow of incoming tickets and a triage rota will notice the difference most.

What you get out of it

  • Tickets are usable on arrival

    Labels, priority and a suggested owner are in place within minutes of creation. The developer who picks one up spends time on the problem, not on working out what the ticket is about.

  • Reporters get immediate follow-up

    A comment asking for reproduction steps or a screenshot arrives while the reporter still remembers the problem. Waiting a week for someone to ask means the details are forgotten and the ticket stalls.

  • Triage meetings get shorter

    With most tickets already categorized and the incomplete ones flagged, the weekly meeting only discusses the difficult cases. Teams recover time that used to go toward sorting the obvious. Meeting time goes to the hard decisions that actually need several opinions.

  • Priority is applied consistently

    Different people judge urgency differently, and mislabeled tickets distort the backlog. A single set of criteria applied to every ticket makes the priority field reflect actual impact more reliably. That consistency makes filtering and reporting by priority far more dependable.

  • Backlog quality improves over time

    When reporters learn that vague tickets get questions back, they write better ones. Over months, the standard of incoming requests rises, and developers face less ambiguity. The result is a backlog that is easier to plan from for everyone on the team.

How it works

What happens, step by step

  1. Every 10 minutes, the automation picks up Jira tickets created since the last check.

  2. AI reads each ticket, chooses labels and a priority, and checks whether key details are missing.

  3. The labels and priority are set on the ticket.

  4. If something is missing, like steps to reproduce, a comment asks the reporter for it.

Before it runs live

  • Connect Jira

What you get

RunsEvery 10 minutes
Triage new Jira tickets as they come intoday, 9:00Succeeded
Jira · SUP-1287Labels: export, reports · Priority: High · comment asking for steps to reproduce

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
ai_triage_and_quality_check_of_new_tickets.pyexample
from clickruntime import on_trigger, credentials, http, ai, state, 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"]

def adf(text):
    return {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": text}]}]}

SCHEMA = {"type": "object", "properties": {
    "labels": {"type": "array", "items": {"type": "string"}},
    "priority": {"enum": ["Highest", "High", "Medium", "Low"]}, "has_repro_steps": {"type": "boolean"}}}

@on_trigger
def run(event):
    last = state.get("last_id") or 0
    issues = [i for i in search("project = SUP AND created >= -1d ORDER BY created ASC", ["summary", "description"])
              if int(i["id"]) > last]
    report_fetched(len(issues))
    if not issues:
        return {"triaged": 0}
    for i in issues:
        out = ai.generate(f"{i['fields']['summary']}\n{str(i['fields'].get('description') or '')[:3000]}",
                          system="Suggest 1-3 short labels and a priority, and say whether steps to reproduce are included.",
                          json_schema=SCHEMA, max_output_tokens=80).json
        jira("PUT", f"/rest/api/3/issue/{i['key']}", json={"fields": {
            "labels": [l.replace(" ", "-") for l in out["labels"]], "priority": {"name": out["priority"]}}})
        if not out["has_repro_steps"]:
            jira("POST", f"/rest/api/3/issue/{i['key']}/comment", json={"body": adf(
                "Thanks for the report. Could you add the steps to reproduce, what you expected, and what happened instead?")})
    state.set("last_id", max(int(i["id"]) for i in issues))
    return {"triaged": len(issues)}

FAQ

Common questions

Will the AI change fields I already set myself?
You can tell it to fill only empty fields and leave anything a person already chose. That is the safest setup, since a reporter's own priority is respected and the automation fills in the gaps rather than overriding people.
How does it judge whether a ticket is missing information?
It reads the summary and description and compares them with what you consider necessary, such as steps to reproduce, expected result and environment for bugs. You describe your standard once, and the comment it adds names the specific items that are absent.
Does the assignee suggestion actually assign the ticket?
By default it records a suggestion, for example in a comment, and leaves the assignee field alone. If you want it to assign directly, for example by component owner, say so. Many teams prefer a human to confirm the assignment.
What permissions does it need?
read+write (Edit issues, Add comments). Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Triage new Jira tickets as they come in” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.