Performance Considerations
Well-designed rules perform efficiently even in large rule sets. This guide provides practical tips for optimizing rule performance and avoiding slowdowns.
When Performance Matters
Small rule sets (1-20 rules): Performance is rarely an issue Medium rule sets (20-50 rules): Start monitoring performance Large rule sets (50+ rules): Performance optimization becomes important
Signs of performance issues:
- Form loading takes 2+ seconds
- Noticeable delay when changing field values
- Spinner icon visible for extended time
- Browser becomes sluggish
Minimize Condition Complexity
Principle: Simple conditions evaluate faster than complex conditions.
Keep Conditions Simple
Good:
Condition: Priority = High
Evaluation: Fast (single field, simple comparison)
Slower:
Conditions (AND): Priority equals High
Summary contains backend
Current user is in group "Developers"
Evaluation: Slower (multiple fields, multiple comparisons)
Optimization:
- Use simple equality checks when possible
- Avoid long lists of conditions unless necessary
- Break complex rules into multiple simpler rules if performance issues occur
Avoid Unnecessary Field References
Principle: Only reference fields actually used in conditions or actions.
Smart Values: Reference Only What You Need
Each field() in a Smart Value ties the rule to that field: when the field changes, the rule runs again and sets the value again. Use field() only when the value really depends on another field.
Depends on another field:
Set Review Date = {{subtractBusinessDays(field("duedate"), 3)}}
Needs no other field:
Set Due Date = {{today().plusBusinessDays(3)}}
Best practice: Keep Smart Values simple and reference minimum required fields.
Be Specific with Context Filters
Principle: Narrow scope reduces evaluation overhead.
Use Specific Scopes
Less efficient:
Scope: All issue types
Condition: Issue Type = Bug
Rule evaluates for all issues, then filters by condition.
More efficient:
Scope: Bug
Condition: (other conditions)
Rule only evaluates for Bug issues.
Why this matters:
- Scope filtering happens before condition evaluation
- Narrower scope = fewer rule evaluations
- Fewer evaluations = better performance
Target Specific Projects
If using rules in multiple projects, be as specific as possible:
Less efficient:
- Apply same rule to all projects
- Rule evaluates everywhere, even where not needed
More efficient:
- Create project-specific rules
- Rules only evaluate in relevant projects
Note: Formify is per-project, so this is automatic. This tip applies if you're copying rules across projects.
Monitor Rule Count
Principle: Too many rules per screen can impact performance.
Rule Count Guidelines
Recommended limits per screen:
- Global Issue Create: 20-30 rules maximum
- Issue View: 20-30 rules maximum
- Issue Transition: 15-25 rules maximum (per transition)
Warning signs:
- 40+ rules on single screen
- Forms load slowly
- Users complain about sluggishness
UI Modifications Apps Limit
Platform limit: Maximum 5 UI Modifications apps per project + issue type + screen
Performance impact:
- Each app adds evaluation overhead
- 5 apps with 10 rules each = 50 rules to evaluate
- Consolidate functionality into fewer apps when possible
See Known Platform Limitations for details.
Consolidate Related Rules
Inefficient (3 rules):
Rule 1: Hide Field A when Priority = Low
Rule 2: Hide Field A when Priority = Lowest
Rule 3: Hide Field A when Priority = Medium
More efficient (1 rule):
Rule: Hide Field A when Priority = Low OR Priority = Lowest OR Priority = Medium
Note: Each rule has one action on one field, so only rules on the same field with the same action can be merged. Rules for different fields stay separate.
Optimize Smart Values
Use Simple Date Functions
A Smart Value is one expression built from functions such as today(), nextWeek(), startOfWeek(), addDays() and .plusBusinessDays(). Pick the function that says what you mean:
Set Due Date = {{addWeeks(startOfWeek(), 1)}}
This gives next Monday without any extra calculation.
Put Decisions in Conditions
Smart Values have no if/else and no arithmetic. When the value depends on the situation, give each case its own rule with its own condition:
Rule 1: Set Due Date = {{today().plusBusinessDays(1)}} when Priority = High
Rule 2: Set Due Date = {{nextWeek()}} when Priority not equals High
Calculations across several fields belong in Jira Automation after the issue is created.
Performance Testing
Measure Form Load Time
How to measure:
- Open browser Developer Tools (F12)
- Go to Performance tab
- Start recording
- Open Create issue dialog (or Issue View)
- Stop recording when form fully loads
- Check timeline for loading duration
Benchmarks:
- Good: Under 1 second
- Acceptable: 1-2 seconds
- Slow: 2-3 seconds
- Problem: Over 3 seconds
Test with Different Rule Counts
Methodology:
- Measure performance with 10 rules
- Add 10 more rules
- Re-measure performance
- Repeat until you identify performance threshold
Goal: Find the rule count where performance degrades, then stay below that threshold.
Performance Optimization Checklist
Rule design:
- Conditions are simple (no deep nesting)
- Only necessary fields referenced
- Scope is as specific as possible
- Smart Values use simple functions
Rule set:
- Rule count per screen is reasonable (<30)
- Related rules consolidated where possible
- No duplicate or redundant rules
- Form load time under 2 seconds
Monitoring:
- Tested performance with real users
- Browser console shows no errors
- No user complaints about slowness
When to Refactor for Performance
Refactor if:
- Form load time exceeds 3 seconds
- Users report sluggishness
- Browser performance profiling shows rule evaluation bottleneck
- Rule count exceeds 40 per screen
Refactoring strategies:
- Simplify conditions - break complex rules into simpler ones
- Reduce rule count - consolidate or remove unnecessary rules
- Narrow scope - target specific issue types instead of "all"
- Optimize Smart Values - use built-in functions instead of complex calculations
- Move logic elsewhere - use Jira Automation for post-creation processing
Platform Performance Factors
Beyond your control:
Jira Cloud performance:
- Atlassian infrastructure load
- Network latency
- User's internet connection speed
UI Modifications API:
- API evaluation speed (Atlassian-controlled)
- Browser rendering performance
User's environment:
- Browser type and version
- Device performance (mobile vs desktop)
- Active browser extensions
What you can control:
- Rule complexity
- Number of rules
- Field references
- Smart Value complexity
Focus on optimizing what you can control.
Troubleshooting Performance Issues
Slow Form Loading
Diagnosis:
- Check rule count (how many rules per screen?)
- Check condition complexity (are conditions simple?)
- Check browser console (any errors?)
- Test with rules disabled (does performance improve?)
Solutions:
- Reduce rule count
- Simplify complex conditions
- Remove unused rules
- Consolidate related rules
Delayed Field Updates
Diagnosis:
- Which field changes trigger slowness?
- How many rules reference that field?
- Are Smart Values complex?
Solutions:
- Simplify Smart Values
- Reduce rules referencing that field
- Use simpler conditions
Browser Becomes Unresponsive
Diagnosis:
- Extremely high rule count (50+)?
- Very complex Smart Values?
- Multiple UI Modifications apps?
Solutions:
- Significantly reduce rule count
- Disable other UI Modifications apps
- Contact support for advanced troubleshooting
Related Pages
Design:
- Designing Effective Rules - Create efficient rules
Organization:
- Organizing Rules - Structure reduces complexity
Testing:
- Testing Rules - Include performance testing
Limitations:
- Known Platform Limitations - Platform constraints
Troubleshooting:
- Common Issues - Performance problems
- Debugging Rules - Debug slow rules
Well-optimized rules provide instant feedback to users. Keep rules simple, specific, and focused for best performance.