Skip links
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.

This website uses cookies to improve your web experience.