Hello,
I've been exploring options to improve how our team handle client requests and have hit a hurdle on one idea. Hoping to get some clarification if I am missing an approach or if my research so far is correct in that this cannot be done cleanly.
The requirement is as follows: when a ticket of a specific Request Type transitions from status A to B, append the Reporter(s) and Requested participants from all linked tickets to the trigger issue. All required issues and tickets are in the same Project.
An example:
- Issue SD1 has Reporter 'Ben' and Request participants 'Jane' and 'Jim'
- SD1 also has two linked tickets, SD2 and SD3
- SD2 has Reporter 'Bob' and Request participants 'Adam'
- SD3 has Reporter 'Tim' and Request participants 'Sally' and 'Bill'
- Issue SD1 transitions from status A to B and triggers the automation
- The Request Participants field on SD1 is appended to include both Reporters and all Request participants from SD2 and SD3
- i.e. SD1 Request Participants goes from ('Jane', 'Jim') to ('Jane', 'Jim', 'Bob', 'Adam', 'Tim', 'Sally', 'Bill')
For the most part I can get this to work with the below rule:
- Trigger on status change from Awaiting Approval to Awaiting NOC
- Request Type = Client Update and linked issues present
- Create smart variable LinkedReporter initialised as NULL
- Create smart variable LinkedParticipants initialised as NULL
- Branch
- All link types within same Project
- Request Type is App Support
- Create smart variable LinkedReporter using issue.reporter.accountId
- Create smart variable LinkedParticipants using issue.Request Participants.accountId
- Set Request Participants to Copy from issue (retains existing) as well as LinkedReporter and LinkedParticipants
This works fine with zero or one linked ticket, but since the Branch runs parallel to the rest of the rule if there is more than one linked ticket the variables are still NULL when being used at the end. I can see that this parallel behaviour is expected and that without adding bloat (e.g. web request) there's no way to create a wait/delay.
I'm hoping that there might be a cleaner solution for what I am trying to do that bypasses these limitations though. What I've made above is done purely from searching online and testing so there's a good chance there is a simpler solution somewhere.
Thanks in advance!