A diagram tracing the sequence of screens and decision points a user navigates to complete a specific task within a product. User flows expose gaps, dead ends, and unnecessary detours in the experience before any high-fidelity visual design work begins.
Common contexts
- Mapping the complete registration and first-session flow before any screens are designed for a new SaaS product
- Walking an engineering team through a user flow to align on all the edge cases before implementation begins
- Using a user flow diagram in a design critique to expose a four-step detour that could be reduced to two
Use when
Create a user flow before designing individual screens whenever the experience involves branching decisions, multiple user types, or more than a handful of connected states — the flow diagram is the cheapest way to find structural problems before any visual design time is invested.
Avoid when
Don't create a formal user flow for isolated, single-screen design tasks or minor UI updates where the interaction context is already well understood — forcing flow documentation on simple changes adds overhead without insight and trains teams to treat the artifact as busywork.
The most useful user flows are the ones that include the sad paths — what happens when users make the wrong choice, hit an error, or abandon mid-task — because those branches reveal where the product silently loses people.
Real-world examples
- Airbnb's booking user flow was redesigned from 14 screens to 7 after flow mapping revealed that address entry, date selection, and guest count were asked sequentially when they could be combined — a reduction that increased booking completion by 10%.
- Stripe's new user flow for creating a payment integration is published in their documentation as an explicit step-by-step diagram, allowing developers to estimate integration time and reducing support contacts about 'what's next'.
- Duolingo maps every user flow to an activation funnel: impression → install → first lesson → streak day 1 → streak day 7, treating each step as a conversion point with its own optimisation sprint.