Product Design · Conversational UI · Google
Designing a chat-based support queue that actively resolved issues while users waited for a live agent.
The Challenge
Google Ads Help handled massive ticket volume. Many issues were things the system already knew how to fix: budget adjustments, campaign pauses, billing corrections. But the support flow was binary: read an article or open a ticket. There was nothing in between. No way for the system to ask clarifying questions, offer a fix inline, or keep working on the problem while the user waited.
The result was a queue full of tickets that didn't need a human, and users stuck watching a "You're number X in line" screen doing nothing. Every minute spent waiting was a minute the system could have been resolving.
The Project
This was a top-of-funnel ML tool. Instead of a passive waiting room, I designed a conversational queue that actively worked to resolve the user's issue before an agent picked up. The chat pulled account context, surfaced the relevant help article, offered to apply fixes directly, and gave users an explicit "I no longer need help" exit if the issue got resolved during the wait.
I designed the full queue interaction model: how the chat initiated from a help article, how it transitioned from automated resolution attempts to live agent handoff, and how it communicated queue position and wait times. The goal was to make the wait productive, not passive.
The Approach
The Design
What Made It Work
The key insight was that wait time is not dead time. Users in queue are captive and motivated. They've already described their issue. The system already knows their account context. That's the perfect moment to offer a fix, not after three agent transfers.
By surfacing relevant recommendations and automated fixes during the wait, many users resolved their issue and clicked "I no longer need help" before an agent ever picked up. The queue wasn't faster. It was smarter. It kept solving while the user waited, turning a cost center into a deflection engine.
Outcome