JIRA Filters and JQL

As a JIRA project grows, finding the right issues quickly becomes critical. The default board and backlog views show everything at once, which is overwhelming in large projects. JIRA Filters and JQL (JIRA Query Language) solve this by letting teams create precise, reusable searches that return exactly the issues they need in seconds. Mastering JQL transforms a JIRA user from a basic practitioner into a power user.

What Is a JIRA Filter?

A JIRA Filter is a saved search that returns a specific list of issues based on criteria. Filters are reusable — save once and use any time. Filters power dashboards, board configurations, quick filters, and email subscription reports. Any user can create, save, and share filters.

Analogy: A JIRA Filter works like a saved search on an e-commerce website. Setting the search to "Electronics under ₹5000 with 4+ star rating" and bookmarking it returns the same filtered results every visit. A JIRA filter does the same for project issues — set the criteria once and retrieve the matching issues instantly anytime.

Basic Search vs Advanced Search

Basic Search vs Advanced Search (JQL)
AspectBasic SearchAdvanced Search (JQL)
How it worksDropdown selectors for Project, Type, Status, AssigneeText-based query language with operators
Learning curveZero — no syntax knowledge neededModerate — requires learning JQL syntax
FlexibilityLimited to predefined filter optionsExtremely flexible — any field, any operator, any combination
ReusabilityCan be saved as a filterCan be saved as a filter
PowerSuitable for simple queriesRequired for complex, multi-condition queries
Switch between modesYes — JIRA converts basic to JQL automaticallyYes — but complex JQL cannot always convert back to basic

JQL Syntax Structure

A JQL query follows a simple structure: Field → Operator → Value. Multiple conditions connect using AND, OR, and NOT. Parentheses group conditions for complex logic.

Basic JQL Structure

JQL Query Structure
PartDescriptionExample
FieldThe issue property to search onassignee, status, priority, project, issuetype
OperatorThe comparison operator=, !=, >, <, in, not in, is, is not, ~
ValueThe value to match"In Progress", currentUser(), "High", "MBA"
ConnectorJoins multiple conditionsAND, OR, NOT
Order BySorts the resultsORDER BY created DESC

JQL Operators Reference

JQL Operators and Their Usage
OperatorMeaningExample
=Equals — exact matchstatus = "In Progress"
!=Not equalsstatus != "Done"
>Greater than (for numbers and dates)priority > Medium
<Less thanstory_points < 5
inMatches any value in a liststatus in ("To Do", "In Progress")
not inDoes not match any value in a liststatus not in ("Done", "Cancelled")
~Contains (text search)summary ~ "login"
!~Does not containsummary !~ "draft"
is EMPTYField has no valueassignee is EMPTY
is not EMPTYField has any valuedue date is not EMPTY

JQL Functions

JQL functions generate dynamic values at query runtime. They make filters smart — a filter using currentUser() always returns the logged-in user's issues, whoever runs it.

Commonly Used JQL Functions
FunctionWhat It ReturnsExample Usage
currentUser()The username of the logged-in userassignee = currentUser()
now()The current date and timedue < now() (overdue issues)
startOfDay()Midnight at the start of todaycreated > startOfDay() (today's issues)
endOfWeek()End of the current week (Sunday)due < endOfWeek()
openSprints()All currently running sprintssprint in openSprints()
closedSprints()All completed sprintssprint in closedSprints()
membersOf("group")All users in a JIRA groupassignee in membersOf("dev-team")
releasedVersions()All released fix versionsfixVersion in releasedVersions()

Essential JQL Queries for Daily Use

These queries cover the most common JIRA search scenarios that project managers, developers, and QA engineers use every day.

Essential JQL Queries — Daily Use Reference
Use CaseJQL Query
All issues assigned to me that are not doneassignee = currentUser() AND status != Done
All issues in the current sprintsprint in openSprints()
All high-priority bugs in project MBAproject = MBA AND issuetype = Bug AND priority in (High, Highest)
All overdue issuesdue < now() AND status != Done
Issues updated in the last 7 daysupdated > -7d
All unassigned issues in current sprintsprint in openSprints() AND assignee is EMPTY
All issues created todaycreated >= startOfDay()
All issues I reported this weekreporter = currentUser() AND created > startOfWeek()
All issues in epics under a specific labellabels = security AND issuetype != Epic
All stories not yet estimatedissuetype = Story AND story_points is EMPTY AND sprint in openSprints()
All issues blocked (using link type)issueFunction in linkedIssuesOf("status = 'In Progress'", "is blocked by")
All issues in a specific componentproject = MBA AND component = "Authentication" AND status != Done

Saving a Filter

Once a JQL query returns the correct results, save it as a named filter for reuse.

How to Save a Filter

StepAction
1Open the Issues menu from the top navigation bar and click Search for Issues
2Switch to Advanced mode and type the JQL query
3Verify the results are correct
4Click Save As and give the filter a descriptive name
5Click Submit — the filter now appears in Filters → My Filters

Sharing Filters

Saved filters can be shared with specific users, groups, or the entire organization. Sharing makes a filter available in other users' "Filters" menu and available to use in dashboards and board configurations.

Filter Sharing Options
Share WithEffect
Private (default)Only the creator can see and use the filter
A specific ProjectAll members of that project can use the filter
A specific GroupAll members of that JIRA group can use the filter
Any logged-in userAll users in the JIRA instance can use the filter

Filter Subscriptions

JIRA allows users to subscribe to a filter with an email schedule. JIRA runs the filter automatically at the set frequency and emails the resulting issue list to the subscriber. This is useful for daily or weekly reports sent without any manual effort.

Filter Subscription Example
FieldExample Setting
Filter NameOpen High Priority Bugs — MBA Project
Recipientpriya.sharma@company.com (Project Manager)
FrequencyEvery day at 9:00 AM
Send if no resultsNo — skip email when zero issues match

ORDER BY in JQL

Adding ORDER BY at the end of any JQL query sorts the results. Multiple sort fields are supported.

ORDER BY Examples
GoalORDER BY Clause
Newest issues firstORDER BY created DESC
Oldest issues firstORDER BY created ASC
Highest priority firstORDER BY priority ASC
Most recently updated firstORDER BY updated DESC
Alphabetically by assigneeORDER BY assignee ASC

Summary

JIRA Filters and JQL give teams the ability to find and surface exactly the right issues at the right time. Basic search covers simple needs. JQL handles complex, multi-condition queries. Functions like currentUser() and openSprints() make filters dynamic and reusable for any team member. Saving, sharing, and subscribing to filters turns one-time searches into permanent productivity tools. The ability to build precise filters is a foundational skill for creating useful JIRA dashboards — the visual reporting surfaces where filters become interactive management tools.

Leave a Comment