A natural-language analytics agent for enterprise learning teams
AI Reporting
Designed in codebaseDesigned and shipped a chat-first AI agent that lets enterprise admins query their learning data in plain English — replacing a slow, manual reporting process. Sole designer, working in code alongside two engineers.
- Role
- Lead Product Designer · Design Engineer
- Contribution
- Strategy · Interaction · Visual · Design Systems · Front-end
- Platform
- Enterprise SaaS · AI Agent · Data Viz
- Year
- 2026
61%
Conversations went multi-turn
2.4
User turns per conversation
5
Enterprise orgs in beta
134
Messages in first two weeks
“This is real Wipfli data. The chart it generated is basically what we sell as a product.”
The bottleneck
Every data question went through Customer Success by hand — often a monthly wait. To ground the redesign, I seeded it with 26 real customer questions.
What made it hard
A surface with no established pattern, a non-technical audience, and an agent still changing week to week — was this a chatbot, a dashboard, or a BI tool?
Decision 1 — Conversation is the product, not a feature
I made the conversation the landing experience, not a modal bolted onto a dashboard — and in beta 61% of conversations went multi-turn, people reasoning with their data rather than running one-off lookups.
Decision 2 — A display-data layer for legibility
The agent returned accurate-but-unreadable raw values. One reusable display layer — glanceable axes, rich tooltips, humanized field names — made every chart legible.
Decision 3 — Work as a design engineer
I designed in the codebase and shipped my own PRs, so the hard states survived to production: calm error handling, streaming, and the polish that usually dies in handoff. I also authored the design rules our coding agents follow, so the system's patterns hold even when AI writes the first draft of the code.
Results
Shipped to five customers; in the first two weeks, 61% of conversations went multi-turn at 2.4 turns each. Demand pointed to the next data investments.
What I'd carry forward
Name scope cuts up front, treat post-launch work as continuous support, and protect designing in code — it's why design intent survived to production.