Hello,
I have 100 or so epics in my project and I have an issue type "Objective". The goal is to have the epics related to objectives. For example:
Objective A is related to:
Epic 1
Epic 2
Epic 3
Where the Objective A relates to the 3 epics. The objective would have 3 epics showing up in the "relates to" section of the Issue Links.
I am trying to use linkedIssues("key", "relates to") but I am having hard time completing the query where the Objective A shows all three epics. Can you help?
Hello @paul
You need the work item key for Objective A; i.e. XYZ-123. The filter would then
issues in linkedIssues("XYZ-123","relates to") and issuetype=Epic
What if I have multiple objectives with many features in my project, how could I take what you recommended and query on the multiple objectives to show their related epics? Thank you for your recommendations.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello @paul
If you have only native Jira JQL capabilities you would need to string together multiples of linkedIssues function with OR operators thus:
issuetype=Epic and (issues in linkedIssues("XYZ-123","relates to") or
issues in linkedIssues("XYZ-234","relates to") or
issues in linkedIssues("XYZ-345","relates to") or
issues in linkedIssues("XYZ-456","relates to"))
If you have third party apps that extend JQL capabilities, like Enhanced Search for Scriptrunner, then they may have a function that would allow you to use a filter that selects your Objectives and feed that into a linkedIssues type of function. Here is an example from Enhanced Search:
issuetype=Epic and issuefunction in linkedIssuesOf("project=XYZ and issuetype=Objective", "relates to")
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @paul
This query might help :
That should return all issues linked to that Objective via relates to. If you only want Epics, just add:
AND issuetype = Epic
This only works if you’re using ScriptRunner (since issueFunction isn’t native JQL)
If you have lots of Objectives and many Epic below them, it’s hard to see the structure and everything stays kind of “flat”.
If you would be interested in a mktplace app to view your issue structures in a tree view, you might want to look at
Issue Hierarchy Structure for Jira
This app :
provides a clean visual hierarchy (tree view)
supports custom hierarchy levels beyond Epic
enables easy navigation across relationships
and gives a quick roll-up insights without heavy setup
Do give it a try.
Disclosure:I am part of the app dev team
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @paul
I know this is already solved, but for anyone landing here with a similar setup, there's a visual approach worth knowing about that avoids the JQL maintenance entirely.
The JQL solution Trudy shared works well, but as noted, it scales awkwardly. Every time you add a new Objective, you need to update the query with another OR issues in linkedIssues("NEW-KEY", "relates to") clause. With 100+ epics across multiple objectives, that gets tedious fast.
If you're open to solutions from the Atlassian Marketplace, the app I'm working on — JXL for Jira — handles this with issue-link-based hierarchies.
You'd set up a sheet scoped to something like issuetype in (Objective, Epic), then define a hierarchy level based on the "relates to" link type. JXL nests the Epics under their linked Objectives automatically in a tree view — no hard-coded keys, no query updates when you add new Objectives.
The example gif shows epics nested under parent issues via issue link hierarchy, with expand/collapse and field columns.
You can expand/collapse each Objective, add whatever columns you need (status, story points, assignee, etc.), and use sum-ups to aggregate values from Epics up to the Objective level. The tree stays current on its own since it follows the issue links — link a new Epic to an Objective and it shows up on the next refresh.
This also works well if you later want to go deeper, e.g., showing Stories under Epics under Objectives — you'd just add another hierarchy level.
Cheers, also Paul 🙂
Disclosure: I work for the team that builds JXL.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello @paul
I'm Bartek from Orbiscend OU. And sorry for late answer :)
If you are open for third-party app, I would recommend ARGON app - Powerful JQL Search.
The native linkedIssues ( ) function is limited, but Argon's linkedByQuery and linksQuery functions are designed exactly for this kind of relationship traversal.
You want to find all Epics that are linked to a specific Objective (e.g., "OBJ-1"). The direction matters here — if Objective links to Epics, use linksQuery. If Epics link to the Objective, use linkedByQuery.
Option 1 — Objective links TO the Epics (linksQuery)
issue in linksQuery("issue = OBJ-1") AND issuetype = Epic
Option 2 — Epics link TO the Objective (linkedByQuery)
issue in linkedByQuery("issue = OBJ-1") AND issuetype = Epic
If you want to see which Objectives have the most Epics attached:
issuetype = Objective AND linksNumber > 0
Or Objectives that have no linked Epics yet:
issuetype = Objective AND linksNumber = 0
I hope you will find the above solution useful.
Greetings
Bartek from Orbiscend OU
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.