Updated: Jan 4
Jira Query Language (more commonly referred to as JQL) is an incredibly powerful tool when it comes to searching Jira – and its power lies in its simplicity. Here are some secrets to optimise your Jira workflows.
This guide shows you how to: 1. Save JQL keywords as a Jira filter 2. Use JQL to find any Jira issues blocking your project 3. Use JQL to find unassigned Jira issues 4. Extend JQL functionality 5. Search the content of Jira attachments 6. Find issues that are related by using Jira filters 7. Visualise and share your JQL search results
JQL offers an avenue for more technical users and those who are just getting to grips with Jira alike to navigate their issues, no matter how many projects they are a part of or how many tasks may be assigned to them.
Jira is a phenomenal task management tool, and mastering JQL is key when it comes to streamlining your workflows. With this in mind, here are some top tips when it comes to getting the most out of Jira by using JQL.
1. Save JQL keywords as a Jira filter
One of the benefits of JQL is how flexible it can be – but at the same time, you’re likely to find yourself using some search queries more frequently than others. Just remember to hit “save as” on your frequent JQL searches.
This will take you further than simply saving yourself time, too. Help your team by sharing your saved filters with anyone you know will be on the lookout for similar information. Saved filters are used on Jira Dashboards, Kanban and Scrum boards so it’s important to be familiar with this feature. Set filter permissions under “details” to make sure it’s visible to the right set of users.
Then get a shareable URL to your query with the “Share” button – your teams will thank you for saving them time too!
2. Use JQL to find any Jira issues blocking your project
If a project is already running behind schedule, the last thing you need is to spend time on tracking down those Jira issues blocking you. Now factor in work taking place across multiple projects – it all becomes even more complicated and potentially time-consuming. By setting up the right Jira filter and using the right JQL keywords, you can save time and identify all of those issues in a few quick steps.
Step 1: Create a new dashboard From within your dashboard, select “Create Dashboard”, give it a memorable name and make sure to save it.
Step 2: Create filter with JQL query Go to issue search (issue navigator) and type the following JQL to find issues blocking your release:
Project = APP AND fixVersion = 1.0 AND Status = “Blocked”
Then save this filter as “Issues blocking App Project” and you’ll be able to revisit. If that pulls up a long list of issues, you can narrow down your search further by adding to your query string using the AND operator. For example:
issuetype = Story
will let you search for Stories which are blocked in your project
duedate < now()
will let you search for issues which have due dates that have passed
component = Core
will let you narrow down the search to blockers from the Core component
3. Use JQL to find unassigned Jira issues
JQL makes it quick and easy to identify any issues within a project that are unassigned. This is important when it comes to avoiding any unexpected, and unwelcome, surprises when it’s time to release, as you can be sure there aren’t any issues that have slipped through the cracks. It’s simple:
assignee is EMPTY
That’s all you need to bring up all issues without an assignee. Then it’s a case of adding additional JQL to modify your query. Try, for example:
Assignee is EMPTY AND updatedDate < 1w AND Status = “Open”
This will let you see all issues without an assignee that haven’t been updated in the past week and are still open – meaning you’ll bring up any issues that are likely to have been left behind.
4. Extend JQL functionality
Jira, and indeed the wider Atlassian family, is beloved in part due to the extensive customisation options available to users.
This also applies to extending the functionality of JQL. Just head on over to the Atlassian Marketplace and you’ll find that a quick search for ‘JQL’ brings up 160 results.
In these results you’ll find the likes of JQL Search Extensions, which brings a massive 50+ additional JQL keywords to Jira. With this extended functionality, you can go even further with your JQL to search and report on issues, comments, subtasks, attachments, versions, epics and links, so you can find content faster than ever.
5. Search the content of Jira attachments
We know how to use JQL to identify specific issues, but what about other types of content? One of the huge benefits of Jira is being able to house everything in one centralised place, from status updates through to attachments. Attachments to Jira issues, though, can often be harder to track down despite so often holding valuable information. This is where that ability to extend the functionality of JQL comes in handy. If you need to be able to search for attachments by their content – whether it’s a text document, a PDF or a spreadsheet, using an add-on can make a huge difference.
An add-on like JQL Search Extensions, for example, allows you to search for content within attachments in Jira (PDF, Word, Excel, PowerPoint, and plain text files).
attachmentExtension = pdf AND attachmentContent ~ “docker”
To search through your attached PDFs on any issue to find exactly what you’re looking for without hassle. It’s a major time saver.
6. Find issues that are related by using Jira filters
When you have a complex project, you’ll often find yourself needing to locate issues that are related with links, epics, or even subtask-parent relationships. This would usually involve creating more than one query – it might even mean a manual copy and paste job.
That’s not the best use of anyone’s time, so this is where you can use subqueries to save yourself from all of that copy and pasting. Subqueries allow you to apply more criteria to your initial query, and then go beyond that to find all of those subtasks, links, epics and so on that are related to an issue.
Say you’re looking for any stories with subtasks that are not done – you could use:
issueType = "Story" AND subtaskStatus != "Done"
And to go beyond that, you could find all stories with high priority subtasks that are not done. One option is to add a subtaskPriority clause:
issueType="Story" AND subtaskStatus!="Done" AND subtaskPriority="High"
But this query matches any stories that have a subtask that is not done and those that are high priority – and they don’t necessarily need to be the same subtasks!
The solution to this problem is to create a subquery that finds all the subtasks that are not done and of a high priority:
Status != "Done" AND priority= "High"
And then find stories which are parents of issues matched by this base query:
type="Story" AND parentOfQuery = "status != ‘Done’ AND priority = ‘High’"
See further examples of how you can use subqueries to find related Jira issues here.
7. Visualise and share your JQL search results
By mastering JQL keywords you’ll be able to unearth a huge range of information from within Jira, but raw information isn’t always the most useful way to communicate.
This is where Jira’s reporting functionality comes into play. With the tools to share live visualisations of your findings, you’ll be far better placed to share your insights with the rest of your team. They’ll thank you for the easy to digest, at-a-glance information, and you can even automate your reports for regular updates on things like what issues are blocking your projects.
From extensive out of the box reporting to a wide range of additional Jira Dashboard gadgets, all you need to do is decide the best format and configuration to share your reports on projects, teams, time, releases and more.
For more examples of how to get the most out of Jira using JQL, check out the full functionality of JQL Search Extensions for Jira & Reporting.
Find out more about JQL Search Extensions for Jira now.