Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Automatic reminder with unresolved tasks and subtasks (team-managed)

Elisabeth Stefanovic
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
April 25, 2025

Hello, 

 

I am working on an automation for our main Team-Managed project (44 Epics with 10-100 Stories each, some of them have up to 10 subtasks each) , that would send a weekly reminder of unresolved tasks and subtasks assigned to them (from the current sprint).

Ideally I'd like the email to look like this:

Assignee Name and greeting

Current Sprint unresolved Task 1
Current Sprint unresolved Task 2
Current Sprint unresolved Sub-task 4
Current Sprint unresolved Sub-task 5
Current Sprint unresolved Task 7
Current Sprint unresolved Sub-task 7.1 

With Tasks and Subtasks being listed independantly, unless both Task and Subtask are Unresolved and assigned to the Assignee.


I am stuck at filtering the subtasks properly, as I only seem to manage to filter out all the subtasks  , regardless of the sprint. 
I guess that because we are on a team-managed project, the simple JQL 

project = "MB" and sprint in openSprints() and type in subTaskIssueTypes()

doesn't work. I'd really like to give it one last try/push before giving up and migrating the whole project to a new one.

Screenshot 2025-04-25 at 16.13.34.png

This current setup sends me a list which is very close! 
But I still don't get the Subtask which is nested under a Task not assigned to me (MB-694), and I get the unwanted subtask (MB-696) which is Done and I only want unresolved issues. 


Screenshot 2025-04-25 at 16.17.15.png
Any help or idea would be highly appreciated! 

Also , in the email ChatGPT suggested trying #IF functions however I always get an error - if it's possible to achieve the results via functions in HTML , could you help me with ideas? 

Screenshot 2025-04-25 at 16.20.16.png

1 answer

1 vote
Bill Sheboy
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 25, 2025

Hi @Elisabeth Stefanovic -- Welcome to the Atlassian Community!

First things first: do you ever expect more than 100 issues (not subtasks) to be in the active sprint(s) AND assigned to people?  If so, your scenario likely cannot be solved with a single automation rule due to the built-in limits.  Instead, you would need to split up the issues into sets to get under the limits.

 

Let's assume you are under those limits...

To find all of the issues in the sprint, part of your shown JQL could be used (ignoring assignments for a moment), and assuming all completed items are marked as Resolved:

project = MB AND sprint IN openSprints() AND Resolved IS EMPTY

And within each returned issue, their subtasks are also returned as a list.  Using that information, a rule could use the Lookup Issues action to first gather the above issues with their subtasks, and then parse them to make a combined list of assignees for advanced branching over the distinct ones.

The combined list of distinct accountId values for the assignees would be this expression that could be used in the advanced branch to find the assigned and unresolved issues for each person (with another Lookup Issues action):

{{lookupIssues.assignee.accountId.distinct.join(",").concat(",").concat(lookupIssues.subtasks.assignee.accountId.flatten.distinct.join(",")).split(",").distinct}}

How that works is:

  • for the lookup results, use inline iteration to get the assignee, accountId values
  • extract just the distinct values from that result
  • joining them together as a comma-separated list as text
  • concatenate on another comma to separate from the subtask assignees, which are found by
    • using nested inline iteration, for the subtasks in each issue
    • gather their assignee, accountId values
    • and use the new flatten function to merge those into a single list
    • extracting just the distinct values
    • and joining them again with comma separators
  • finally, the combined values are split back into a list, and distinct is used one final time

 

There would be additional steps if people can be assigned to issues which are not in the active sprint (or their issue subtasks).  That would require first finding the issue keys from the original lookup to help the search.

 

Kind regards,
Bill

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
PRODUCT PLAN
FREE
PERMISSIONS LEVEL
Product Admin
TAGS
AUG Leaders

Atlassian Community Events