Skip to content
HeyKaylz.

Case study 03 · Support & Documentation

Turning recurring support tickets into self-service fixes

Our team was spending 35% of every sprint on the same handful of support escalations. I used ticket data to separate “needs a runbook” from “needs a product fix” — and drove both.

Client
Fortune 500 Enterprise · Public Service
My role
Software Engineer · support analysis & documentation owner
Timeline
4 months
Team
6 engineers, client support desk, platform owners

65%

fewer Tier-2 escalations

75%

faster mean time to resolve

14

runbooks published

01

The problem

Support escalations interrupted engineers constantly. Each one was “quick,” but together they consumed 42 hours per sprint and made roadmap commitments unreliable.

02

Discovery

I exported 6 months of tickets (~850 total items), categorized them by root cause, and ranked them by frequency × time-to-resolve.

Root causeShare of ticketsBest fix
Configuration / access issues (Role permissions, API token resets, environment misconfig)45%Runbook + self-service
Integration timeouts (Third-party webhook failures, database connection pooling25%Product fix (retries)
Data mismatches (Sync delays between auth provider and local DB)18%Monitoring + alerting
Everything else (Edge-case bugs, feature requests)12%Case-by-case

03

The solution

  1. 01Ticket dataExport & normalize
  2. 02Categorize & rankFrequency × effort
  3. 03Runbooks & KBTier-1 can self-resolve
  4. 04AlertsCatch issues before users do
  5. 05Backlog fixesEliminate root causes
From ticket noise to roadmap signal

Runbooks were written for the support desk, not for engineers: plain-language symptoms, step-by-step checks, and a clear “escalate if” line. Each was reviewed by the person who'd actually use it.

04

Trade-offs & alignment

Product owners initially saw this as “support work.” Framing it as reclaimed roadmap capacity — 30 hours a sprint returned to feature delivery — turned it into a shared priority.

05

Outcome

  • Tier-2 escalations fell by 65% within 3 months.
  • Mean time to resolve dropped from 4.5 hours to 25 minutes (0.4 hours).
  • 8 root-cause fixes shipped from the ranked backlog.

06

What I'd do differently

I'd add a lightweight “was this helpful?” signal to every runbook from launch. Usage data would have told us which docs needed rewriting long before the next ticket did.