Multi-Level Agile Boards (How to Handle Epics)

A few weeks ago on the YouTrack blog you proposed a way to handle Epics

I was able to configure both boards successfully. What I haven’t been able to figure out is the link between the two boards as far as the State of each task. Since the work will be done by developers, the tasks on the developer board will be moving between states, but unless they also update the state of the swimlane (feature) task, we will not be able to see the progress on the Epics board.

I’m interested to know how this is working for others?
Hi Rhona,
You can use Subtasks Management workflow from our workflow repository: to resolve your Feature automatically when all the subtasks are resolved. Will it work for you?
Hi Valerie,

That works perfectly! Thanks.

Any ideas on how to update the status of the epic or feature to In Progress, when the state of a sub-task is changed to In Progress?  I tried what was mentioned in another post ( but haven't been successful.

Hi rhona,

yep, it can be done by the workflow system. What exact you aren't succeed in?
Hi Dimitry,

I have 2 separate use cases for this requirement:

1- Whenever a sub-task's state is changed to In Progress I want to update the parent tasks's state to be In Progress
    The workflow referenced in thread YouTrack-1550 only updates the state when the first reported sub-task's state
    changes.  The first sub-task created isn't always necessarily the first task we work on.  Do you know how I could do this?

2 - I have a custom field called Tier that is of type group[1].  For each task I assign the value of this field depending
    on what group should work on it (i.e. Developers, QA, Server Admin, etc.)  
    I want to notify all of the users in a specific
    user group, i.e. Server Admin, when all tasks marked as Tier Developers are Completed so that they can deploy the specific user story.
Currently my workflow looks like this:  (It is not sending the notifications)

when issue.Tier == {Developers} && issue.State.changed && issue.subtask of.isNotEmpty {
  for each parent in subtask of {
    if (parent.State == {Completed}) {
      var DevComplete = true;
      for each subtask in parent.parent for {
        if (subtask.State != {Completed}) {
          DevComplete = false;
      if ((DevComplete)) {
        var group = {group: ITS};
        for each user in group.getUsers() {
          user.notify("Task Ready for Deployment", "Please Deploy User Story" + issue.getId());

Can you help with this please?

1. You can write your own workflow that will be similar to the default 'jetbrains-youtrack-subtasks' and provide there condition on subtask's state:
rule In progress parent task on any subtask in progress 
when State != null && subtask of.isNotEmpty && State.becomes({In Progress}) { 
  var parent = subtask of.first; 
  if (parent != null && !(parent.project.isArchived()) && parent.isResolved()) { 
    parent.State = {In Progress}; 
    message("Automatically set 'In progress' to the parrent issue " + parent.getId()); 

2. To define the root cause of the problem please insert debug() statement near the user.notify() method.

Note, if user is equal to the logged into YouTrack user the workflow notification won't be sent if the option "Receive notification on my own changes" is turned off in the profile. If logged in user want to get workflow notification anyway please use the workflow method notify(string subject, string body, boolean ignoreNotifyOnOwnChangesSetting).
Thanks Dmitry.

I will test your suggestion for part 1 of my question.

For part 2 the problem is that my for each subtask in parent.parent for is considering all subtasks for the parent
Do you know of a way I can specify all subtasks for the parent that are belonging to tier Developers?

So If i have parent task 1, with 4 sub-tasks
Sub-task 1 Tier Developers
Sub-task 2 Tier Developers
Sub-task 3 Tier IT Support
Sub-Task 4 Tier QA

I need to only verify that sub-task 1 and sub-task 2 are Completed and ignore sub-task 3 and sub-task 4
You can check if subtask.Tier == {Developers} inside the loop, can't you?
that would be ideal, unfortunately it is not working, that's why I posted the question.
Please provide a piece of code in which subtask.Tier == {Developers} doesn't work. What if add debug(subtask.Tier) output to see the actual subtask.Tier value? Debug output can be found in the logs/workflow.log
Ok, so I think the problem was actually something with the IDE.  I have re-installed because I was having other random issues with it and now it seems to be working.  When I was attempting to enter subtask.Tier == {Developers} I would get an error saying: Type null is not subtype of boolean, I was also getting No Variants for "subtask", and other errors.  Now that I have reinstalled this workflow is working and my other random IDE issues are gone.

Please sign in to leave a comment.