top of page

How to Use JQL Functions for Better Project Tracking

The success of any project largely depends on how good tasks are identified, tracked, and resolved. This is where Jira could help you with the Jira Query Language (JQL).

JQL is to Jira what SQL is to databases - a way to fetch, filter, and manage data. However, if you are unfamiliar with JQL, it might initially seem a bit overwhelming.

In this blog post, I will present some of the most useful JQL to help you in day-to-day work. By using JQL to its fullest potential, you can take your project management to the next level.


When you start using JQL, there are basic terms and formats you need to know:

  1. Fields - Fields are the basic units of data that you can search against. For example: Assignee, Description, Summary, Issue Type, etc.

  2. Operators - Operators are used to compare the values of fields. For example: =, !=, <, >, <=, >=, ~ (contains), !~ (does not contain), IN, NOT IN, IS, and IS NOT.

  3. Values - Values are the actual data you are searching. For example: issue status, dates, numbers, text , etc.

  4. AND, OR, NOT - Those are logical operations to combine or negate conditions.

  5. ORDER BY - determines the order in which the search results are displayed.

In the example below, we are searching for the ''Blocked'' status issues under ''Project Fenix.'' We are evaluating the conditions by combining them using an AND logical operation. The search results will show issues in descending order of priority (from highest to lowest).

project = "Project Fenix" AND status = "Blocked" ORDER BY priority DESC

Issues Search & Tracking

These queries will help you track and search for different project dimensions, such as status, assignee, priority, or date range.

1. Finding all issues in a certain project that are not closed:

project = "Project Name" AND status != Closed

2. Finding all unassigned issues in a certain project:

assignee is EMPTY AND project = "Project Name"

3. Finding all issues in a specific project sorted by priority from highest to lowest:

project = "Project Name" ORDER BY priority DESC

4. Finding all issues reported by a specific user within the last week:

reporter = namesurname AND created >= -1w

5. Finding all issues in a specific project, of a certain issue type, that were created within a specific date range:

project = "Project Name" AND issuetype = Bug AND created >= "2023-01-01" AND created <= "2023-12-31"

6. Finding all issues that are linked to a specific issue:

issue in linkedIssues(ABC-123)

Risk Management

Following JQL will be useful to track blockers or potential delays.

1. Finding all unresolved issues in a certain project that are overdue:

project = "Project Name" AND resolution = Unresolved AND due < now()

2. Finding all high-priority issues in a specific project that are not yet resolved:

project = "Project Name" AND priority = High AND resolution = Unresolved

4. Finding all issues that are due within the next week, sorted by priority from highest to lowest:

due <= endOfWeek() ORDER BY priority DESC

5. Finding all high-priority issues that have a certain label and are not yet resolved, sorted by the due date:

labels in (label1, label2) AND priority = High AND resolution = Unresolved ORDER BY due ASC

Your knowledge and creativity are the only limits to the possibility of JQL. Over many years of experience with Jira, JQL has enormously helped me with board setups, automated prioritization, identifying blockers, and better backlog management.

Don't be afraid to experiment and customize JQL to your specific needs. Let JQL work for you!

64 views0 comments


bottom of page