Workflow Automation Best Practices | Dev Teams
Automate repetitive tasks with trigger-based rules. GitScrum workflow automation handles status changes, assignments, and notifications automatically.
9 min read
Automation removes friction and enforces consistency. GitScrum's workflow automation helps teams define rules that execute automatically based on triggers.
Why Automate
Manual vs Automated
AUTOMATION VALUE:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β MANUAL WORKFLOW PROBLEMS: β
β β
β "Remember to move to In Review when PR is open" β
β β Forgets 30% of the time β
β β
β "Assign to QA when development is done" β
β β QA finds out late, delays testing β
β β
β "Notify stakeholders when feature ships" β
β β Sometimes forgets, stakeholders complain β
β β
β "Close tasks when PR merges" β
β β Tasks sit in wrong status for days β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β WITH AUTOMATION: β
β β
β PR opened β Task moves to "In Review" β
β β Automatically, every time β
β β
β Task done β QA assigned β
β β Notification sent β
β β Instantly, no forgetting β
β β
β Feature ships β Stakeholders notified β
β β Release notes updated β
β β Consistent, reliable β
β β
β AUTOMATION SAVES: β
β β’ Time (no manual updates) β
β β’ Mental load (no remembering) β
β β’ Errors (no forgetting) β
β β’ Delays (instant execution) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
What to Automate
Good Automation Candidates
AUTOMATE THESE:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β STATUS TRANSITIONS: β
β β
β IF task assigned β
β THEN move to "In Progress" β
β β
β IF all subtasks complete β
β THEN move parent to "Ready for Review" β
β β
β IF PR merged β
β THEN move task to "Done" β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ASSIGNMENTS: β
β β
β IF bug created with label "frontend" β
β THEN assign to @frontend-team β
β β
β IF task moves to "QA" β
β THEN assign to @qa-lead β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β NOTIFICATIONS: β
β β
β IF task due in 24 hours β
β THEN remind assignee β
β β
β IF task blocked for > 2 days β
β THEN notify team lead β
β β
β IF high-priority task created β
β THEN notify channel β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β LABELS & FIELDS: β
β β
β IF task in "Done" for > 7 days β
β THEN add label "Ready to Archive" β
β β
β IF task has no assignee after 48h β
β THEN add label "Needs Owner" β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
What Not to Automate
KEEP THESE MANUAL:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β β JUDGMENT CALLS: β
β β
β "Auto-approve if code passes tests" β
β β Code review requires human judgment β
β β
β "Auto-assign based on workload" β
β β Ignores expertise, preferences, context β
β β
β β COMPLEX EXCEPTIONS: β
β β
β "If type X and priority Y and assignee Z..." β
β β Too complex, will break and confuse β
β β
β β FREQUENTLY CHANGING: β
β β
β "Route based on current team structure" β
β β Structure changes, automation breaks β
β β
β β VALUABLE FRICTION: β
β β
β "Auto-deploy on merge" β
β β Manual deploy approval may be intentional β
β β
β "Auto-close stale tasks" β
β β Might close important items β
β β
β RULE OF THUMB: β
β β
β Automate process, not decisions β
β Automate the obvious, not the subtle β
β Automate what's stable, not what changes β
β When in doubt, keep manual β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Automation Rules
Building Effective Rules
ANATOMY OF A GOOD AUTOMATION:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β STRUCTURE: β
β β
β TRIGGER (When): β
β β’ Event that starts the automation β
β β’ Examples: created, updated, moved, due date approaching β
β β
β CONDITIONS (If): β
β β’ Filters to check before acting β
β β’ Examples: type = bug, priority = high, has label β
β β
β ACTIONS (Then): β
β β’ What happens β
β β’ Examples: move, assign, notify, add label β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β EXAMPLE RULES: β
β β
β RULE: Auto-triage bugs β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β TRIGGER: Task created ββ
β β CONDITIONS: ββ
β β β’ Type = Bug ββ
β β β’ Priority = Critical ββ
β β ACTIONS: ββ
β β β’ Add label "Urgent" ββ
β β β’ Notify @on-call ββ
β β β’ Move to "Triage" ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β RULE: Ready for review notification β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β TRIGGER: Task moved to "In Review" ββ
β β CONDITIONS: None ββ
β β ACTIONS: ββ
β β β’ Notify code reviewers ββ
β β β’ Set due date to +2 days ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Common Automation Patterns
PROVEN AUTOMATION RECIPES:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β PATTERN 1: WORKFLOW PROGRESSION β
β β
β Backlog β Assigned? β In Progress β Done? β
β Auto-move based on actions β
β β
β PATTERN 2: ESCALATION β
β β
β High priority + no action in 24h β Notify manager β
β Critical bug + no assignee β Auto-assign on-call β
β β
β PATTERN 3: CLEANUP β
β β
β Done tasks > 30 days β Archive automatically β
β Stale items (no update 60d) β Add "stale" label β
β β
β PATTERN 4: VCS INTEGRATION β
β β
β PR opened with task ID β Move to "In Review" β
β PR merged β Move to "Done" β
β CI failed β Add "Needs Fix" label β
β β
β PATTERN 5: SLA TRACKING β
β β
β New bug β Start SLA timer β
β Approaching SLA β Notify owner β
β SLA breached β Escalate to lead β
β β
β PATTERN 6: CROSS-TEAM HANDOFFS β
β β
β Frontend done β Create backend task β
β Dev done β Notify QA with test info β
β QA approved β Notify release manager β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
GitScrum Automation Setup
Creating Rules in GitScrum
GITSCRUM AUTOMATION CONFIGURATION:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β SETTINGS β AUTOMATIONS β NEW RULE β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Rule Name: Auto-assign QA on Dev Complete ββ
β β ββ
β β TRIGGER ββ
β β ββββββββ ββ
β β When: [Task moves βΌ] ββ
β β To: [In Review βΌ] ββ
β β ββ
β β CONDITIONS (optional) ββ
β β βββββββββββββββββββββ ββ
β β + Add condition ββ
β β ββ
β β ACTIONS ββ
β β βββββββ ββ
β β β Assign to: [@qa-team βΌ] ββ
β β β Notify: [#qa-channel βΌ] ββ
β β β Add label ββ
β β β Set due date ββ
β β + Add action ββ
β β ββ
β β [Save Rule] ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ACTIVE AUTOMATIONS: β
β β
β β
Auto-assign QA on Dev Complete β
β β
Move to In Progress on Assignment β
β β
Notify on Critical Bug β
β βΈοΈ Archive Done Tasks (disabled) β
β β
β [+ New Automation] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Testing Automations
AUTOMATION TESTING CHECKLIST:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β BEFORE ENABLING: β
β β
β 1. TEST IN SANDBOX β
β β’ Create test task β
β β’ Trigger the condition β
β β’ Verify action executes correctly β
β β
β 2. CHECK EDGE CASES β
β β’ What if task already in target state? β
β β’ What if assignee doesn't exist? β
β β’ What if triggered multiple times? β
β β
β 3. VERIFY NO LOOPS β
β β’ Rule A triggers B, B triggers A? β
β β’ Infinite loop = broken system β
β β
β 4. CONFIRM NOTIFICATIONS DON'T SPAM β
β β’ Too many alerts = ignored alerts β
β β’ Check notification frequency β
β β
β AFTER ENABLING: β
β β
β 1. MONITOR FOR 1 WEEK β
β β’ Watch for unexpected behavior β
β β’ Check team feedback β
β β
β 2. REVIEW EXECUTION LOGS β
β β’ Automation ran: 47 times β
β β’ Success: 46 β
β β’ Errors: 1 (investigate) β
β β
β 3. ADJUST AS NEEDED β
β β’ Refine conditions β
β β’ Add missing cases β
β β’ Remove if not valuable β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Measuring Automation Value
Automation Metrics
TRACKING AUTOMATION IMPACT:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β METRICS TO TRACK: β
β β
β TIME SAVED: β
β Before: 15 min/day on status updates β
β After: 0 min (automated) β
β Savings: 5+ hours/month β
β β
β CONSISTENCY: β
β Before: 30% of tasks not updated on time β
β After: 100% updated automatically β
β β
β RESPONSE TIME: β
β Before: Avg 4h for critical bug acknowledgment β
β After: < 5 min (auto-notification) β
β β
β ERROR REDUCTION: β
β Before: 12% of tasks in wrong status β
β After: < 2% β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β AUTOMATION HEALTH: β
β β
β Active rules: 8 β
β Executions this week: 234 β
β Success rate: 99.1% β
β Failed: 2 (permission issue - fixed) β
β β
β Top performing: β
β 1. Auto-move on PR merge: 87 executions β
β 2. Due date reminders: 45 executions β
β 3. Bug triage: 34 executions β
β β
β Never triggered (consider removing): β
β β’ "Escalate urgent tasks" - 0 executions β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ