11 min read • Guide 116 of 877
Setting Up Automated Workflow Triggers
Manual task management overhead compounds as teams grow, consuming hours that could go toward actual development work. GitScrum's automation features let you define triggers that automatically update statuses, assign tasks, send notifications, and archive completed work based on board activity, time conditions, or integration events from GitHub, GitLab, and Bitbucket.
Automation Benefits
Eliminating Manual Work
WHAT AUTOMATIONS SAVE:
┌─────────────────────────────────────────────────────────────┐
│ BEFORE AND AFTER AUTOMATION │
├─────────────────────────────────────────────────────────────┤
│ │
│ WITHOUT AUTOMATION (DAILY TASKS): │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Manual work per developer/day: ││
│ │ ││
│ │ Move task to In Progress when starting ~30 sec ││
│ │ Assign self to task ~15 sec ││
│ │ Move task to Review when PR created ~30 sec ││
│ │ Move to Done when PR merged ~30 sec ││
│ │ Archive old completed tasks ~5 min/week ││
│ │ Notify QA when ready for testing ~30 sec ││
│ │ Update stakeholders on completion ~1 min ││
│ │ ││
│ │ Per dev: ~15 min/day on task management ││
│ │ Team of 8: 10 hours/week of overhead ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ WITH AUTOMATION: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ All of the above happens automatically ││
│ │ ││
│ │ Developer work: ││
│ │ • Start working → Status updates itself ││
│ │ • Push code → Task links to PR ││
│ │ • PR merged → Task moves to Done ││
│ │ • Notifications sent automatically ││
│ │ • Old tasks archived on schedule ││
│ │ ││
│ │ Time saved: ~10 hours/week ││
│ │ Errors eliminated: Forgotten updates, wrong statuses ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Status Automations
Auto-Update Task Status
GIT INTEGRATION TRIGGERS:
┌─────────────────────────────────────────────────────────────┐
│ STATUS CHANGES FROM GIT EVENTS │
├─────────────────────────────────────────────────────────────┤
│ │
│ BRANCH CREATED: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Trigger: Branch name contains task ID ││
│ │ Example: feature/GS-123-user-auth ││
│ │ ││
│ │ Actions: ││
│ │ • Move task GS-123 to "In Progress" ││
│ │ • Auto-assign to branch creator ││
│ │ • Link branch to task ││
│ │ ││
│ │ Setup: Enable in Project Settings > Integrations ││
│ │ Branch format: [type]/[task-id]-[description] ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ PULL REQUEST OPENED: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Trigger: PR title/description contains task ID ││
│ │ Example: "Fix login issue GS-123" ││
│ │ ││
│ │ Actions: ││
│ │ • Move task to "In Review" ││
│ │ • Link PR to task ││
│ │ • Add PR status badge to task ││
│ │ • Optionally: Notify assigned reviewer ││
│ │ ││
│ │ Setup: Enable GitHub/GitLab/Bitbucket integration ││
│ │ Reference format: "GS-123" or "Closes GS-123" ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ PULL REQUEST MERGED: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Trigger: PR merged in main/master branch ││
│ │ ││
│ │ Actions: ││
│ │ • Move task to "Done" or "Ready for QA" ││
│ │ • Add completion timestamp ││
│ │ • Update time tracking if using estimates ││
│ │ • Notify stakeholders via Slack/Teams/Discord ││
│ │ ││
│ │ Configuration options: ││
│ │ • Done = Merge to main (for direct deploy) ││
│ │ • Ready for QA = Merge to main (if QA tests) ││
│ │ • Per-branch rules for different workflows ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ CI/CD STATUS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Trigger: Build/deploy status changes ││
│ │ ││
│ │ Actions: ││
│ │ • Build failed → Add "CI-Failed" label ││
│ │ • Deploy success → Move to "Deployed" ││
│ │ • Tests failed → Move back to "In Progress" ││
│ │ ││
│ │ Benefit: Board reflects actual deployment state ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Assignment Automations
Auto-Assign Rules
AUTOMATIC TASK ASSIGNMENT:
┌─────────────────────────────────────────────────────────────┐
│ ASSIGNMENT TRIGGERS │
├─────────────────────────────────────────────────────────────┤
│ │
│ ROUND-ROBIN ASSIGNMENT: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Trigger: New task created with specific label ││
│ │ Example: Tasks with label "bug" or "support" ││
│ │ ││
│ │ Action: Assign to next person in rotation ││
│ │ ││
│ │ Rotation: @maria → @carlos → @ana → @pedro → @maria... ││
│ │ ││
│ │ Use case: Fair distribution of bugs/support tickets ││
│ │ Benefit: No one person gets overloaded ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ LABEL-BASED ASSIGNMENT: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Trigger: Task receives specific label ││
│ │ ││
│ │ Rules: ││
│ │ • Label "frontend" → Assign @frontend-team ││
│ │ • Label "backend" → Assign @backend-team ││
│ │ • Label "urgent" → Assign @tech-lead + notify ││
│ │ • Label "security" → Assign @security-team ││
│ │ ││
│ │ Use case: Route specialized work automatically ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ COLUMN-BASED ASSIGNMENT: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Trigger: Task moves to specific column ││
│ │ ││
│ │ Rules: ││
│ │ • Task → "In QA" → Assign @qa-team ││
│ │ • Task → "In Review" → Assign @code-reviewers ││
│ │ • Task → "Blocked" → Add @project-manager ││
│ │ ││
│ │ Use case: Different people for different stages ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ WORKLOAD-AWARE ASSIGNMENT: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Trigger: Task needs assignment ││
│ │ ││
│ │ Logic: Check current workload before assigning ││
│ │ ││
│ │ Factors considered: ││
│ │ • Tasks currently in progress ││
│ │ • Story points assigned this sprint ││
│ │ • Time tracking data ││
│ │ ││
│ │ Result: Assign to person with most capacity ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Notification Automations
Smart Alerts
AUTOMATED NOTIFICATIONS:
┌─────────────────────────────────────────────────────────────┐
│ NOTIFICATION TRIGGERS │
├─────────────────────────────────────────────────────────────┤
│ │
│ SLACK/TEAMS/DISCORD INTEGRATION: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Channel notifications: ││
│ │ ││
│ │ #team-updates: ││
│ │ • Task completed → "✅ GS-123 done by @maria" ││
│ │ • Sprint started → "🏃 Sprint 14 started" ││
│ │ • Sprint ended → "📊 Sprint 14 complete: 34/40 pts" ││
│ │ ││
│ │ #urgent: ││
│ │ • Task marked urgent → "🔥 GS-123 needs attention" ││
│ │ • Task blocked 2+ days → "⛔ GS-123 blocked since Mon" ││
│ │ ││
│ │ #qa-ready: ││
│ │ • Task → In QA → "🧪 GS-123 ready for testing" ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ STAKEHOLDER UPDATES: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Non-technical stakeholders: ││
│ │ ││
│ │ Weekly digest email: ││
│ │ • Tasks completed this week ││
│ │ • Sprint progress percentage ││
│ │ • Risks/blockers ││
│ │ ││
│ │ Instant notifications: ││
│ │ • Feature marked "Released" ││
│ │ • Milestone completed ││
│ │ • Critical bug found ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ DUE DATE REMINDERS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Automatic reminders: ││
│ │ ││
│ │ 3 days before: "📅 GS-123 due in 3 days" ││
│ │ 1 day before: "⚠️ GS-123 due tomorrow" ││
│ │ On due date: "🔔 GS-123 due today" ││
│ │ Overdue: "❌ GS-123 overdue by 2 days" ││
│ │ ││
│ │ Recipients: Assignee + Project Manager ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Archive Automations
Auto-Archive Rules
KEEPING BOARDS CLEAN:
┌─────────────────────────────────────────────────────────────┐
│ AUTOMATIC ARCHIVING │
├─────────────────────────────────────────────────────────────┤
│ │
│ TIME-BASED ARCHIVING: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Enable auto-archive in Project Settings ││
│ │ ││
│ │ Rule options: ││
│ │ • Archive tasks in "Done" for 7+ days ││
│ │ • Archive tasks in "Done" for 14+ days ││
│ │ • Archive tasks in "Done" for 30+ days ││
│ │ ││
│ │ What happens: ││
│ │ • Tasks move to archive (not deleted) ││
│ │ • Still searchable and viewable ││
│ │ • Don't clutter active board ││
│ │ • Can be unarchived if needed ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ SPRINT-BASED ARCHIVING: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Trigger: Sprint closes ││
│ │ ││
│ │ Actions: ││
│ │ • Archive all "Done" tasks from that sprint ││
│ │ • Move incomplete tasks to next sprint or backlog ││
│ │ • Generate sprint report ││
│ │ ││
│ │ Benefit: Clean slate each sprint ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ CONDITIONAL ARCHIVING: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Keep certain tasks longer: ││
│ │ ││
│ │ Rules: ││
│ │ • Never auto-archive tasks with label "reference" ││
│ │ • Keep "release" tasks for 90 days ││
│ │ • Keep tasks with external links for 30 days ││
│ │ ││
│ │ Use case: Important decisions/context preserved ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Custom Automation Flows
Complex Workflows
MULTI-STEP AUTOMATIONS:
┌─────────────────────────────────────────────────────────────┐
│ CHAINING ACTIONS │
├─────────────────────────────────────────────────────────────┤
│ │
│ BUG TRIAGE FLOW: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Trigger: Task created with label "bug" ││
│ │ ││
│ │ Actions (in sequence): ││
│ │ 1. Add to "Triage" column ││
│ │ 2. Assign to triage rotation ││
│ │ 3. Set due date = created + 24 hours ││
│ │ 4. Notify #bugs channel ││
│ │ 5. Apply priority label based on keywords ││
│ │ (crash, data loss → critical) ││
│ │ (slow, performance → high) ││
│ │ (other → normal) ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ RELEASE CHECKLIST: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Trigger: Task added to "Release" column ││
│ │ ││
│ │ Actions: ││
│ │ 1. Create subtasks: ││
│ │ □ Code review complete ││
│ │ □ QA passed ││
│ │ □ Documentation updated ││
│ │ □ Release notes written ││
│ │ 2. Assign checklist items to relevant people ││
│ │ 3. Block "Deploy" until all subtasks complete ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ESCALATION PATH: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Trigger: Task blocked for X days ││
│ │ ││
│ │ Day 1: Reminder to assignee ││
│ │ Day 2: CC project manager ││
│ │ Day 3: Escalate to team lead + Slack alert ││
│ │ Day 5: Escalate to engineering manager ││
│ │ ││
│ │ Benefit: Issues don't get stuck silently ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Zapier Integration
External Automations
CONNECTING EXTERNAL SERVICES:
┌─────────────────────────────────────────────────────────────┐
│ ZAPIER/WEBHOOK TRIGGERS │
├─────────────────────────────────────────────────────────────┤
│ │
│ ZAPIER EXAMPLES: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ External trigger → GitScrum action: ││
│ │ ││
│ │ • Zendesk ticket created → Create task + label "support"││
│ │ • Intercom conversation → Create task + customer info ││
│ │ • Form submitted → Create task from form data ││
│ │ • Sentry error → Create bug task with error details ││
│ │ • Calendar event → Create task with due date ││
│ │ ││
│ │ GitScrum trigger → External action: ││
│ │ ││
│ │ • Task completed → Update CRM record ││
│ │ • Sprint ended → Create Google Sheet report ││
│ │ • Bug fixed → Close Zendesk ticket ││
│ │ • Feature released → Send customer email ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ WEBHOOK SETUP: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Incoming webhooks: ││
│ │ POST to GitScrum webhook URL with task data ││
│ │ ││
│ │ Outgoing webhooks: ││
│ │ Configure in Project Settings > Webhooks ││
│ │ Select events to trigger (task created, updated, etc.) ││
│ │ Provide destination URL for your system ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘