robotsnoindex

The following best practice guidelines will allow you to optimize the performance and manageability of your automation rule configuration.

Manageability

Plan your rules before creating them

Planning your rules ahead of time will help you work out the rules that you must have, and where you can instead combine rules by using conditions.

Start with your workflows and the actions you want to occur, then work backwards to what events you want to trigger those actions. Do you want to send out emails on every customer feedback comment on an issue, or just on issues of high priority?

Align your automation strategy with your business and operational processes

Automation rules are designed to help your business and operational process work more efficiently – they should align. A review of your automation rules should occur alongside reviews of your business and operational processes.

Performance

Restrict your rules to specific projects only

Convert as many of your rules from Global to Project as possible. Consider whether rules apply to a single project, or if you want to run them across multiple projects. This change improves the efficiency of your rules as any events from projects with no matching rule are filtered out. As a result, there are less rules that need to be queued for execution.

Combine Rules

Each rule may function perfectly well alone, but rules can often work better together. Are you able to use the same rule for multiple current rules? For example, you might have a rule that branches on the current rule and then runs conditions and actions underneath.

Select an appropriate trigger

For example, Field Value Changed is far more economical than Issue Updated, and even better when you limit it to certain actions. If you only want the action to run on issue creation, make sure to select that option on the trigger.

Use Compare conditions as early as possible in the rule chain

Use Advanced compare conditions as early as possible in your rule. Ideally, you should be chaining these conditions at the start of your rule to exclude all the issues you don’t want to operate on as early as possible.

Move more expensive checks further down the rule chain

JQL conditions are more expensive than running an Advanced compare condition . For example, checking if status = Done requires more processing than comparing {{issue.status.name}} equals Done. Try to avoid them as much as possible, or push them to the back of the chain.

Use branch rules sparingly

Only use branch rules where you absolutely must. For example, the For current issue branch rule will spawn a new process. This is a good option if you are combining rules, but if it doesn’t serve a purpose then it can have negative effects on performance.