Blog → Task trackers and processes

Bug Tracking: Workflow, Priorities and Fix SLAs

How to set up bug tracking in Plane or Jira: a Bug type with required fields, a short workflow, a severity and priority matrix, fix SLAs, intake from support and Sentry, and team metrics.

In short, in plain words
  • This article is about getting product errors (bugs) under control: how to file them, in what order and how fast to fix them.
  • It's for heads of IT departments, team leads, testers and product managers whose bugs get lost or are fixed without a system.
  • The main takeaway: it's not about the tool but about agreements. You need a separate task type for bugs, a short set of statuses, separate ratings for severity and urgency, and deadlines counted from bug confirmation.
  • First step: assign a person on duty who reviews new bugs every day, and send bugs without reproduction steps back to their authors.

New to the topic? Start with the basics: What Is a Task Tracker and How to Choose One for Your Team

Working bug tracking rests on four decisions. A separate Bug task type with required fields. A short workflow of seven statuses. Separating severity from priority. An SLA counted from bug confirmation rather than from the moment someone reported a problem. All of this can be configured in both Plane and Jira. The hard part isn’t the tool; it’s the agreements the team follows every day.

This article is for team leads, QA leads, product managers and heads of IT departments who want to get their bugs under control. Below: bug fields, statuses, a severity and priority matrix, an example SLA, intake from support and Sentry, metrics, common mistakes and a short setup outline for Plane and Jira.

The Bug task type: which fields you need

A bug shouldn’t be a regular task with a “bug” label. A separate type gives you its own set of fields, its own workflow and honest reporting. In Jira, this is the standard Bug issue type. In Plane, it’s a separate Work item type with its own properties.

Field When it’s filled in Why
Summary On creation Duplicate search and a readable list
Steps to reproduce On creation, required Without them, the bug isn’t taken into work
Expected and actual result On creation Separates a bug from a feature request
Environment and version On creation Browser, OS, app version, environment
Severity On creation, refined during triage How broken the product is
Source On creation Support, QA, Sentry, internal user
Priority During triage How quickly we fix it
Component or module During triage Who owns the code
Assignee and due date During triage Who, and by when
Fix version On closing Link to the release

The rule that saves the most time: a bug without steps to reproduce goes back to its author. Not “we’ll figure it out” — it goes back. After two or three weeks of this practice, the quality of bug reports improves noticeably.

Workflow: statuses from report to closure

A bug workflow is shorter than it seems. A working version:

  1. New — the bug has been filed, nobody has looked at it yet.
  2. Triage — the person on duty checks for duplicates, reproduces the bug, sets severity and priority.
  3. Confirmed — the bug has been reproduced, priority and due date assigned. The SLA clock starts here.
  4. In progress — a developer is fixing it.
  5. In review — code review and QA verification on a test environment.
  6. Ready for release — the fix is merged and waiting to be deployed.
  7. Closed — the fix is in production.

Two final outcomes without a fix: Duplicate, with a link to the main bug, and Cannot reproduce, with a comment on what exactly was checked. A separate “Deferred” status is better replaced by a priority and a due date: a deferred bug without a date will never come back.

Handle reopening as a transition from “Closed” back to “Confirmed,” not as a new bug. Then the reopen metric is calculated automatically.

How to run triage

Triage isn’t a meeting; it’s a specific person’s responsibility. Assign a person on duty for a week, rotating among developers or QA. Their job for each new bug:

  1. Look for duplicates by description and component. If one is found, close as “Duplicate” with a link.
  2. Reproduce it on the reported version. If that fails, ask the author for details or close as “Cannot reproduce.”
  3. Set severity and reach, and derive the priority from the matrix below.
  4. Assign the component, the assignee and a due date per the SLA.
  5. For P1, raise the alarm in the team channel right away, without waiting for someone to open the tracker.

For P1 and P2, triage is continuous; for the rest, one or two passes a day are enough. Once a week, the product owner reviews the decisions of the person on duty and changes priorities if needed. That way, responsibility for the decision stays with one person, and oversight with another.

Severity and priority: the matrix

Severity is a property of the bug itself. Priority is a team decision. They get confused when one field tries to answer both questions. For example, a typo on the home page has low severity but may get high priority before an ad campaign launches.

Four levels of severity:

  • S1 Critical — the product or a key feature is unavailable, data or money is lost, security is compromised.
  • S2 High — an important feature works incorrectly, and there is no workaround.
  • S3 Medium — a feature works with an error, and there is a workaround.
  • S4 Low — cosmetics, copy, inconvenience.

The triage matrix: severity in rows, reach in columns.

Severity ↓ / Reach → All or key clients Some users Isolated cases
S1 Critical P1 P1 P2
S2 High P1 P2 P3
S3 Medium P2 P3 P4
S4 Low P3 P4 P4

The matrix gives a default priority. The product owner can raise or lower it, but with a comment explaining why. That keeps contested decisions visible.

Fix SLAs: example starting targets

The numbers below are an example for a product team working business hours with on-call coverage for P1. They’re a reference point for a first version, not a standard. Adjust the timelines to your product, client contracts and the actual makeup of your team.

Priority Response (to confirmation) Fix Working hours Escalation
P1 Within an hour Same day, hotfix 24/7 on-call Immediately to team lead and manager
P2 Within a business day In the current sprint Business hours To team lead if the deadline is at risk
P3 Within two business days In the next two sprints Business hours At sprint planning
P4 At the weekly triage When possible Business hours Quarterly review

Three rules without which an SLA becomes decoration:

  • The fix SLA is counted from the “Confirmed” status, and the response time from the “New” status.
  • The due date is set during triage, manually or by automation if your tracker version supports it.
  • Overdue bugs are found with a saved filter — PQL in Plane, JQL in Jira — and shown on a dashboard the team sees every day.

Jira Service Management has full SLA timers. In Plane and in standard Jira, control is built on due dates, filters and dashboards. For most product teams, that’s enough.

Intake from support and Sentry

From support

Bugs from clients come in through support, and it’s important not to let raw requests go straight into the development backlog. The setup: one inbox queue, a person on triage duty, conversion to a bug only after review.

In Plane, the inbox queue is handled by Intake: requests and email forms land in a separate stream, from which they’re accepted into a project or declined. In Jira, this role is usually played by Jira Service Management. The connection is kept with links: the bug holds the ticket number, the ticket holds a link to the bug. Support replies to the client; developers don’t correspond with clients in task comments.

From Sentry

Sentry catches errors before users do, but if you create a task for every event, the tracker will drown within a week. Rules:

  • A task is created per Sentry issue, not per event.
  • Automatically only after a threshold: frequency, number of affected users, a new error in a fresh release.
  • Everything else is reviewed manually by the person on duty once a day.
  • The task stores a link to the Sentry issue, and severity is set by a human.

Plane has a native Sentry integration. For Jira, the connection is set up via the integration on the Sentry side, Jira Automation or webhooks. Check which option is available for your version and plan.

Kazakhstan context. Many clients report problems in WhatsApp, with voice messages and screenshots, in Russian or Kazakh. Support needs a template for turning such a message into a bug with steps to reproduce, rather than forwarding it to a developer as is. The second point is personal data: screenshots from user accounts, phone numbers and IINs (individual identification numbers) in descriptions, user data in Sentry events. Mask them before filing the bug. If you can’t do without them and it matters that they’re stored in Kazakhstan, keep the tracker and error monitoring in a self-hosted environment on a server in Kazakhstan.

Bug tracking metrics

There are only a few metrics, and all of them are calculated from statuses if the workflow is set up honestly:

  • Time to confirmation — from “New” to “Confirmed.” Shows whether triage works.
  • Time to fix by priority — from “Confirmed” to “Closed.”
  • SLA breach rate — separately for each priority.
  • Reopened bug rate — a sign of rushed fixes or weak verification.
  • Share of bugs from production — how many bugs were found by users and Sentry rather than QA.
  • Age of the open backlog — how many bugs have been open for more than a quarter.

In Plane, metrics are collected on Dashboards from saved views; in Jira, on dashboards based on JQL. Review them as trends, weekly or once per sprint. A single number without a trend tells you nothing.

Common mistakes

  • One “Priority” field instead of two. Everything becomes “high,” and priority stops meaning anything.
  • Bugs live in the general backlog without a separate type. A quality report is impossible to put together.
  • An SLA without a person on duty. If nobody is responsible for triage, deadlines are missed from day one.
  • Auto-creating tasks from Sentry without a threshold. The tracker fills up with noise, and important errors get lost.
  • A 15-status workflow. People stop moving tasks, and the statuses lie.
  • Bugs are closed on merge, not on deployment. The client still sees the error, but in the tracker it’s “closed.”
  • No regular cleanup. Nobody reads a backlog of hundreds of bugs older than a year. Once a quarter, they’re either re-confirmed or closed.

Setup in Plane and Jira

Element Plane Jira
Bug type Work item type with its own properties Standard Bug type and fields
Statuses Configured per project Workflow and workflow scheme
Inbox queue Intake, email forms Jira Service Management
Filters and SLA tracking PQL, Views JQL, filters
Automation Automations, Runner Jira Automation
Reporting Dashboards Dashboards
Release linkage Releases, Cycles Versions, sprints
Errors from code Sentry integration Integration via Sentry, Automation or webhooks

If your tracker already has rules that move tasks and notify the people on duty, it’s worth working out where a simple rule is enough and where you need a script. We cover that in Task tracker automation: rules, scripts or AI agents. And if bugs are just one of your team’s streams alongside requests and incidents, see our breakdown of a task tracker for an IT department.

How we do it

We start with a diagnostic: we look at where bugs live now, who files them, how many statuses and fields are actually used and where deadlines slip. Then we set up the Bug type, workflow, matrix and SLA with one product team, connect support and Sentry, and collect metrics for two to three weeks. Once the setup has taken hold, we roll it out to the other teams and hand the process owner a triage guideline.

How the process works and what the result includes is described on our Jira and Plane task tracker implementation page.


Sources. Plane: GitHub repository and pricing. Jira: Atlassian pricing and plans.

Terms in plain words

SLA (Service Level Agreement)
An agreement on timelines: how quickly the team responds to a bug and how quickly it fixes it. Here the timelines depend on priority and are counted from bug confirmation.
Workflow
The sequence of statuses a bug goes through, from 'New' to 'Closed'. People actually follow a short workflow; they stop updating a long one.
Triage
Initial review of a new bug: duplicate check, reproduction, severity and priority assessment. It's run by an assigned person on duty, not by a meeting.
Severity and priority
Severity shows how badly a bug breaks the product. Priority shows how quickly it will be fixed, given business needs. These are two separate fields and shouldn't be mixed.
Sentry
A service that automatically catches errors in a running product and collects them into a list. It often notices a problem before users write to support.
Hotfix
An urgent fix shipped separately, without waiting for a scheduled release. It's used for the most critical bugs.
Production
The live version of the product that customers use, as opposed to test environments. A bug counts as closed only when the fix has reached it.
JQL and PQL
Query languages in Jira and Plane for finding tasks by conditions. They're used to save filters, such as 'overdue bugs', and show them on a dashboard.

FAQ

Quick answers

How is bug severity different from priority?

Severity describes how badly a bug breaks the product, from a service outage to a typo. Priority describes how quickly the team will fix it, given the business, the number of affected users and plans. Severity is set by whoever reproduced the bug; priority is set by the product owner or the person on triage duty.

Which fields are required when filing a bug?

The minimum set: a short summary, steps to reproduce, expected and actual result, environment and version, severity and the bug's source. Priority, assignee and due date are filled in during triage. If the steps to reproduce are missing, the bug goes back to its author.

What SLA should you set for fixing critical bugs?

There is no universal number; it depends on the product, client contracts and on-call staffing. Start with target response and fix times for each priority, count them from bug confirmation and revisit them quarterly based on actual data. An SLA the team constantly breaks is worse than an honest, longer one.

Which statuses does a bug workflow need?

Seven are usually enough: New, Triage, Confirmed, In progress, In review, Ready for release and Closed. You also need two final outcomes without a fix: Duplicate and Cannot reproduce. More statuses almost always means the workflow describes exceptions rather than the process.

How do you connect Sentry to a task tracker?

Plane has a Sentry integration; in Jira, the connection is set up via the integration on the Sentry side, Jira Automation or webhooks. The main rule: a task is created per issue, not per event, and only after a frequency or affected-user threshold. The link to the Sentry issue is stored in the task.

How should you take in bugs from support and clients?

Requests are collected in a single inbox queue: in Plane it's Intake with email forms, in Jira it's Jira Service Management. The person on triage duty checks for duplicates, reproduces the issue and converts the request into a bug with the fields filled in. The client gets a reply from support, not from the tracker.

Which bug tracking metrics should a manager watch?

Time to confirmation, time to fix by priority, SLA breach rate, reopened bug rate, the share of bugs found in production and the age of the open backlog. They should be reviewed as trends, weekly or once per sprint, not as a one-off report.

Related services

How Gotomarket helps with this

01

Jira and Plane task tracker implementation in Kazakhstan

Jira, Plane and other task tracker implementation in Kazakhstan: process audit, workflow design, Jira-to-Plane migration, self-hosting on local servers, team training.

About the service
02

Twenty CRM and amoCRM implementation in Kazakhstan

Twenty CRM and amoCRM implementation for IT and B2B companies in Kazakhstan: pipeline, import, self-hosting on local servers, integrations, Plane, Jira and AI.

About the service
03

Business automation and AI in Kazakhstan

Business automation in Kazakhstan: Jira and Plane task trackers, CRM implementation, integrations, AI website bots, employee assistants, Chat with Data and support automation.

About the service

More on the topic

All posts in this section