Back
Cisco · Duo Mobile · AI Pod

Duo Mobile Onboarding

Context

Overview

01
Context
02
Process
03
The Solution
04
Handoff
05
Results & Reflections
Context

About Duo Security

Duo Security is an access security company that helps businesses make sure only the right people, not hackers, can log into their apps and systems, through things like two factor login checks and device trust checks.

User / Employee
Universal Prompt
(3rd-party website)
Universal Prompt: Duo's login verification screen shown on a 3rd-party website
Duo Mobile App
Duo Mobile push notification with Approve and Deny, shown on a phone
IT Administrator
Admin Panel
Duo Admin Panel home dashboard, where administrators manage users, devices, and policy
Context

Problem & Solution

The Problem

Users found the onboarding experience unnecessarily long, and the push notification opt-in rate was lower than desired.

1
Create & name account
→
2
Practice Push
→
2a
Backup encouragement
→
3
Settings encouragement

* This onboarding flow was designed 5+ years ago and hadn't been revisited since.

The Solution

We removed non-actionable screens and brought push notification activation earlier in the flow, within the settings encouragement step, while keeping the practice step optional.

Context

Project goals

Ship something genuinely impactful within Duo Mobile onboarding
Use AI everywhere in the workflow, across all three functions: design, product, and engineering
Come out with a loose process for what's worth repeating and bringing back into how we work
Context

How we worked together

This project put one problem in the middle and the whole team on it from the start, with AI as the shared language between functions.

Started with nothing scoped
No PRD or fixed plan going in — just thoughts and ideas we shaped together as we went.
A week of just learning from each other
Before any real work started, we spent a week taking turns showing how each of us was already using AI.
No preset meeting cadence
Each function met whenever it made sense, with one rule: always leave with a clear next step.
ProblemMeDesignProductEngineering✦ AI✦ AI✦ AI
Context

Preview of the results

A few of the wins from this project, more details on the following slides.

Shipped in ~5 weeks, record time for a project of this scope
~8% more opt-ins, as more people turned on push notifications, as of Jul 2026
~80% of Claude's code merged into the app as-is, with light cleanup
Process

How did we do this?

Process

Letting the data lead

We used the Amplitude MCP to surface behavioral patterns in the data, then validated the finding by hand.

1
Create & name account
2
Practice Push
↓ Drop-off
2a
Backup encouragement
3
Settings encouragement
▸ View full onboarding flow
Practice Push intro screen — where the drop-off happens
~60%
skipped the Practice Push tutorial before finishing setup.
Process

Design experiments

Engineering helped set up Xcode and gave me access to the app's repositories, so I could prompt Claude to design and iterate directly in code, moving faster between ideas and working screens.

Prompted Claude to build onboarding screens directly in Xcode
Attempted to pull Duo Mobile's design library into the prototype from the app repository, though it did not end up working
Still built out parts of the onboarding flow in a native style and drew inspiration from the patterns, particularly the "See how it works" screen
See how it works — practice push preview screen
Process

Friction points

A full screen-by-screen audit of the onboarding flow, checking each step for purpose and necessity.

Total taps — with practice
iOS
15
taps
Android
18
taps
Informational screens — no meaningful action
The Solution

Design goals

Reordered to surface permissions earlier, made Practice Push optional, and removed screens with no meaningful action.

Before
After
1
Create & Name Account
2
Practice Push
↓ moved to end
2a
Backup Encouragement
Android only
3
Settings Encouragement
↑ moved earlier
1
Create & Name Account
2
Settings Encouragement
2a
Backup Encouragement
Android only
3
Practice Push Skippable
The Solution

What's the smallest design change?

The Solution

Screens we changed

Changes were kept as lightweight as possible. The priority was improving the flow, not a full visual redesign.

Merged
Welcome screen
Removed
Name your account
Redesigned
Almost there → You're all set
Redesigned
Perfect!
Handoff

Design → Eng handoff

After finalizing the screen changes, we used the Jira MCP to have Claude generate a full epic and task breakdown directly from the design decisions — no manual ticket writing.

Claude + Jira MCP
Created a full epic and 10 child tasks directly from design decisions, with no manual ticket writing.
iOS + Android split
Tasks automatically paired per platform, 5 each, ready for engineers to pick up directly.
Handoff

From design to working code

Design outputs → implementation plan
Claude was given the Jira epic + Figma screens and generated a full implementation plan and code.
~80% of Claude's code merged as-is
"It will take some time for me to fix everything up and get it merged into master."
Eng preferred the plan over a code artifact
A separate code output would've meant reviewing two versions of the same work, so we kept the handoff to the plan.
Handoff

What we shipped

The actual shipped build — screen recordings captured directly from engineering's Android and iOS implementations.

Android

* Backup steps not shown in this recording.

w/o practice
w/ practice
Before
14
taps
18
taps
↓
−5 taps
↓
After
9
taps
13
taps
iOS

* Recording starts after the welcome screen.

w/o practice
w/ practice
Before
11
taps
15
taps
↓
−5 taps
↓
After
6
taps
10
taps
Results & Reflections

Impact

Shipped behind a remote feature flag, comparing funnel metrics across app versions.

Completion
+15%
completed onboarding after activating an account
Setup time
40% faster
~35s→~21smedian
Notifications
+8%
opted in to push approvals during setup
Taps
−5
removed from the flow, across iOS & Android
Reactions from product leadership
"++ that's an amazing improvement! Would be super curious to learn how you guys identified areas & strategies for improvement, we need more successes like this 🙂"
"Those are actually insane stats, that's awesome."
Results & Reflections

Learnings

Coming back to the question from the start: what's worth carrying into how we normally work.

✓ What worked
✓Amplitude MCP gave us clear direction and places to dig into.
✓Claude sped up design ideation, so we explored more directions before committing.
✓Design's plans turned straight into Jira tickets for eng.
✗ What didn't
✗Still mostly product, then design, then eng; eng can't start until design hands off.
✗Still need a clear decision-maker up front with success criteria.
✗Pull request reviews still take just as long.

Thank you! Questions?