Skip to content

How to Map User Flows With Tools and Clear Notation

A practical user flow guide covering notation, tools like FigJam and Whimsical, plus worked checkout and SaaS onboarding examples.

· · 5 min read
Two people mapping a user flow diagram together on an office whiteboard

Most teams skip the diagram and pay for it later. According to the Nielsen Norman Group, a clear flowchart exposes gaps in a design before a single pixel gets pushed. That's the whole point of user flow mapping. You catch the dead ends on a whiteboard, not in a support ticket three months after launch.

This guide covers notation you can actually keep consistent, the three tools worth your time, and two worked examples from checkout and onboarding. No theory dumps. Just what I use on real projects.

Hand sketching a flowchart diagram with boxes and arrows on paper
Photo by Kelly Sikkema on Unsplash

User Flow vs Task Flow vs Journey Map

These three get confused constantly, and using the wrong one wastes a whole afternoon. A user flow maps clicks and decisions through a product, branches included. A task flow is the stripped-down single path with no branching. A journey map zooms way out to emotions and channels across days.

Here's the quick test I use. Does your diagram need a decision point? Then it's a user flow. One straight line of steps? Task flow. Tracking how someone feels on Tuesday versus Friday? Journey map.

  • User flow: screens plus decision diamonds, shows alternate paths
  • Task flow: one happy path, great for spec handoff
  • Journey map: emotion and touchpoints over time, not clicks

I once watched a team spend two days building an elaborate journey map when all they needed was a 9-box task flow for a password reset. Pick wrong and you'll feel it.

What Notation Should You Use?

Stick to four shapes and your flows stay readable forever. The convention most designers borrow comes from flowchart standards: rounded rectangles for screens or pages, diamonds for decisions, plain rectangles for actions, and small circles for start and end points. That's it. Four shapes covers maybe 95 percent of what you'll draw.

Arrows carry the logic. Label every arrow leaving a diamond, because an unlabeled "Yes" branch is how ambiguity sneaks in. I color-code too: green for the happy path, red for errors, gray for skippable steps. It makes a 30-node board scannable in seconds.

Common Notation Mistakes

The biggest one? Mixing zoom levels. If one box says "Browse catalog" and the next says "Tap the blue Add button," your reader loses the thread. Keep all boxes at the same altitude. Another trap is the orphan node with no exit arrow. Every box except the end circle needs somewhere to go.

Team brainstorming a user journey with sticky notes on a glass wall
Photo by Vitaly Gariev on Unsplash

Which Tools Actually Work?

Three tools dominate, and they're all good. FigJam is my default because it sits beside Figma, so flow and final screens share one file. Whimsical draws the cleanest auto-connecting flowcharts I've used, snapping arrows in a way that saves real minutes. Miro wins for big cross-team workshops where 12 people comment at once.

Pricing matters here. FigJam and Miro both ship free tiers that handle solo work, while Whimsical caps free boards at a small number. Don't buy a fourth tool. Use whatever your team already pays for.

  • FigJam: best when paired with Figma design files
  • Whimsical: fastest for dense, connector-heavy diagrams
  • Miro: best for multi-stakeholder remote sessions

A Worked Checkout Example

Checkout flows leak money, and the data backs it up. The Baymard Institute puts the average documented cart abandonment rate around 70 percent, much of it caused by clumsy checkout structure. Mapping the flow first is the cheapest fix you'll ever make.

Start with a start circle at "Cart." Branch on a decision diamond: returning user or guest? The guest path needs an email step the returning path skips. Add a payment diamond: saved card versus new card. Then a validation diamond for the CVV and address. Each "fail" arrow loops back in red, not forward.

Here's the gap this catches every time. Teams forget the "address validation failed" loop and ship a checkout that silently drops people. I've redrawn this exact flow for two clients, and both had no error path drawn at all.

A SaaS Onboarding Example

Onboarding is where flows earn their keep, because the branching gets brutal fast. A signup splits immediately: verified email versus pending. Then comes the empty-state decision: does the user have data to show, or do you need a sample dataset and an empty-state screen?

I map three lanes side by side. Top lane is the happy path to first value. Middle lane handles skipped steps, since people will skip your tour. Bottom lane catches errors and timeouts. One onboarding board I built grew to 40 nodes, and splitting it into linked sub-flows per frame kept it sane.

Want my honest opinion? Most onboarding fails because nobody drew the "user skipped everything" lane. That lane is your real product.

Person mapping a workflow across a sticky-note wall in an office
Photo by Vitaly Gariev on Unsplash

Putting It to Work

User flow mapping isn't busywork, it's the cheapest insurance in design. Four shapes, consistent zoom level, labeled branches, and one tool your team already owns. Draw the error paths first, because that's where products quietly break. Start with a checkout or onboarding flow this week and watch how many gaps surface before you touch a real screen.

With the flow mapped, the next decision is how much detail to build, which is exactly what wireframing vs prototyping unpacks. And if you're auditing an existing product rather than designing a new one, run the UX audit checklist first, then validate the redesign with usability testing on a budget.

Frequently Asked Questions

What is the difference between a user flow and a task flow?
A task flow shows one path with no branching. Every user takes the same steps, like a single happy path through password reset. A user flow adds decision diamonds and alternate routes, so it captures what happens when someone has a saved card versus a new one. I reach for task flows when I'm documenting a feature spec for engineers, because they're tight and unambiguous. I switch to user flows during discovery, when I'm still hunting for the dead ends and loops that trip people up. Journey maps are a third thing entirely. They track emotion and channels across days or weeks, not clicks across one screen. Picking the wrong one wastes hours. If your diagram needs branches, it's a user flow.
Which tool should I use for user flow mapping?
I default to FigJam when the flow lives next to Figma designs, because jumping between the board and the actual screens takes one click. For dense, auto-connecting diagrams I prefer Whimsical, since its flowchart mode snaps boxes and arrows faster than anything else I've tried. Miro wins when stakeholders from five departments need to comment at once. Honestly, the tool matters less than your notation discipline. A messy FigJam board beats nothing, but a consistent one in any tool beats a fancy one with no rules. Start free in all three. FigJam and Miro both have generous free tiers that cover most solo projects. Pick the one your team already pays for before buying another seat.
How detailed should a user flow be?
Match the detail to the decision you're making. Early in a project I keep flows at the screen level, maybe 8 to 15 boxes, so the shape of the experience stays readable in one glance. When I'm handing off to engineering, I add edge cases: empty states, error messages, timeout handling, and validation rules. That version might hit 40 nodes. The trap is mixing zoom levels on one board. If half your diagram says 'Checkout' and the other half says 'Tap CVV field,' nobody can read it. Split detailed sub-flows onto separate frames and link them. I learned that after one onboarding flow grew to 60 unreadable nodes and a developer quietly rebuilt it wrong.
Do user flows still matter if I use prototypes?
Yes, because prototypes and flows answer different questions. A prototype shows how a single path feels. A user flow shows every path at once, including the ones you forgot to prototype. I've caught missing error states on a flow diagram that the clickable prototype hid completely, since prototypes usually only wire up the happy path. Flows are also cheaper to change. Moving a box takes two seconds; rewiring 12 prototype screens takes an afternoon. Use flows to decide the structure, then prototype the parts that need real interaction testing. They're complementary, not competing. Skipping the flow and going straight to high-fidelity prototypes is how teams ship onboarding with three different ways to get stuck.