Loading…
From Chaos to Clarity: How We Built a Unified, Self-Routing Support Ops Ticketing System at Lyft
LyftAtulgupta
Summary
Lyft Urban Solutions' Support Ops team faced fragmented ticketing across four Jira Help Centers with duplicate intake forms, lack of routing logic, and no dashboards. Over five years, the team redesigned the intake architecture by replacing redundant forms with dynamic Jira Proforma forms featuring conditional branching. Automated Jira rules were introduced to assign tickets, apply a taxonomy of over 30 labels, and trigger PagerDuty alerts for P0 incidents. To unify operations across disparate backend projects, the system automatically clones and links tickets from a single portal to downstream project boards. Jira Structures and a Jira-to-Mode ETL pipeline provided cross-project rollups and business analytics before an upcoming Jira Cloud migration required dashboard rebuilds.
Context
In 2020, Lyft Urban Solutions' Support Ops had no reliable way to raise issues or track progress, resulting in four fragmented Jira Help Centers. Forms were duplicate or redundant, lacked necessary fields, lacked auto-labeling and routing logic, and manual triage took 10 to 15 minutes per ticket without leadership visibility.
Approach / What changed
The team audited intake forms and built a single unified Help Center using dynamic Jira Proforma forms with conditional branching logic. Jira automation rules were configured to route tickets, apply labels from a 30+ label taxonomy, send auto-acknowledgments, clone and link tickets to downstream team projects, and trigger PagerDuty alerts for P0 incidents. Advanced reporting was added using Jira Structures and an ETL pipeline connecting ticket data to Mode.
Takeaways
- Dynamic Jira Proforma intake forms with conditional branching replaced multiple overlapping forms with a single adaptive form.
- Jira automations clone and link tickets across separate backend projects so operators interact with only one central intake portal.
- Selecting a P0 incident type automatically pages on-call engineers via PagerDuty, while standard tickets elevated to blocker status are closed automatically because regular blockers do not trigger alerts.
Related reading
Lyft ·
From Day 1 to Production: Building Lyft’s Analytics & Rides Intelligence Assistant as Onboarding…
Lyft developed Aria, an AI-powered assistant allowing approved employees to query ride analytics via natural language through a backend with LangGraph orchestration and SQL generation. However, Aria's user interface was limited to a Streamlit prototype that lacked standard service framework integration, Lyft authentication, and multi-user scalability. To resolve these limitations, a new engineer built a production-grade web client from scratch using Lyft's internal Node.js framework and Next.js as a three-week onboarding assignment. The implementation involved configuring Envoy routing, resolving authentication plugin incompatibilities, debugging service connectivity with Grafana, and managing interface state with an XState state machine. Aria was successfully hardened and launched into production, expanding natural language analytics access across the company.
SagarbaroniaGrab ·