{"id":10847,"date":"2026-08-31T10:46:28","date_gmt":"2026-08-31T10:46:28","guid":{"rendered":"https:\/\/titanapps.io\/blog\/?p=10847"},"modified":"2026-08-31T10:46:29","modified_gmt":"2026-08-31T10:46:29","slug":"jira-jql-function","status":"publish","type":"post","link":"https:\/\/titanapps.io\/blog\/jira-jql-function","title":{"rendered":"Jira JQL Functions and Fields for Triage, Tracking, and Stalled Work"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Jira has a variety of views, built-in filters, and search configurations for sifting through work. However, that is not enough to cover every scenario for every team. This is where JQL, or Jira Query Language, comes in. It offers a variety of building blocks, including fields and JQL functions, to handle search cases that the basic filters cannot express.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Still, that versatility makes JQL harder to pick up. You need to know how to construct a query before it pays off. Jira JQL functions that return values dynamically when the query runs can be especially puzzling. This article shows how to use them alongside other JQL building blocks, like fields, to address three common project management scenarios.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">TL;DR&nbsp;<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>JQL combines fields, operators, keywords, and values that can be supplied by functions. The latter make JQL queries more flexible and easier to maintain by providing the right values when queries run.<\/li>\n\n\n\n<li>Basic search handles most everyday lookups, but it can&#8217;t replace JQL. It mostly joins simple comparisons with AND, more complex scenarios (with OR\/NOT and grouped statements) are out of reach. Most functions have no UI equivalent either. Automation rules and board card colors need a JQL string and offer no query builder.<\/li>\n\n\n\n<li>For triaging new, unassigned work across spaces, use <code>startOfDay()<\/code> or <code>startOfWeek()<\/code> functions instead of hardcoded dates. <\/li>\n\n\n\n<li>For tracking active work across spaces, try <code>currentUser()<\/code> or <code>membersOf()<\/code> functions rather than inserting user IDs.<\/li>\n\n\n\n<li>To find stalled work across several spaces with multiple workflow statuses, consider using the <code>statusCategory<\/code> field to filter unfinished work and <code>statusCategoryChangedDate <\/code>to see when it last moved between status categories (To Do &#8211; In Progress &#8211; Done). <\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">JQL Quick Start Guide<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What is JQL?<\/h3>\n\n\n\n<section class=\"note\" style=\"background: #fefae9\">\n  <div class=\"note-heading\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"44\" height=\"44\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note.png\" class=\"note-heading__image\" alt=\"\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note.png 44w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note-24x24.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note-36x36.png 36w\" sizes=\"auto, (max-width: 44px) 100vw, 44px\" \/>    <span class=\"note__label\">Definition<\/span>\n  <\/div>\n      <div class=\"note__text\">\n        <p><strong>Jira Query Language (JQL)<\/strong> is Atlassian&#8217;s advanced search syntax for Jira. JQL handles complex search cases like compound conditions, changelog history, functions like currentUser(), etc. It works across Jira Cloud and Data Center and combines fields, operators, functions, and keywords into queries you can save, share, and reuse.<\/p>\n    <\/div>\n  <\/section>\n\n\n\n<h3 class=\"wp-block-heading\">Where Can I Use JQL?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Advanced search.<\/strong> In the Search work items bar, toggle from Basic to JQL and enter your query. You can sort and export the resulting list.<\/li>\n\n\n\n<li><strong>Saved filters.<\/strong> Save any JQL query as a named filter. You can share the filter with your team, subscribe to it for email digests, or use it to power the surfaces below.<\/li>\n\n\n\n<li><strong>Dashboard gadgets.<\/strong> Add a saved filter to a gadget like Filter Results or Pie Chart. The JQL behind the filter determines what the gadget shows on your dashboard.<\/li>\n\n\n\n<li><strong>Board scope.<\/strong> A company-managed Jira board runs on a filter that defines which work items appear on it. When you want a board that spans more than one space, JQL in that filter is how you get there.<\/li>\n\n\n\n<li><strong>Automation rules.<\/strong> A scheduled trigger can include a JQL query that defines which work items the rule runs against. A JQL condition can check the current work item and decide whether to continue to action.<\/li>\n\n\n\n<li><strong>Board card colors.<\/strong> In company-managed spaces, you can color-code board cards based on JQL queries. Cards matching your query take the assigned color, turning signals like aging or high priority into visual cues on the board.<\/li>\n\n\n\n<li><strong>Confluence Jira work items macro.<\/strong> Embed a live Jira query into a Confluence page or live doc using the Jira work items macro. Type \/jira in the editor to insert it. The page shows the matching work items and updates automatically as they change.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">The Building Blocks of a JQL Query<\/h3>\n\n\n\n<table id=\"tablepress-115\" class=\"tablepress tablepress-id-115\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Part<\/th><th class=\"column-2\">What it does<\/th><th class=\"column-3\">Example<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\"><a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/jql-fields\/\">Field<\/a><\/td><td class=\"column-2\">The work item attribute you want to search on<\/td><td class=\"column-3\"><code>status, assignee, created, project, issuetype<\/code><\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\"><a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/jql-operators\/\">Operator<\/a><\/td><td class=\"column-2\">Defines how the field is compared to the value<\/td><td class=\"column-3\"><code>=<\/code> (equals), <code>!=<\/code> (Not equals), <code>><\/code> (greater than), <code><<\/code> (less than), <code>IN, IS<\/code><\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">Value or <a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/jql-functions\/\">function<\/a><\/td><td class=\"column-2\">What the field is compared against \u2013 either a fixed value or a function that returns a value dynamically<\/td><td class=\"column-3\"><code>\"In Progress\", currentUser(), startOfDay(-7d)<\/code><\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\"><a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/jql-keywords\/\">Keyword<\/a><\/td><td class=\"column-2\">Combines multiple parts of the query or sorts the results<\/td><td class=\"column-3\"><code>AND, OR, NOT, ORDER BY, EMPTY<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-115 from cache -->\n\n\n\n<p class=\"wp-block-paragraph\">Here is how they come together:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/smart-checklist-jql-anatomy-2-1024x640.png\" alt=\"\" class=\"wp-image-10873\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/smart-checklist-jql-anatomy-2-1024x640.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/smart-checklist-jql-anatomy-2-300x188.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/smart-checklist-jql-anatomy-2-768x480.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/smart-checklist-jql-anatomy-2-1536x960.png 1536w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/smart-checklist-jql-anatomy-2-2048x1280.png 2048w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/smart-checklist-jql-anatomy-2-24x15.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/smart-checklist-jql-anatomy-2-36x23.png 36w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/smart-checklist-jql-anatomy-2-48x30.png 48w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">What is a JQL field?&nbsp;<\/h3>\n\n\n\n<section class=\"note\" style=\"background: #fefae9\">\n  <div class=\"note-heading\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"44\" height=\"44\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note.png\" class=\"note-heading__image\" alt=\"\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note.png 44w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note-24x24.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note-36x36.png 36w\" sizes=\"auto, (max-width: 44px) 100vw, 44px\" \/>    <span class=\"note__label\">Definition<\/span>\n  <\/div>\n      <div class=\"note__text\">\n        <p><strong>A JQL field<\/strong> is how you refer to a Jira field in a query \u2013 the same fields you see in the work item view (like <code>status, assignee, priority<\/code>), plus a few that Jira exposes only through JQL (like <code>resolved<\/code>). Each Jira field has a corresponding JQL name, including any custom fields your team creates. In a query, a field comes first, followed by an operator, then the value it is compared against, for example, <code>assignee = currentUser()<\/code>.<\/p>\n    <\/div>\n  <\/section>\n\n\n\n<h3 class=\"wp-block-heading\">What is a JQL Function?<\/h3>\n\n\n\n<section class=\"note\" style=\"background: #fefae9\">\n  <div class=\"note-heading\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"44\" height=\"44\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note.png\" class=\"note-heading__image\" alt=\"\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note.png 44w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note-24x24.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note-36x36.png 36w\" sizes=\"auto, (max-width: 44px) 100vw, 44px\" \/>    <span class=\"note__label\">Definition<\/span>\n  <\/div>\n      <div class=\"note__text\">\n        <p>A <strong>JQL function<\/strong> is a predefined command that returns one or more values when the query runs. It appears as a word followed by parentheses. Instead of hardcoding a value like a specific date or username, you use a function to calculate it at query time. For example, <code>currentUser() <\/code>returns whoever is running the query, and <code>startOfDay(-7d)<\/code> returns midnight at the start of the day seven days ago. See the Atlassian document on <a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/jql-functions\/\">Jira Functions<\/a> for the list of available functions and how to use them.<\/p>\n    <\/div>\n  <\/section>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Search vs JQL: Why Do We Need Both?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Basic search is a user-friendly query builder that covers most common cases. JQL is the underlying search syntax that makes it work. Basic search does allow you to build JQL queries with various fields, operators, keywords, and even functions. However, it has its limits and can\u2019t fully replace writing JQL queries:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Basic search can\u2019t accommodate all that JQL can do. <\/strong>Mostly you get a series of Equals and Not Equals comparisons joined by AND.&nbsp; What it can&#8217;t do is group conditions like assignee is <code>EMPTY AND (labels != triaged OR labels is EMPTY)<\/code>. You can\u2019t pick a function in Basic search \u2013 the UI inserts it for you. Choose a group in the Assignee filter, and the query underneath is assignee in <code>membersOf(\"some_group_name\").<\/code> However, most functions have no UI equivalent. Also, some fields appear in the filter list but can&#8217;t be filtered. Pick Linked Issues or Attachment in Basic search, and Jira offers you a &#8220;Switch to JQL&#8221; link instead of a filter.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"167\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-39-1024x167.png\" alt=\"\" class=\"wp-image-10848\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-39-1024x167.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-39-300x49.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-39-768x125.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-39-1536x250.png 1536w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-39-24x4.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-39-36x6.png 36w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-39-48x8.png 48w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-39.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Some Jira features, such as automation and conditional card color, require JQL queries, but don\u2019t have a query builder. <\/strong>You can still build the query in Basic search, then switch to JQL to reveal the syntax and copy it across. However, what you carry across is syntax, not a set of Basic search toggles.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">So the two work together. Basic search is quicker for everyday lookups, and switching to JQL shows you the query it wrote, which is a good way to learn the syntax and a solid starting point when you need to extend it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">JQL Query Examples for Three Common Scenarios<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Scenario 1 &#8211; Triaging Newly Created Work Items<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ideas from customers and stakeholders, plus spotted bugs, tend to spawn multiple work items. Unsupervised, they pile up in the backlog. For a single space, this may be manageable. A team lead or a product manager lives in the space, knows what came in, and assigns as they go. However, a cross-space initiative can strain this model to the breaking point.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Can you solve the problem without JQL?<\/strong> Not quite. A board won&#8217;t single out what arrived this morning, and it covers one space at a time. <a href=\"https:\/\/titanapps.io\/blog\/jira-plans\" type=\"link\" id=\"https:\/\/titanapps.io\/blog\/jira-plans\">Jira Plans<\/a> (Premium and Enterprise) does give you a cross-space view, but it is built for planning and timelines rather than daily inflow filtering.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The basic search comes close, as it can surface work items &#8220;created in the last 1 day\u201d. However, it uses <code>created &gt;= -1d<\/code>, a rolling 24 hours. Run it at 9 a.m., and yesterday afternoon comes with it. For a daily triage pass, you want everything since midnight, which is what the <code>startOfDay()<\/code> function gives you (more on that below).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>JQL Query Example<\/strong>. A delivery manager coordinates a payment app initiative spanning three Jira spaces: Payments Backend (space key: PBE), Payments Mobile (PMB), and Payments Web (PWB). To see <strong>all unassigned work items created in all those spaces since the start of the day,<\/strong> they can create the following filter:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>created &gt; startOfDay() AND project in (\"Payments Backend\", \"Payments Mobile\", \"Payments Web\") AND assignee is EMPTY<\/code>\n<\/code><\/pre>\n\n\n\n<section class=\"note\" style=\"background: #fefae9\">\n  <div class=\"note-heading\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"44\" height=\"44\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note.png\" class=\"note-heading__image\" alt=\"\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note.png 44w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note-24x24.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note-36x36.png 36w\" sizes=\"auto, (max-width: 44px) 100vw, 44px\" \/>    <span class=\"note__label\">Note<\/span>\n  <\/div>\n      <div class=\"note__text\">\n        <p>To list the required spaces, you can insert their space keys (like PBE, PMB, PWB for the example above) or start typing each name and use Jira JQL autocomplete. It also suggests available users, fields, operators, JQL keywords, and functions. Type a few letters, then choose the right option from the dropdown.<\/p>\n    <\/div>\n  <\/section>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"533\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image9.gif\" alt=\"\" class=\"wp-image-10862\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pro Tips<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Avoid hardcoded dates. <\/strong>Filtering dates in JQL is tricky. For instance, if you need work items created on August 18, <code>created &lt;= 2026-08-18<\/code><em> <\/em>might seem logical. However, this query has two flaws: a) it won\u2019t surface the work created on August 18, because the boundary is implicitly midnight; b) it will surface the work created before August 18. To make this syntax work, you can use <code>created &gt;= 2026-08-18 AND created &lt; 2026-08-19.<\/code> And you will need to update the dates each time.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Relative date functions like <a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/jql-functions\/#startOfDay--\">startOfDay<\/a> offer a better way, as you don\u2019t have to update your query. To find the work items created since the start of the day when the query is run, you can use <code>created &gt; startOfDay().<\/code> If you need the work items created since the start of the day X days ago, use <code>created &gt; startOfDay(-Xd)<\/code>. <\/p>\n\n\n\n<section class=\"note\" style=\"background: #fefae9\">\n  <div class=\"note-heading\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"44\" height=\"44\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note.png\" class=\"note-heading__image\" alt=\"\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note.png 44w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note-24x24.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note-36x36.png 36w\" sizes=\"auto, (max-width: 44px) 100vw, 44px\" \/>    <span class=\"note__label\">Note<\/span>\n  <\/div>\n      <div class=\"note__text\">\n        <p>This family of functions also includes <code>startOfWeek()<\/code>, <code>startOfMonth() <\/code>and <code>startOfYear()<\/code>. JQL also has their opposites: <code>endOfDay(), endOfWeek(), endOfMonth(), endOfYear(),<\/code> and <code>startOfDay().<\/code> To learn more, see the <a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/jql-functions\/\">JQL functions<\/a> documentation.<\/p>\n    <\/div>\n  <\/section>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Account for empty values while filtering. <\/strong>An unassigned item isn&#8217;t always unattended. It may be triaged and parked for later. If you mark those with a label like triaged, you&#8217;ll want to exclude them. But <code>labels != triaged <\/code>alone won&#8217;t work: JQL doesn&#8217;t return work items with no value in the field, so every unlabeled item disappears too. Add <code>(labels != triaged OR labels is EMPTY)<\/code> to the query above. The parentheses matter, since without them the OR overrides the rest of your conditions.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Scenario 2 \u2013 Tracking active work across spaces<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Shared platform teams, work rotations, or cross-functional initiatives pull engineers into several spaces at once. Imagine a team lead trying to answer a question: Is a particular team member&#8217;s effort distributed as planned, or is one project taking up too much effort? They have to open multiple boards, click through each backlog, and mentally aggregate what they find, which is far from efficient or convenient.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sometimes the work distribution doesn&#8217;t live at the work level. Teams that use checklists like <a href=\"https:\/\/marketplace.atlassian.com\/apps\/1216451\/smart-checklists-for-jira\">Smart Checklist for Jira<\/a> by TitanApps to keep boards clean instead of spawning multiple subtasks run into a different visibility challenge. A work item assignee owns the work item, but individual items on its checklist may be assigned to different people. In this section, we will explain how to use JQL to search both on work-item and checklist-item level.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Can you solve the problem without JQL?<\/strong> The built-in &#8220;Your Work&#8221; page shows one person&#8217;s own work across spaces, but you can&#8217;t use it to watch someone else. Jira Plans, as we mentioned, wasn\u2019t designed for this task either. Multi-space boards, dashboards, and calendars can span spaces, but they all require JQL queries or saved filters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With Basic search, you can query the uncompleted work assigned to a particular person across different spaces. Nonetheless, there are two caveats. Firstly, the interface supports Atlassian groups, but not teams. If you specifically need a team view, that can be a problem. Secondly, you can\u2019t search the assignees for checklist items with basic search.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>JQL Query Examples: Work-Item level&nbsp;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s return to the payment software Jira setup from the previous scenario. The query below shows <strong>work items from three spaces assigned to a particular person that aren\u2019t marked as Done<\/strong>. Also, they are sorted to show those that haven\u2019t been updated the longest on top:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>assignee = &lt;user&gt; AND statusCategory != Done AND project in (\"Payments Backend\", \"Payments Mobile\", \"Payments Web\") ORDER BY updated ASC<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Replace <code>&lt;user&gt;<\/code> with the target person \u2013 just type in their name and Jira will offer suggestions. To check your own workload, use the <code>currentUser()<\/code> function instead.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To see the whole team&#8217;s work, use the <a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/jql-functions\/#membersOf--\">membersOf()<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>assignee in membersOf(\"team_name\") AND statusCategory != Done AND project in (\"Payments Backend\", \"Payments Mobile\", \"Payments Web\") AND ORDER BY updated ASC<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To spot work-effort imbalance across spaces, sort by space first, then by update recency. If one space has eight unfinished items and another has one, it may suggest an imbalance:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>assignee = &lt;user&gt; AND statusCategory != Done AND project in (\"Payments Backend\", \"Payments Mobile\", \"Payments Web\") ORDER BY project ASC, updated ASC<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>JQL Query Examples: Checklist-item level<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To find all the <strong>work items on the instance that are not yet Done and have checklist list items from <\/strong><a href=\"https:\/\/marketplace.atlassian.com\/apps\/1216451\/smart-checklists-for-jira\"><strong>Smart Checklist for Jira<\/strong><\/a><strong> assigned to a particular person, <\/strong>you can use the following JQL query:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SmartChecklistItemAssignee ~ \"userID\" AND statusCategory != Done<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To find the required <code>&lt;userID&gt;<\/code>, go to Administration \/ Directory \/ Users, click the user from the list, and copy the string of numbers and letters in the URL after \u201c\/users\/\u201d. Watch out for things like \u201c?tab=productAccess\u201d &#8211; they are <strong>not<\/strong> part of the ID.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can also add to the query a list of specific spaces using project in (&lt;project 1&gt;, &lt;project 2&gt;,&#8230;). For more details, see the <a href=\"https:\/\/railsware.atlassian.net\/wiki\/spaces\/CHK\/pages\/152961090\/JQL+Search\">JQL Search<\/a> section in the Smart Checklist documentation.<\/p>\n\n\n\n<section class=\"banner-block\">\n  <div class=\"banner-block__info\">\n    <h3 class=\"banner-block__title\">Add checklists to your Jira tasks<\/h3>\n    <ul class=\"banner-list\">            <li class=\"banner-list__item\">Add and edit items<\/li>\n                      <li class=\"banner-list__item\">Make recurring templates<\/li>\n                      <li class=\"banner-list__item\">Automate them with your conditions<\/li>\n                      <li class=\"banner-list__item\">Tag colleagues, add deadlines<\/li>\n                      <li class=\"banner-list__item\">View a progress bar<\/li>\n          <\/ul>    <a href=\"https:\/\/marketplace.atlassian.com\/apps\/1216451\/smart-checklist-for-jira-pro?tab=overview&#038;hosting=cloud\" target=\"_blank\" class=\"banner-block__link btn btn-orange\" >Try it free<\/a>\n  <\/div>\n  <div class=\"banner-block__image\">\n    <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2025\/10\/Ui-for-promo-banner.svg\" alt=\"\" width=\"420\" height=\"330\">\n  <\/div>\n<\/section>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pro Tip<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Use status categories, not status names.<\/strong> <code>status != Done<\/code> looks right, but it breaks if a team renames their Done status to something like Finished, Shipped, Closed, or Completed. However, every custom status in Jira maps to one of three underlying categories: To Do, In Progress, or Done. <code>statusCategory != Done<\/code> catches finished work regardless of how the team named it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Scenario 3 \u2013 Finding work that has stalled<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Two work items are marked as In Progress. The status name suggests something is happening. However, this is true for only one of them, which was worked on this morning. The other stalled a while ago after the engineer got pulled onto something urgent, switched to other tasks, and never got back to it. The problem is, you can\u2019t tell the difference unless you remember how each item got where it is or check their history logs. Cross-team work with multiple tasks makes both options especially challenging.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Can you solve the problem without JQL?<\/strong> Sprint reports and burndowns track completed work and remaining scope, not &#8220;actively working&#8221; versus &#8220;just sitting there.&#8221; The native Average Age Report tracks the average age of unresolved work since creation, which isn&#8217;t the same as time since anything last happened. It also returns a trend chart rather than a list of specific items to act on. Board card colors can visually highlight aging cards \u2013 but the feature needs a JQL query.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With the basic search, you can find Status Category Changed in More filters and set it to \u201cmore than X days before.\u201d However, Status Category Changed tracks movement specifically between status categories (To Do &#8211; In Progress &#8211; Done). Some workflows have several statuses within the In Progress category \u2013 In Progress, In Review, Changes Requested, Blocked, Waiting for Customer, and so on. Status Category Changed won&#8217;t tell you when a work item last changed status inside a category, which needs <code>status changed <\/code>and has no filter equivalent.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"387\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-41-1024x387.png\" alt=\"\" class=\"wp-image-10851\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-41-1024x387.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-41-300x113.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-41-768x290.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-41-1536x581.png 1536w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-41-24x9.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-41-36x14.png 36w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-41-48x18.png 48w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-41.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>JQL query example<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The query below returns <strong>work items in the Payments Backend space that are currently In Progress and changed status more than 30 days ago<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>project = \"Payments Backend\" AND status = \"In Progress\" AND status changed before -30d<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are interested only in work items that progressed from To Do to In Progress <strong>status category <\/strong>but moved no further for a long time, use <a href=\"https:\/\/support.atlassian.com\/jira\/kb\/how-to-search-using-statuscategory-statuscategorychangeddate-function-with-jql\/\">statusCategoryChangedDate<\/a>. For the same reason, you might want to employ statusCategory rather than status to find the work items that are In Progress.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>project = \"Payments Backend\" AND statusCategory = \"In Progress\" AND statusCategoryChangedDate &lt; -30d<\/code><\/pre>\n\n\n\n<section class=\"note\" style=\"background: #fefae9\">\n  <div class=\"note-heading\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"44\" height=\"44\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note.png\" class=\"note-heading__image\" alt=\"\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note.png 44w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note-24x24.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2024\/08\/note-36x36.png 36w\" sizes=\"auto, (max-width: 44px) 100vw, 44px\" \/>    <span class=\"note__label\">Note<\/span>\n  <\/div>\n      <div class=\"note__text\">\n        <p>One <a href=\"https:\/\/support.atlassian.com\/jira\/kb\/how-to-search-using-statuscategory-statuscategorychangeddate-function-with-jql\/\">Atlassian knowledge base article<\/a> calls <code>statusCategory<\/code> and <code>statusCategoryChangedDate<\/code> functions. In JQL syntax, they behave as fields: no parentheses, and they sit to the left of the operator, where a field goes. You can&#8217;t pass them an argument the way you can with <code>startOfDay(-7d).<\/code><\/p>\n    <\/div>\n  <\/section>\n\n\n\n<p class=\"wp-block-paragraph\">To spot stalled work across several spaces, use project in (project 1, project 2,&#8230;). To see work assigned to one person, add <code>assignee = &lt;user&gt;<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pro tips<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>updated<\/code> won\u2019t show you the full picture. <\/strong>The natural first attempt for stale work is <code>updated &lt; -30d.<\/code> It looks right and returns results. But updated moves for every edit on a work item \u2013 a comment added yesterday, a priority changed last week, a label added by an automation rule. A work item with an active comment thread but no actual workflow movement in months would still be &#8220;updated&#8221;. <code>status changed,<\/code> however, tracks specifically when a work item&#8217;s status transitioned. <code>statusCategoryChangedDate<\/code> goes even further and lets you check when the status category changed.<\/li>\n\n\n\n<li><strong>Make aging work items visible on the board<\/strong>. If your space is company-managed, you can set the work item card color based on how recently it changed status. Go to Board settings \/ Card colors \/ Select method \/ Query \/ Add color, select color, and paste the query similar to the examples above. The work items that fit the conditions are marked by the chosen color (red in the example screenshot below). Read more in the <a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/customize-cards\/\">Customize cards<\/a> Atlassian documentation.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"646\" height=\"898\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-40.png\" alt=\"\" class=\"wp-image-10850\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-40.png 646w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-40-216x300.png 216w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-40-17x24.png 17w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-40-26x36.png 26w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-40-35x48.png 35w\" sizes=\"auto, (max-width: 646px) 100vw, 646px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use a saved filter or a dashboard. <\/strong>If you regularly need a JQL query for stale work, save it as a filter or create a dashboard gadget (Filter Results). More on how to set up a dashboard in our dedicated article on <a href=\"https:\/\/titanapps.io\/blog\/jira-dashboards\">Jira dashboards.<\/a><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"307\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-42-1024x307.png\" alt=\"\" class=\"wp-image-10852\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-42-1024x307.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-42-300x90.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-42-768x230.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-42-1536x461.png 1536w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-42-24x7.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-42-36x11.png 36w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-42-48x14.png 48w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-42.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"584\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-43-1024x584.png\" alt=\"\" class=\"wp-image-10853\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-43-1024x584.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-43-300x171.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-43-768x438.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-43-24x14.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-43-36x21.png 36w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-43-48x27.png 48w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-43.png 1224w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Automate the stale items sweep.<\/strong> A filter or dashboard works well if you remember to check it regularly. Automation can bring the stale work to your attention at specific intervals. Create a scheduled Jira automation rule to run the JQL condition like in the example above and add a comment tagging the assignee or reporter (e.g., <em>@Assignee_Name This item hasn\u2019t changed status for over XX days<\/em>) in each item that matches the condition. See the example below:<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"629\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-44-1024x629.png\" alt=\"\" class=\"wp-image-10854\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-44-1024x629.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-44-300x184.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-44-768x472.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-44-1536x943.png 1536w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-44-24x15.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-44-36x22.png 36w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-44-48x29.png 48w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-44.png 1944w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The result this automation produces: a comment with a mention and, subsequently, a notification.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"668\" src=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-45-1024x668.png\" alt=\"\" class=\"wp-image-10855\" srcset=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-45-1024x668.png 1024w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-45-300x196.png 300w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-45-768x501.png 768w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-45-1536x1003.png 1536w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-45-24x16.png 24w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-45-36x24.png 36w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-45-48x31.png 48w, https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/image-45.png 1970w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Learn more about automation in Jira from our article <a href=\"https:\/\/titanapps.io\/blog\/automate-jira-processes\">A 2026 Jira Automation Guide With the Top 10 Most Common Use Cases<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wrap-Up<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">JQL keeps Jira customizable and flexible to meet a wide variety of needs. It handles search cases the filter UI can&#8217;t express, and it gives you a query string you can reuse in automation rules, dashboards, and board card colors. In this article, we offered several JQL query examples featuring different functions and fields to handle scenarios like backlog triage, cross-team workload management, and stalled work. We hope they will make configuring JQL for your needs less daunting and your work in Jira more efficient.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions about JQL and Jira JQL Functions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What&#8217;s the difference between JQL operators and functions?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">JQL operators and functions do different jobs. An operator compares a field to a value <code>\u2013 =, !=, &gt;, IN, <\/code>and so on. A function returns a value dynamically when the query runs. For instance, <code>currentUser() <\/code>returns the person running the query, <code>startOfDay() <\/code>returns midnight today, <code>membersOf(\u201cEngineering\u201d) <\/code>returns everyone in the Engineering team. Functions fit into queries wherever a value would go. For example, in <code>assignee = currentUser()<\/code>, <code>=<\/code> is the operator, and <code>currentUser()<\/code> is the function that provides the value.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Is there a cheat sheet for Jira JQL?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Atlassian maintains an<a href=\"https:\/\/www.atlassian.com\/software\/jira\/guides\/jql\/cheat-sheet\"> official JQL cheat sheet<\/a> that covers the query structure, common operators, key functions, and example queries you can copy. That said, the JQL editor inside Jira does a lot of the work for you. As you type, it autocompletes field names, functions, and values, highlights syntax, and flags errors on the spot.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What is advanced search in Jira Cloud?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Advanced search is Jira Cloud&#8217;s JQL-based search mode \u2013 the alternative to basic filters. You access it from the work items search page, where you can toggle from Basic to JQL. Advanced search lets you write text queries using fields, values, operators, and functions to match complex conditions the basic search can\u2019t handle. With their help, you can filter work by changelog history, use relative dates, and run subqueries that reference a saved filter, etc.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How do I use JQL functions to filter issues by custom fields in Jira?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To filter by a custom field in JQL, reference the field by its name, like <code>\"Story Points\" &gt; 5<\/code>. The JQL editor&#8217;s autocomplete suggests custom field names as you type. Custom fields work with the same operators as standard fields, though which operators apply depends on the field type. Functions work with custom fields too, as long as the types match. For instance, <code>startOfDay() <\/code>supports Date\/Time custom fields, and user functions like <code>currentUser()<\/code> support custom fields of type \u201cUser\u201d.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I create my own custom JQL functions in Jira Cloud?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No, Jira Cloud does not let users create their own JQL functions. For that, you will need to install dedicated Atlassian Marketplace apps. However, the list of built-in <a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/jql-functions\/\">JQL functions<\/a> is extensive and includes dozens of options that cover most day-to-day scenarios. Unless you need something really niche, you&#8217;ll likely find the function you need without constructing a new one.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does JQL work in Jira Service Management?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. JSM runs on the same JQL engine, so everything in this article applies. It also adds fields and functions you won&#8217;t find in a software space. SLA functions like <code>breached() <\/code>and <code>remaining()<\/code> filter requests by how they&#8217;re tracking against their target. Approval functions like <code>pending() <\/code>and <code>pendingBy()<\/code> surface requests waiting on a decision.<\/p>\n\n\n\n<section class=\"writer\">\n  <div class=\"writer__image\">\n    <img alt='Anton Mazur' src='https:\/\/secure.gravatar.com\/avatar\/9f3b067e4a2cd64b0373cb4af497b4c0cdbb09b71351a162fa01bf50803f02a5?s=180&#038;d=identicon&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/9f3b067e4a2cd64b0373cb4af497b4c0cdbb09b71351a162fa01bf50803f02a5?s=360&#038;d=identicon&#038;r=g 2x' class='avatar avatar-180 photo' height='180' width='180' \/>  <\/div>\n\n  <div class=\"writer-data\">\n    <span class=\"writer-data__label\">Article by<\/span>\n    <span class=\"writer-data__name\">\n      Anton Mazur    <\/span>\n    <div class=\"writer-data__bio\">\n      Technical Content Writer at TitanApps. I have 5+ years of experience making complex tech topics clear and compelling for business audiences. I&#8217;ve written about custom software, cloud, AI, IoT, and cybersecurity. Before moving into content, I spent years in social research and data analysis &#8211; and that analytical mindset still shapes how I approach every piece I write.    <\/div>\n\n      <\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Jira has a variety of views, built-in filters, and search configurations for sifting through work. However, that is not enough to cover every scenario for every team. This is where JQL, or Jira Query Language, comes in. It offers a variety of building blocks, including fields and JQL functions, to handle search cases that the [&hellip;]<\/p>\n","protected":false},"author":181780141,"featured_media":10877,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1401,1405,1418,1419,1409],"tags":[1493,1497,1437],"coauthors":[1480],"class_list":["post-10847","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-article","category-atlassian-jira","category-product-management","category-project-management","category-smart-checklist","tag-jira","tag-jql","tag-smart-checklist"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Jira JQL Functions and Fields: Query Examples for 3 Scenarios<\/title>\n<meta name=\"description\" content=\"A practical guide to Jira JQL functions and fields. Copy query examples for backlog triage, cross-space workload tracking, and stalled work.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/titanapps.io\/blog\/jira-jql-function\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jira JQL Functions and Fields: Query Examples for 3 Scenarios\" \/>\n<meta property=\"og:description\" content=\"A practical guide to Jira JQL functions and fields. Copy query examples for backlog triage, cross-space workload tracking, and stalled work.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/titanapps.io\/blog\/jira-jql-function\" \/>\n<meta property=\"og:site_name\" content=\"Titanapps\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-31T10:46:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-31T10:46:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/112_Top-jira-jql-functions-to-boost-team-efficiency-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"960\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Anton Mazur\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Anton Mazur\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/jira-jql-function#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/jira-jql-function\"},\"author\":{\"name\":\"Anton Mazur\",\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/#\\\/schema\\\/person\\\/34727591bf1bcb2447d6df208d8942ad\"},\"headline\":\"Jira JQL Functions and Fields for Triage, Tracking, and Stalled Work\",\"datePublished\":\"2026-08-31T10:46:28+00:00\",\"dateModified\":\"2026-08-31T10:46:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/jira-jql-function\"},\"wordCount\":3037,\"image\":{\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/jira-jql-function#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/112_Top-jira-jql-functions-to-boost-team-efficiency-1.png\",\"keywords\":[\"jira\",\"jql\",\"smart checklist\"],\"articleSection\":[\"Article\",\"Atlassian, Jira\",\"Product Management\",\"Project Management\",\"Smart Checklist\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/jira-jql-function\",\"url\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/jira-jql-function\",\"name\":\"Jira JQL Functions and Fields: Query Examples for 3 Scenarios\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/jira-jql-function#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/jira-jql-function#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/112_Top-jira-jql-functions-to-boost-team-efficiency-1.png\",\"datePublished\":\"2026-08-31T10:46:28+00:00\",\"dateModified\":\"2026-08-31T10:46:29+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/#\\\/schema\\\/person\\\/34727591bf1bcb2447d6df208d8942ad\"},\"description\":\"A practical guide to Jira JQL functions and fields. Copy query examples for backlog triage, cross-space workload tracking, and stalled work.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/jira-jql-function#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/titanapps.io\\\/blog\\\/jira-jql-function\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/jira-jql-function#primaryimage\",\"url\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/112_Top-jira-jql-functions-to-boost-team-efficiency-1.png\",\"contentUrl\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/112_Top-jira-jql-functions-to-boost-team-efficiency-1.png\",\"width\":1440,\"height\":960,\"caption\":\"Cartoon team riding a rocket-powered tandem bike labeled Jira and JQL, showing the speed boost of JQL functions.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/jira-jql-function#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jira JQL Functions and Fields for Triage, Tracking, and Stalled Work\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/\",\"name\":\"Titanapps\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/titanapps.io\\\/blog\\\/#\\\/schema\\\/person\\\/34727591bf1bcb2447d6df208d8942ad\",\"name\":\"Anton Mazur\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9f3b067e4a2cd64b0373cb4af497b4c0cdbb09b71351a162fa01bf50803f02a5?s=96&d=identicon&r=gdaa8f960952a89d160c7a6f3a74a1664\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9f3b067e4a2cd64b0373cb4af497b4c0cdbb09b71351a162fa01bf50803f02a5?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9f3b067e4a2cd64b0373cb4af497b4c0cdbb09b71351a162fa01bf50803f02a5?s=96&d=identicon&r=g\",\"caption\":\"Anton Mazur\"},\"description\":\"Technical Content Writer at TitanApps. I have 5+ years of experience making complex tech topics clear and compelling for business audiences. I've written about custom software, cloud, AI, IoT, and cybersecurity. Before moving into content, I spent years in social research and data analysis - and that analytical mindset still shapes how I approach every piece I write.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Jira JQL Functions and Fields: Query Examples for 3 Scenarios","description":"A practical guide to Jira JQL functions and fields. Copy query examples for backlog triage, cross-space workload tracking, and stalled work.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/titanapps.io\/blog\/jira-jql-function","og_locale":"en_US","og_type":"article","og_title":"Jira JQL Functions and Fields: Query Examples for 3 Scenarios","og_description":"A practical guide to Jira JQL functions and fields. Copy query examples for backlog triage, cross-space workload tracking, and stalled work.","og_url":"https:\/\/titanapps.io\/blog\/jira-jql-function","og_site_name":"Titanapps","article_published_time":"2026-08-31T10:46:28+00:00","article_modified_time":"2026-08-31T10:46:29+00:00","og_image":[{"width":1440,"height":960,"url":"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/112_Top-jira-jql-functions-to-boost-team-efficiency-1.png","type":"image\/png"}],"author":"Anton Mazur","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Anton Mazur","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/titanapps.io\/blog\/jira-jql-function#article","isPartOf":{"@id":"https:\/\/titanapps.io\/blog\/jira-jql-function"},"author":{"name":"Anton Mazur","@id":"https:\/\/titanapps.io\/blog\/#\/schema\/person\/34727591bf1bcb2447d6df208d8942ad"},"headline":"Jira JQL Functions and Fields for Triage, Tracking, and Stalled Work","datePublished":"2026-08-31T10:46:28+00:00","dateModified":"2026-08-31T10:46:29+00:00","mainEntityOfPage":{"@id":"https:\/\/titanapps.io\/blog\/jira-jql-function"},"wordCount":3037,"image":{"@id":"https:\/\/titanapps.io\/blog\/jira-jql-function#primaryimage"},"thumbnailUrl":"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/112_Top-jira-jql-functions-to-boost-team-efficiency-1.png","keywords":["jira","jql","smart checklist"],"articleSection":["Article","Atlassian, Jira","Product Management","Project Management","Smart Checklist"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/titanapps.io\/blog\/jira-jql-function","url":"https:\/\/titanapps.io\/blog\/jira-jql-function","name":"Jira JQL Functions and Fields: Query Examples for 3 Scenarios","isPartOf":{"@id":"https:\/\/titanapps.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/titanapps.io\/blog\/jira-jql-function#primaryimage"},"image":{"@id":"https:\/\/titanapps.io\/blog\/jira-jql-function#primaryimage"},"thumbnailUrl":"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/112_Top-jira-jql-functions-to-boost-team-efficiency-1.png","datePublished":"2026-08-31T10:46:28+00:00","dateModified":"2026-08-31T10:46:29+00:00","author":{"@id":"https:\/\/titanapps.io\/blog\/#\/schema\/person\/34727591bf1bcb2447d6df208d8942ad"},"description":"A practical guide to Jira JQL functions and fields. Copy query examples for backlog triage, cross-space workload tracking, and stalled work.","breadcrumb":{"@id":"https:\/\/titanapps.io\/blog\/jira-jql-function#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/titanapps.io\/blog\/jira-jql-function"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/titanapps.io\/blog\/jira-jql-function#primaryimage","url":"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/112_Top-jira-jql-functions-to-boost-team-efficiency-1.png","contentUrl":"https:\/\/titanapps.io\/blog\/wp-content\/uploads\/2026\/08\/112_Top-jira-jql-functions-to-boost-team-efficiency-1.png","width":1440,"height":960,"caption":"Cartoon team riding a rocket-powered tandem bike labeled Jira and JQL, showing the speed boost of JQL functions."},{"@type":"BreadcrumbList","@id":"https:\/\/titanapps.io\/blog\/jira-jql-function#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/titanapps.io\/blog\/"},{"@type":"ListItem","position":2,"name":"Jira JQL Functions and Fields for Triage, Tracking, and Stalled Work"}]},{"@type":"WebSite","@id":"https:\/\/titanapps.io\/blog\/#website","url":"https:\/\/titanapps.io\/blog\/","name":"Titanapps","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/titanapps.io\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/titanapps.io\/blog\/#\/schema\/person\/34727591bf1bcb2447d6df208d8942ad","name":"Anton Mazur","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9f3b067e4a2cd64b0373cb4af497b4c0cdbb09b71351a162fa01bf50803f02a5?s=96&d=identicon&r=gdaa8f960952a89d160c7a6f3a74a1664","url":"https:\/\/secure.gravatar.com\/avatar\/9f3b067e4a2cd64b0373cb4af497b4c0cdbb09b71351a162fa01bf50803f02a5?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9f3b067e4a2cd64b0373cb4af497b4c0cdbb09b71351a162fa01bf50803f02a5?s=96&d=identicon&r=g","caption":"Anton Mazur"},"description":"Technical Content Writer at TitanApps. I have 5+ years of experience making complex tech topics clear and compelling for business audiences. I've written about custom software, cloud, AI, IoT, and cybersecurity. Before moving into content, I spent years in social research and data analysis - and that analytical mindset still shapes how I approach every piece I write."}]}},"article_bg":"#F2F5F9","_links":{"self":[{"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/posts\/10847","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/users\/181780141"}],"replies":[{"embeddable":true,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/comments?post=10847"}],"version-history":[{"count":14,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/posts\/10847\/revisions"}],"predecessor-version":[{"id":10876,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/posts\/10847\/revisions\/10876"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/media\/10877"}],"wp:attachment":[{"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/media?parent=10847"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/categories?post=10847"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/tags?post=10847"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/titanapps.io\/blog\/wp-json\/wp\/v2\/coauthors?post=10847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}