Some background: Jira Cloud, Premium License. Our company uses a custom number field called Internal Priority. This field is used by management to determine which Epics are the top priority. We have a ton of these Priority statuses, each with their own meaning, so we cannot use the built-in Priority field.
We have a prioritization meeting every week where management will update these numbers, and those updates will then get pushed to Jira in bulk. Our teams need the internal Priority number on each child issue because they view and sort the child issues on a Kanban board that does not show the Epics.
We had built an automation that will update all child issues Internal Priority field when the Parent Epic's Internal Priority field is updated. However, because we update over 100 of these Epics after every prioritization meeting, and each Epic can have between 5 to 80 children, we end up hitting the runtime limits in Jira Automations.
Attempted Solutions:
- More Automation Rules: We have already tried breaking our automation rule down into multiple rules based on the Internal Priority number, however the problem is that most of the Epics fall into one or two of these and those rules still hit the automation limits.
- ScriptRunner Listener: We had purchased ScriptRunner, thinking that it would help us to bypass this limit, but we ended up running into another limitation thanks to Jira API Rate Limiting. This is because the trigger for ScriptRunner is set to when the Epic is updated. This causes all updated Epics to trigger at the same time, which pushes too many API calls (to update the child issues) at once. I even programmed in a wait time to compensate for this and it still ends up failing. We cannot split this automation in ScriptRunner because the limit is for the API, and not the individual rule like in Jira Automations.
- ScriptRunner Scripted Fields: I thought this might be a viable solution, however there is another limitation here where the Scripted Field will only update after the issue is viewed in Jira by a user. Since we need to use this field for reporting and filtering using a Scripted Field won’t work.
Any suggestions or tips that we could look into to solve this problem?