User Flow
Every path through a task, including the error paths and the states most flows forget.
Definition
A user flow enumerates the steps, decisions and states in a task. Its main value is that writing it down surfaces the branches nobody had decided.
Craft convention. True because the industry converged on it. Breaking it costs familiarity, not correctness.
On this plate
Fill it in
Loading your draft…
Saved in this browser only. Nothing is sent anywhere.
Definition
What the user is trying to achieve, in their words.
Every way a user can arrive at this flow, including deep links and emails.
What must be true before the flow can start. Each one is a potential failure path.
Paths
Numbered steps, one action per step.
Every fork, with both sides. Ambiguity here becomes a developer's guess later.
Invalid input, permission denied, network failure, expired links, duplicates, limits.
States and exits
Empty, loading, partial, error, success, permission denied, offline.
Where the user can leave, and what happens to their partial work.
Decisions that need a product answer before this can be built.
The states most flows leave out
Writing the flow is mostly an exercise in finding these. Each one is a screen somebody has to design and an implementation somebody has to estimate.
- First use, with nothing there yet, which is a different screen from the populated one.
- Loading, and the slow variant of loading where the reader needs to be told what is happening.
- Failure at each step, separated into what the reader can fix and what they cannot.
- Interruption and resume: the session that ends mid-task, on a different device.
- Permission denied, and the version where permission can be requested rather than only refused.
- Expired: the link, the token, the basket, the offer.
- Concurrency: someone else changed the thing while this person was working on it.
- The exit paths, including cancel, back, and closing the tab, which is the most common ending of all.
Flows that answer questions instead of raising them
Do
- Write the decision points as questions with every answer enumerated, including the unexpected ones.
- Mark which steps are system decisions and which are the reader's.
- Note where a step leaves your product, such as an email confirmation or a payment provider.
- Keep one flow per goal, and link between them rather than merging.
Do not
- Do not draw only the happy path and call the flow finished. The branches are the deliverable.
- Do not put screen designs in the flow. It becomes a design review and the structural questions go unanswered.
- Do not leave a branch ending in nothing. Every path terminates somewhere, including the ones you would rather it did not.
- Do not skip the flow for a small feature and then discover the branches during implementation.
Local chart
TPL·005 · Region VIII · Grid G3
This entry and the entries it is stated to connect with. Each line is labelled with what the connection means.
Continue from here
Each link says what the connection is, so you can tell a principle from an alternative from a thing people mix this up with.
Applies when you are designing
Often used with
These usually appear in the same screen or the same decision.
- PRD to User FlowAI·002 · AI workflow
- Empty StatesPAT·010 · Pattern
- Multi-Step FlowsPAT·016 · Pattern
- Product SpecificationTPL·011 · Template
- ExcalidrawTOOL·009 · Tool
- Visual StatesFND·053 · UI foundation
- User FlowsFLOW·009 · Workflow
Short definition
The one-paragraph version, for when that is all you need.
- Happy PathTERM·119 · Term
- User FlowTERM·118 · Term