> case study // hiya · 2025
Automating abuse-mitigation tickets at Hiya
A rule-based system that takes redress tickets from intake to verified fix with no human in the loop. Median resolution went from two weeks to four hours.
- automated
- 98%
- median resolution
- 336h → 4h
- SLA compliance
- ~60% → 99%+
- verified success
- 99.7%
// The problem
Hiya's abuse-mitigation queue handles redress tickets about phone numbers and how they're treated. After the team shrank, I was handling support alone, and between May and October 2025 monthly volume grew 85%, from 5,726 to 10,572 tickets. The backlog peaked at 1,000 tickets and two weeks old, and SLA compliance fell to about 60%.
// Holding the line
A real fix would take months, so I kept the queue alive with Python scripts against the Zendesk API: extracting phone numbers from free-form tickets, mass follow-ups for stale tickets, and categorization across 27 issue types. Each script had a dry-run mode so it was safe to run in production. They handled tickets 600–3,000× faster than doing them by hand, which bought the time to build the long-term system.
// The design
I defined a five-part architecture: intake, a decision engine, action and verification, observability, and response. The main call was rules instead of ML. Every decision had to be explainable to partners and auditable, and a rules engine was faster to ship and easier to trust.
- Intake normalizes phone numbers across 15+ country formats.
- After each action, the system waits two hours and checks the change actually took effect. That check catches the 0.3% of fixes that would otherwise fail silently.
- Responses come from 13+ modular templates and include the data behind the decision, so requesters see why, not just what.
- Built on Scala, PostgreSQL and Kafka, integrated with Zendesk.
// Shipping it
We built it in six months, holding scope to an MVP so it would ship on time, then ran it in shadow mode for four weeks: it made its decisions alongside the manual process, and we compared them before letting it act. It launched in November 2025.
// Results
- 10,905 of 11,128 tickets (98%) fully automated in November–December 2025, with no rise in reopen rate.
- Median resolution cut 92%, from 336 hours to 4, and SLA compliance restored to 99%+.
- About 80,000 phone numbers remediated in the first two months.
- Audit trails and consistent decisions reduced compliance risk, and the transparency won praise from enterprise partners.
// The surprise: less demand
Volume didn't just get handled faster; it fell 51%, from 10,572 tickets in October to 5,225 in December. Responses backed by reputation data changed how requesters behaved. State tracking also showed that 29% of tickets were for numbers already fixed, and 17% had no calls on record, which led to better intake forms. Better answers reduced future demand, not just the backlog.