👂 Tell me what's up

Designed an AI-powered support experience across Instagram and Facebook that helps teens articulate what’s going on and find the help they need.

Overview

When teen support launched on Instagram and Facebook, it ran on an intake system built for adults. Early teen creators could file cases, but what arrived to agents was mostly unusable: empty descriptions, misfiled topics, high abandonment. Agents spent the first minutes of every chat re-diagnosing the problem instead of solving it.

I led the redesign of the intake flow, using an LLM to structure user intent before routing. The goal was to improve signal quality upstream, so every case reaching an agent was worth working on, and to lay the data foundation for conversational AI support.

impact

Increased issue tagging accuracy by 3%, case quality by 20%, and had a -6% stat sig drop in case creation

role

Product Designer

COLLABORATORS

1 PM

2 SWE

1 CD

Partners

AX (Accessibility)

XMDS (Design System)
CY (Central Youth)

Legal

Ops

Taxonomy

timeline

H2 2025

Exp: Nov 2025

🚀 Ship: Dec 2025

Problem

A case audit made the gap hard to ignore. Only 9% of early teen creators were self-triaging correctly, compared to 48% of adult users on the same system.

9%

Early teen creators self-triage correctly

48%

Adult users self-triaging correctly

This wasn't a user problem. It was an architectural one. The flow asked teens to pick a category before they'd had a chance to explain what was wrong. When open-text fields appeared, they were treated as fallback, not signal. The system routed cases without ever understanding them.

The architecture assumed accurate self-diagnosis before signal quality was established.

Before

The reframe

The obvious fix was to simplify: fewer steps, cleaner funnel. I pushed back. Removing steps wouldn't help if the ones we kept still collected the wrong things in the wrong order. The question wasn't how to reduce friction. It was how to improve signal.

Describe issue

Front-load open text

Diagnose issue

LLM structures intent

Guide

Contextual self-help

Agent chat

Escalation

The new architecture captures intent before committing to a path. Teens describe what's happening in their own words. The LLM classifies the issue and surfaces a proposed category the teen confirms before continuing. Intake becomes a signal-strengthening layer, not just a routing gate.

Responsible ai framing

Before touching screens, I aligned with Youth Policy, Legal, and Support Ops on how AI should operate within teen support. This wasn't just stakeholder sign-off. It shaped the design. We landed on five principles that governed every decision that followed.

📚 Context before categorization

Narrative input is the primary signal. Taxonomy structures context, it doesn't precede it.

❇️ AI with guardrails

Assist diagnosis without blocking human support. Preserve user confirmation and fallback paths.

🔑 Gate without blocking

Filter low-intent traffic while preventing legitimate users from being denied support.

🧒 Protect youth journeys

Ensure intake doesn't conflict with Central Youth flows or create unintended risk for teens.

💡Instrument for learning

Filter low-Collect signal to improve tagging accuracy and inform future conversational AI roadmap

Having these in place let the team move fast without re-litigating constraints at every design decision.

Process

design exploration & tradeoffs

I explored four interaction models, evaluating each on signal quality, cognitive load, and resolution potential. Launchpad overwhelmed teens. Self-diagnosis still required hard categorization. Assisted prompts lacked specificity. AI Diagnosis was the only model that provided adaptive, context-aware guidance without gating access to support.

llm integration

Working with engineering on the LLM integration, I learned the model always produces a likely classification, even at low confidence. My argument was that low-confidence output still contains directional signal. If the system suggests "this might be a hacked account" and it feels wrong, teens can refine their description rather than abandon. That loop is what lets the model improve over time. Without it, escalation quality plateaus.

Failure state

I also designed for model failure. What happens if confidence never improves? Working closely with my engineering partner and PM, we implemented a bounded retry loop: up to three inference passes, with a deterministic fallback to human support if confidence stayed low. The retry limit was intentionally aligned with patterns used across other AI surfaces to keep the behavior consistent.

failure state

Design

ai diagnosis for teen support

Impact

metrics

+3%

Increased issue tagging accuracy

+20%

Case quality (CSAT)

-6%

Total case created

In the first month, 48,000 cases were accurately identified before reaching an agent, and CSAT increased by 7%. Case volume dropped, reflecting fewer unnecessary escalations. The redesign proved that better signal upstream changes the entire funnel, not just the intake screen.

Reflection

This started as an intake redesign. It became the foundation for responsible conversational AI in teen support.

The counterintuitive lesson: the right design sometimes adds friction. We made intake more effortful on purpose, and CSAT still went up because agents could resolve issues faster with better context. Friction isn't always the enemy. It depends on where you put it and what it's doing.

Teens needed scaffolding to articulate their problems before any system could route them well. That meant designing for articulation, not just navigation, and thinking about the operational layer: what happens to an agent when signal is weak, and what happens to the whole funnel when it's strong?