Built natively for Jira Cloud on Atlassian Forge
Ask Jira the hard questions.
JQL Function Suite adds 50 advanced search functions for relationships, comments, attachments, sprints, versions, worklogs and more—plus a controlled path for migrating ScriptRunner filters to Jira Cloud.
Function availability can depend on app configuration, Jira products and tenant index coverage.
registered JQL functions
50
search domains in one suite
13
supported operators across the catalog
controlled migration console
1
The function library
From “show me issues” to “show me what matters.”
Search the catalog below. The examples mirror the app’s built-in function library and use the Jira Cloud field syntax documented for the suite.
Why JQL Function Suite
More reach for users. More control for admins.
Every capability is designed around a real Jira Cloud constraint: richer discovery without giving up permissions, migration control or operational guardrails.
01
Search relationships and hierarchy
Move beyond flat issue lists. Traverse links, find parents and children, follow epic relationships and use explicit depth limits for highly connected issue graphs.
Direct + recursive links
Use linkedIssuesOf, linkedIssuesOfAll and depth-limited variants.
Hierarchy-aware
Search epics, subtasks, parents and portfolio relationships.
Link-type filtering
Narrow results to site-specific relationship types.
Safe depth controls
Bound recursive traversal from 1 to 10 levels.
02
Query the details native JQL misses
Find issues from their comments, attachments, dates, field relationships, remote links and worklogs—with familiar JQL composition around every function.
Comments + attachments
Filter by author, date, text, count or attachment type.
Field comparison
Compare numeric and date fields inside an issue.
Regex matching
Match project, component, version and issue-field text.
Release intelligence
Find overdue, archived or date-bounded versions.
03
Bring sprint history into the query
Find work that entered or left a sprint after it started, inspect completed and incomplete scope, and target adjacent sprints from a board.
Scope change
Find issues added or removed after sprint start.
Outcome filters
Separate completed work from unresolved sprint scope.
Board context
Use a board name or ID as the search anchor.
Adjacent sprints
Query the first future or most recently closed sprint.
04
Use results everywhere Jira uses JQL
Run functions in issue search, save them as filters, and use those filters to power boards, dashboard gadgets and subscriptions—subject to Jira permissions.
Composable
Combine functions with project, status, priority and date JQL.
Invertible
Use not in to find what is missing.
Permission-aware
Results stay governed by Jira browse permissions.
In-app examples
Search, copy JQL or open examples in Jira search.
ScriptRunner migration
Change the query. Keep the confidence.
The administrator console turns filter migration into a reviewable workflow—not a blind text replacement.
Discover
Inventory saved filters containing supported ScriptRunner-style clauses.
Compare + validate
Review both versions, then validate with Jira’s strict parser.
Dry run + convert
Simulate approved changes, then update in controlled batches.
Roll back
Use stored metadata to restore selected filters when required.
Jira search + saved filters
Users call functions with native Jira field syntax.
Atlassian Forge runtime
Custom JQL functions dispatch through guarded handlers.
Events + scheduled refresh
Issue changes and warmup jobs keep supported indexes current.
Indexed aliases + Forge SQL
Broad metadata and hierarchy searches avoid huge literal lists.
Why JQL Function Suite
More reach for users. More control for admins.
Every capability is designed around a real Jira Cloud constraint: richer discovery without giving up permissions, migration control or operational guardrails.
Scope change
Find issues added or removed after sprint start.
Outcome filters
Separate completed work from unresolved sprint scope.
Board context
Use a board name or ID as the search anchor.
Adjacent sprints
Query the first future or most recently closed sprint.
Start with a question
Useful on day one. Composable forever.
Hierarchy
Which epics still contain unresolved work?
issue in epicsOf(“resolution is EMPTY”)
Dependencies
What is blocked by unfinished work?
issue in linkedIssuesOf(“status != Done”, “is blocked by”)
Quality
Which issues have no comments yet?
issue not in hasComments()
Attachments
Where are the PDF artefacts?
issue in hasAttachments(“pdf”)
Sprint scope
What was added after sprint start?
issue in addedAfterSprintStart(“Web Board”, “Sprint 12”)
Workload
Which assignee groups exceed ten issues?
issue in aggregateExpression(“assignee”, “count(*)”, “>10”)
Operational clarity
The limits aren’t hidden.
Admins get coverage visibility, backfill controls and explicit errors where Jira or tenant configuration sets a boundary.
Rollout note: Established Jira sites should complete the required historical index backfill and test representative queries before enabling indexed functions broadly.
Issue index coverage
See indexed, total and remaining issues with a calculated coverage percentage.
Queued backfill
Start, monitor, cancel and retry background indexing with controlled scope and concurrency.
1,000-value protection
Prefer indexed/native clauses or fail explicitly instead of generating an oversized fragment.
Function controls
Administrators can disable individual functions and keep live fallback off.
Permission model
Function results remain subject to the current user’s Jira permissions.
Ready to search deeper?
Turn advanced Jira questions into reusable JQL.
Explore the public guide, review the full function catalog or talk to Gudakesa about migration and rollout for your Jira Cloud site.

