What is User flow?
A user flow is a diagram showing the complete set of paths a user can take through an application to accomplish a goal, including branches, decision points, alternative routes, and error recovery paths.
How it works
User flows extend task flows by mapping all possible paths, not just the happy path. They include decision points (if-then branches), error states (what happens when something goes wrong), edge cases (unusual but possible scenarios), and exit points (where users leave the flow). User flows are represented using flowchart notation: rectangles for screens/steps, diamonds for decisions, and arrows for transitions. They are essential for identifying missing screens, dead ends, and logical inconsistencies before wireframing begins. Complex flows are often decomposed into sub-flows to maintain readability.
Applied example
A user flow for ‘reset password’ maps: Enter email → System check (email exists? → yes: Send reset link, no: Show ’email not found’ with signup option) → Click link (expired? → Show ‘request new link,’ valid: → Show reset form) → Enter new password (meets requirements? → Success, fails: → Show specific errors). Without this flow, the team would have missed the expired-link edge case.
Why it matters
User flows ensure that every possible path through an interaction is intentionally designed, preventing the dead ends, missing screens, and unhandled edge cases that degrade real-world user experience.




