How to adapt the Bug Triage & Issue Tracker to your team's workflow, scale, and tooling.
1. Adjusting Severity Levels & SLA Targets
2. Customizing the Status Workflow
4. Scaling for Different Team Sizes
5. Integrating with External Tools
8. Multi-Product / Multi-Team Setup
The default system uses 4 severity levels. You can modify these to match your organization's standards.
1. Open the Severity Matrix page (pages/severity-matrix.md).
2. Update the SLA targets in the reference table.
3. Update the SLA Status formula in the Bugs database (see formulas/FORMULAS.md) to match your new thresholds.
Example — Startup with aggressive SLAs:
| Level | SLA Target |
|---|---|
| S1 — Critical | 1 hour |
| S2 — High | 8 hours |
| S3 — Medium | 48 hours |
| S4 — Low | 1 week |
Example — Enterprise with business-hours SLAs:
| Level | SLA Target |
|---|---|
| S1 — Critical | 4 business hours |
| S2 — High | 1 business day |
| S3 — Medium | 3 business days |
| S4 — Low | 10 business days |
If you need a "Cosmetic / Trivial" level below S4:
1. Add "S5 — Trivial" to the Severity Select property on the Bugs database.
2. Update the Priority Matrix to include the new row.
3. Update formulas that reference severity values.
If your team is 1-3 people, the full 8-status workflow may be overkill. Simplify to:
New → In Progress → Resolved → Closed
1. Edit the Status Select property — remove statuses you don't need.
2. Update the Board view to reflect fewer columns.
3. Update the SLA Status formula if it references removed statuses.
Common additions:
| Status | When to Use |
|---|---|
| Blocked | Bug fix depends on external team or third-party |
| Needs Info | Bug report lacks reproduction steps or context |
| Won't Fix | Intentional behavior or cost not justified |
| Duplicate | Already tracked under another Bug ID |
| Deferred | Valid bug, but intentionally postponed to a future quarter |
To add: Edit the Status Select property → add new options with appropriate colors.
Add a Checkbox property called "Customer Reported" to the Bugs database. This lets you:
Replace the single "Environment" Select with a Multi-select if bugs appear in multiple environments:
Add a Select property called "Affected Version" (e.g., v2.3.1, v2.4.0). Useful for:
Add a Number property called "Customers Affected". This helps prioritize by business impact:
Add a URL property called "Fix PR URL". Link directly to the GitHub/GitLab pull request that fixes the bug. Useful for:
Simplify aggressively:
Use the system mostly as-is, with tweaks:
Add structure:
Add hierarchy and automation:
1. Add a URL property called "GitHub Issue" to the Bugs database.
2. When filing a bug, paste the corresponding GitHub issue URL.
3. Use Notion's web clipper to pull GitHub issue content into the bug's page body.
1. Use the Notion API to create a bug entry when a GitHub issue is labeled bug.
2. Webhook flow: GitHub → webhook → your server → Notion API POST /pages.
3. Map fields: GitHub title → Bug Title, GitHub labels → Severity/Tags, GitHub assignee → Assignee.
For two-way sync with Linear or Jira:
1. Use Zapier or Make.com as the integration bridge.
2. Trigger: "New item in Notion Bugs database" → Create issue in Linear/Jira.
3. Trigger: "Issue status changed in Linear/Jira" → Update Status in Notion.
4. Map severity and priority values between systems.
1. Use Notion's built-in Slack integration (Settings → Connections → Slack).
2. Or create a Zapier automation: "New bug with Severity = S1" → Post to #engineering-alerts.
3. Include: Bug ID, Title, Severity, Component, Assignee.
For critical bugs that need immediate on-call response:
1. Zapier trigger: "New bug in Notion where Severity = S1 — Critical".
2. Action: Create PagerDuty incident with bug title and link.
Notion Pro includes database automations. Set up these useful rules:
Auto-assign to triage queue:
SLA reminder:
Auto-close stale bugs:
For advanced automation, use the Notion API with a cron job or serverless function:
# Pseudocode: Flag overdue bugs
1. Query Bugs database where Status NOT IN (Resolved, Closed, Verified)
2. For each bug, compare SLA Deadline to current date
3. If overdue, update a "SLA Breached" checkbox to true
4. Send Slack notification with list of breached bugs
1. Create a new Table view.
2. Filter: SLA Deadline < Today AND Status NOT IN (Resolved, Verified, Closed).
3. Sort: SLA Deadline ascending (most overdue first).
4. Color-code by severity.
1. Create a new Table view.
2. Filter: Assigned To is empty AND Status = "New" or "Triaged".
3. Sort: Priority ascending.
4. This is the triage lead's primary working view.
1. Create a Board view on the Components database.
2. Group by: Criticality.
3. Show the "Active Bug Count" rollup prominently.
4. Components with high bug counts in the Critical column need attention.
1. Create a Table view on the Sprints database.
2. Show: Sprint, Status, Bugs Assigned, Bugs Resolved, and a formula for completion %.
3. Filter: Status = "Active".
4. This gives a quick sprint progress snapshot.
If your organization has multiple products or teams sharing one bug tracker:
Start with Option A (single database) until you exceed ~500 bugs or 3 products. Then split to Option B. Notion handles hundreds of entries well, but thousands can slow down views.
1. Archive resolved bugs quarterly. Move bugs with Status = "Closed" older than 90 days to an "Archive" database. This keeps your active database fast.
2. Review root causes monthly. Sort the Root Causes database by Occurrence Count. The top 3 categories tell you where to invest in prevention.
3. Rotate the triage lead. Don't let one person own triage forever. Rotate weekly so the whole team understands the bug landscape.
4. Track your SLA hit rate. Create a formula that calculates (bugs resolved within SLA) / (total bugs resolved). Target 90%+ for S1 and S2.
5. Link bugs to postmortems. For every S1 bug, create a postmortem page (use the template in templates/) and link it to the bug entry. This builds institutional knowledge.
*Questions? Contact [email protected]*
Get the full Bug Triage & Issue Tracker and unlock everything.
Get the complete guide with every chapter unlocked, including code samples, diagrams, and best practices.
Access all interactive tools with complete data, all workload profiles, and the full scenario library.
Downloadable source code, configuration files, and working examples from every chapter.
Free updates for life. Every new chapter, tool, and improvement included.