Man Configure Blue 2

Top 10 Most Useful JQL Functions

January 5, 2024
Josh Costella, Principal Architect

Welcome to the world of Jira, Atlassian's crown jewel in project management. It's like having a digital version of a Swiss Army knife for managing tasks, only cooler. At the heart of Jira's superpowers is the Jira Query Language (JQL). JQL is Jira’s secret sauce for tackling the mammoth tasks of data navigation and issue tracking. 

In the complex world of project management, Jira users often find themselves navigating a sea of data, where every task, ticket, and timeline tells a part of their project's story. The challenge, however, lies in capturing high-value data and converting it into meaningful insights. 

Knowing how to select the right filters and generate informative reports about how a project contributes to big-picture strategy is a challenge, especially without a deep understanding of JQL. This lack of working knowledge of JQL can lead to a domino effect of inefficiencies, bogging down even the most seasoned project management teams.

In this article, we share the top 10 most used JQL functions that will improve your Jira experience, boost productivity, and drive efficiency.

Making Sense of Complex Data

The search box found in Jira is possibly a little misleading to the untrained eye, in that it doesn’t function the same way many users might expect it to. Search queries can be made using what Jira calls ‘basic’ search, but if you need to isolate a collection of issues with many different attributes, JQL and its syntax are the way to make it happen.

This is Jira Basic Search:

Screenshot 2024-01-05 at 11.25.20 AM

Here's a query using JQL that looks for all open issues in the "It Operations" project:

Screenshot 2024-01-05 at 11.26.30 AM

How to Search Jira Like a Pro

JQL isn't your average, run-of-the-mill filtering tool; it’s more like having a trusty GPS guiding you through the labyrinthine alleys of Jira. JQL allows you to precisely filter issues, ensuring you get exactly what you need when it comes to data queries. 

Learning the ropes of JQL isn’t just a nice-to-have skill; it’s necessary for achieving project management efficiency. Let’s get you up to speed with the JQL functions that will make navigating Jira feel like a joyride.

1. "Project" Function:
  • Targets issues within specific projects, allowing for a focused view of relevant tasks.
  • Useful for streamlining project management in environments with multiple projects.
  • Example JQL: project = "PROJECT_NAME"
  • Example JQL: project IN ("PROJECT_NAME1", "PROJECT_NAME2")
2. "IssueType" Function:
  • Filters issues by their type, such as Bug, Task, or Story, enabling easy categorization.
  • Essential for workflow prioritization and managing different kinds of tasks.
  • Example JQL: issuetype = Bug
  • Example JQL: issuetype IN (Bug, Task)
  • Note: You can always use "type" instead of "issuetype" when writing JQL statements.
3. "Status" Function
  • Focuses on issues in specific stages of the workflow, like Open, In Progress, or Done.
  • Crucial for tracking progress and ensuring timely issue resolution.
  • Example JQL: status = "In Progress"
  • Example JQL: status IN ("In Progress", "Open")
4. "Assignee" Function
  • Isolates issues assigned to specific team members, aiding in workload distribution.

  • Enhances individual accountability and helps in tracking personal task lists.

  • Example JQL: assignee = currentUser()

  • Example JQL: assignee IN ("username1", "username2")

5. "Reporter" Function
  • Identifies issues reported by specific users, helping in tracking feedback and requests.

  • Useful for accountability and following up on specific user-reported issues.

  • Example JQL: reporter = "username"

  • Example JQL: reporter IN ("username1", "username2")

6. "Created" and "Updated" Functions
  • Filters issues based on their creation or last update dates, for time-based tracking.
  • Vital for managing deadlines and understanding issue lifecycles.
  • Example JQL: created >= -7d (for issues created in the last 7 days)
  • Example JQL: updated >= -7d (for issues updated in the last 7 days)
  • Date Range Example JQL: created >= -14d AND created <= -7d
    • This query finds issues that were created between 7 and 14 days ago.
  • For the "Updated" function, the syntax would be similar, just replacing created with updated:
    • Date Range Example JQL: updated >= -14d AND updated <= -7d
      Locates issues that were updated between 7 and 14 days ago.

7. "Priority" Function
  • Sorts issues by priority levels, such as High, Medium, or Low.
  • Aids in identifying critical issues and aligning resources accordingly.
  • Example JQL: priority = High
  • Example JQL: priority IN (High, Medium)
8. "Resolution" Function
  • Differentiates issues based on their resolution status, like Fixed or Won't Do.
  • Important for tracking completed tasks and understanding resolution trends.
  • Example JQL: resolution = Unresolved
  • Example JQL: resolution IN (Unresolved, Fixed)
9. "Category" Function
  • Groups issues based on the category assigned to projects, facilitating cross-project analysis.
  • Useful for organizations managing a portfolio of projects under different categories.
  • Example JQL: category = "Development"
  • Example JQL: category IN ("Development", "Marketing")
10. "Component" Function
  • Filters issues by specific components within a project, aiding in modular management.
  • Helps in addressing component-specific tasks and organizing large projects.
  • Example JQL: component = "Backend"
  • Example JQL: component IN ("Backend", "Frontend")

Honorable Mention:
"Issue in PortfolioChildIssuesOf()" Function

The issue in portfolioChildIssuesOf() function is a powerhouse feature if you have Jira Software Premium or Enterprise. It's a special tool in your JQL toolkit that’s especially handy for those who engage with Advanced Roadmaps. However, its utility isn't confined to Advanced Roadmaps alone; it works independently, too. This function is like a deep-sea radar that finds all related issues within a specific parent issue, such as an Epic.

It's a game-changer for drilling down into hierarchical structures. With this function, you can effortlessly fetch all items linked to a parent issue. Think of it as a family reunion organizer for your Jira issues – it brings together all related tasks, stories, sub-tasks, and more, under one umbrella.

This function is perfect for scenarios where you need a comprehensive view of all tasks, sub-tasks, and stories nested within a larger issue like an Epic. It provides a holistic overview, ensuring no stone is left unturned in your project management landscape.

Example JQL: issue in portfolioChildIssuesOf("Epic-123")

This query will return all issues that are part of the specified Epic (Epic-123), including stories, tasks, and even the sub-tasks within those stories, effectively mapping out the entire network of tasks that contribute to this Epic.

 

Data Management Made Easy

Tapping into the power of these top 10 JQL functions is a great way to improve your control over Jira and all the data it contains. JQL is a game-changer when it comes to data organization, efficient project management, and helping you make business decisions.

By mastering these JQL functions, teams can go from data miners to strategic analysts, moving beyond mere data retrieval to timely, informed decision-making. This shift not only streamlines workflows but also elevates the entire project management process, making the jobs of those involved not just easier, but more impactful.

Build a Data-Driven Enterprise with Praecipio

If you need guidance with unlocking the magic of Atlassian’s integrated suite of products, Praecipio can support your journey. As an Atlassian Platinum Solution Partner, Praecipio has helped organizations leverage the Atlassian platform to build a data-driven enterprise

Reach out to our team of experts to help you maximize your Atlassian investment.

 

Put Your Atlassian Tools to Work

Optimize Your Atlassian Stack with Praecipio