9 min read • Guide 147 of 877
Automating Workflow Transitions with Labels
Manual workflow management wastes time and introduces errors. When team members must remember to move cards, notify stakeholders, or update fields, things get missed. Label-based automation in GitScrum triggers actions automatically, ensuring consistent process execution while freeing your team to focus on actual work.
Automation Fundamentals
How Label Automation Works
AUTOMATION CONCEPT:
┌─────────────────────────────────────────────────────────────┐
│ LABEL-TRIGGERED AUTOMATION │
├─────────────────────────────────────────────────────────────┤
│ │
│ BASIC PATTERN: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ WHEN [label added/removed] ││
│ │ THEN [perform action] ││
│ │ OPTIONALLY [notify someone] ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ AUTOMATION TRIGGERS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ • Label added to task ││
│ │ • Label removed from task ││
│ │ • Task moved to column ││
│ │ • Task assigned to user ││
│ │ • Due date reached ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ POSSIBLE ACTIONS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ • Move task to column ││
│ │ • Assign task to user ││
│ │ • Add/remove other labels ││
│ │ • Set due date ││
│ │ • Send notification (Slack, Teams, Discord) ││
│ │ • Update task fields ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ EXAMPLE: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ WHEN: Label "approved" is added ││
│ │ THEN: ││
│ │ • Move task to "Ready for Dev" column ││
│ │ • Remove "needs-review" label ││
│ │ • Notify #dev-team Slack channel ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Label System Design
Designing for Automation
LABEL STRUCTURE:
┌─────────────────────────────────────────────────────────────┐
│ ORGANIZING LABELS FOR AUTOMATION │
├─────────────────────────────────────────────────────────────┤
│ │
│ USE PREFIXES FOR CATEGORIES: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Status labels (trigger column moves): ││
│ │ status/needs-design ││
│ │ status/needs-review ││
│ │ status/approved ││
│ │ status/blocked ││
│ │ status/on-hold ││
│ │ ││
│ │ Priority labels (trigger ordering): ││
│ │ priority/critical ││
│ │ priority/high ││
│ │ priority/medium ││
│ │ priority/low ││
│ │ ││
│ │ Team labels (trigger assignments): ││
│ │ team/frontend ││
│ │ team/backend ││
│ │ team/design ││
│ │ team/qa ││
│ │ ││
│ │ Type labels (trigger workflows): ││
│ │ type/bug ││
│ │ type/feature ││
│ │ type/hotfix ││
│ │ type/refactor ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ EXCLUSIVE vs ADDITIVE LABELS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Exclusive (only one at a time): ││
│ │ • Status labels - task can only be in one status ││
│ │ • Priority labels - task has one priority ││
│ │ ││
│ │ Additive (multiple allowed): ││
│ │ • Team labels - multiple teams can be involved ││
│ │ • Feature labels - task can touch multiple features ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Common Automation Recipes
Ready-to-Use Patterns
AUTOMATION RECIPES:
┌─────────────────────────────────────────────────────────────┐
│ COMMON WORKFLOW AUTOMATIONS │
├─────────────────────────────────────────────────────────────┤
│ │
│ REVIEW WORKFLOW: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Recipe: Automatic review routing ││
│ │ ││
│ │ Trigger: Task moved to "Review" column ││
│ │ Actions: ││
│ │ • Add label "status/needs-review" ││
│ │ • Assign to code review rotation (round-robin) ││
│ │ • Notify reviewer via Slack DM ││
│ │ ││
│ │ Trigger: Label "status/approved" added ││
│ │ Actions: ││
│ │ • Move to "Ready to Deploy" column ││
│ │ • Remove "status/needs-review" label ││
│ │ • Notify original assignee ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ BUG TRIAGE: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Recipe: Critical bug escalation ││
│ │ ││
│ │ Trigger: Labels "type/bug" + "priority/critical" added ││
│ │ Actions: ││
│ │ • Move to "In Progress" column (skip queue) ││
│ │ • Assign to on-call developer ││
│ │ • Set due date to today + 4 hours ││
│ │ • Send urgent notification to #incidents ││
│ │ • Add to current sprint automatically ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ BLOCKED HANDLING: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Recipe: Blocked task escalation ││
│ │ ││
│ │ Trigger: Label "status/blocked" added ││
│ │ Actions: ││
│ │ • Move to "Blocked" column ││
│ │ • Notify team lead ││
│ │ • Add to daily standup agenda ││
│ │ ││
│ │ Trigger: Label "status/blocked" removed ││
│ │ Actions: ││
│ │ • Return to previous column ││
│ │ • Notify original assignee ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ TEAM ROUTING: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Recipe: Automatic team assignment ││
│ │ ││
│ │ Trigger: Label "team/frontend" added ││
│ │ Actions: ││
│ │ • Assign to frontend team lead ││
│ │ • Move to "Frontend Backlog" column ││
│ │ • Add "needs-estimation" label ││
│ │ ││
│ │ Trigger: Label "team/backend" added ││
│ │ Actions: ││
│ │ • Assign to backend team lead ││
│ │ • Move to "Backend Backlog" column ││
│ │ • Add "needs-estimation" label ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Integration Automations
Connecting External Tools
INTEGRATION RECIPES:
┌─────────────────────────────────────────────────────────────┐
│ CROSS-PLATFORM AUTOMATION │
├─────────────────────────────────────────────────────────────┤
│ │
│ SLACK NOTIFICATIONS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ High-priority task created: ││
│ │ → Post to #urgent-tasks channel ││
│ │ → Include task title, assignee, due date ││
│ │ ││
│ │ Task completed: ││
│ │ → Post celebration to #wins channel ││
│ │ → Tag team members involved ││
│ │ ││
│ │ Sprint goal at risk: ││
│ │ → Post warning to #sprint-status ││
│ │ → Include blocked items list ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ GITHUB INTEGRATION: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ PR opened mentioning task: ││
│ │ → Move task to "In Review" column ││
│ │ → Add "has-pr" label ││
│ │ ││
│ │ PR merged: ││
│ │ → Move task to "Ready for QA" column ││
│ │ → Remove "in-progress" label ││
│ │ → Add "ready-for-testing" label ││
│ │ ││
│ │ PR closed without merge: ││
│ │ → Move task back to "In Progress" ││
│ │ → Add comment explaining PR closure ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ DEPLOYMENT AUTOMATION: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ When task has labels "deployed/staging": ││
│ │ → Move to "QA on Staging" column ││
│ │ → Assign to QA team member ││
│ │ → Notify in #qa channel ││
│ │ ││
│ │ When task has labels "deployed/production": ││
│ │ → Move to "Done" column ││
│ │ → Add "released" label ││
│ │ → Add to release notes ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Sprint Automations
Streamlining Sprint Management
SPRINT RECIPES:
┌─────────────────────────────────────────────────────────────┐
│ AUTOMATING SPRINT WORKFLOWS │
├─────────────────────────────────────────────────────────────┤
│ │
│ SPRINT START: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ When sprint starts: ││
│ │ → Notify all team members ││
│ │ → Post sprint goal to #team channel ││
│ │ → Create sprint retrospective task ││
│ │ → Archive previous sprint's "Done" tasks ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ SPRINT END WARNING: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ 2 days before sprint ends: ││
│ │ → Check for incomplete high-priority items ││
│ │ → Notify team lead of at-risk items ││
│ │ → Post status to #sprint-status channel ││
│ │ ││
│ │ Sprint ends: ││
│ │ → Move incomplete items to backlog ││
│ │ → Add "carried-over" label to incomplete items ││
│ │ → Generate sprint summary report ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ CAPACITY MANAGEMENT: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ When sprint reaches capacity (by points): ││
│ │ → Prevent adding more items without removal ││
│ │ → Notify planning lead ││
│ │ ││
│ │ When team member overloaded: ││
│ │ → Alert team lead ││
│ │ → Suggest task redistribution ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Best Practices
Making Automation Work
AUTOMATION PRINCIPLES:
┌─────────────────────────────────────────────────────────────┐
│ DESIGNING EFFECTIVE AUTOMATIONS │
├─────────────────────────────────────────────────────────────┤
│ │
│ START SIMPLE: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Week 1: Basic notifications ││
│ │ • New high-priority task → notify team ││
│ │ • Task completed → notify stakeholder ││
│ │ ││
│ │ Week 2: Column automations ││
│ │ • Status labels → move to columns ││
│ │ • Team labels → assign to team leads ││
│ │ ││
│ │ Week 3+: Complex workflows ││
│ │ • Multi-step approval processes ││
│ │ • Cross-team coordination ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ AVOID AUTOMATION LOOPS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Problem: ││
│ │ Rule 1: "approved" label → move to "Ready" ││
│ │ Rule 2: Move to "Ready" → add "approved" label ││
│ │ Result: Infinite loop ││
│ │ ││
│ │ Solution: ││
│ │ • Each automation should have one trigger ││
│ │ • Don't trigger on the action you're creating ││
│ │ • Test automations in sandbox project first ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ DOCUMENT YOUR AUTOMATIONS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ In NoteVault, create "Automation Documentation": ││
│ │ ││
│ │ ## Active Automations ││
│ │ ││
│ │ | Trigger | Action | Purpose | ││
│ │ |---------|--------|---------| ││
│ │ | Label "approved" | Move to Ready | Speed up workflow |││
│ │ | Label "blocked" | Notify lead | Quick unblocking | ││
│ │ ││
│ │ Why: New team members understand what happens ││
│ │ automatically vs what they need to do manually ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘