The ability to create and think in user flows is one of the most important skills in a UX designer's toolkit.
The short definition is:
A series of steps a user takes to achieve a meaningful goal.
It shows the path a user takes through the product as they complete a specific task. It has things like a title, wireframes, and notes in a flow chart. (More on this later 😄.)
What's the benefit of adding user flows to our process? Here are five important benefits:
When you're in the weeds of designing, it's easy to get lost in project requirements, technical jargon, and personal opinions. By the end, the user isn't even part of the conversation.
Since a user flow is from the perspective of the user, it keeps us grounded in the fact that we're designing a real life situation for another human being.
Whenever a user pulls up a digital product, there's always a reason they're there: a task they need to complete. It could be finding a video, buying a flamethrower, or booking a flight; but whatever it is, that task is the root of all their interaction.
User flows are all about tasks, so they help us center our work on the user and their actual goals and experience, rather than fixating on one page at a time.
Since user flows are broken up exactly how a user interacts the product—one task at a time—they provide a foundation for the rest of the design process.
User flows influence everything from interface design to information architecture to usability testing.
Lots of the issues (read: support requests) with digital products are about a user not being able to complete a task.
A clearly defined user flow helps us spot and eliminate dead ends, pain points, or confusing steps where users are having trouble.
Sometimes it can be challenging to get our ideas across in an accurate and understandable way.
User flows clarify the scope, complexities, paths, and goals of our designs for people like engineers, other designers, and product managers.
What does it actually look like and what are the steps for making one?
Let's use a simple example. We'll create a user flow for publishing a new post on a fictional social media app.
To make the whole process smoother, we'll need to figure out three key pieces of information before we start drawing out the flow.
Note: This is all centered around the user, so understanding who they are is crucial. Our work should be based on research and is often tied to a specific user persona.
Start by giving the flow a name that describes its purpose: the goal of your user.
We'll keep the scope of this user flow to a complete representation of that one task. If our flow only covers half a task or tries to cover multiple tasks at once, it won't serve its purpose.
User flows work so well because they tell a story to the reader. To clarify that story, we'll need to keep things focused and clear, and only go in one direction.
If it's getting long, or branches off in a bunch of different directions, you can split it up into several smaller, distinct tasks.
So what do we show on each step of the flow? It can be anything from a few words in some boxes up to fully-designed interfaces.
I prefer wireframes: they're better than text because they give a clearer picture of the user's experience, and they're faster to create and iterate with than a full interface mockup. We'll want to keep the conversation focused on the flow, anyway, not the minor details of the UI.
Add a short description for each step. Explain what's happening, and if necessary include the whys behind what the user needs to do.
This is a visual chart, though, so make it quick and focused on the user's perspective. Aim for just one sentence or phrase.
We've made a flow! ... Now what?
We don't want to just make one. The whole goal is to figure out the best version of this flow for our user.
Here are some key questions to ask ourselves as we analyze our newly-create user flow:
Side note: A/B tests are useful for determining or confirming changes.
Looking back at our example, I can see a few points where we can improve:
Pick an important task from the product you’re working on and try making a user flow for it using the above guide. Let me know how it goes and if you have any questions!
🙌 Thanks for reading. If you're feeling generous, perhaps share the thread on Twitter:
Thanks for sharing. The format looks very similar to what @harrydry does with Marketing Examples. I like consuming content like this, and have debated trying to create my own content in a similar way. I'll be following your adventure, and just followed you on Twitter!
Thanks Andrew, yeah there are several people who post this kind of thing now. @harrydry is definitely one of them—he has amazing content on marketing, would highly recommend his stuff 😄.
good luck jordan - looks cool :)
Thanks for this article. Just checked (and registered for your newsletter) your 3 articles on your website. Very well done, clear explanation and instruction. Thank you for deleting all the unnecessary noise and nail it with useful examples. Definitely want more of that.
Thank you! 🙌
Great explanation of user flows. I've actually been working on flows quite a bit the past few weeks and it was fun figuring out how to create a multi-step flow for a product that requires completion of all steps before results are produced. Wrote a summary of my learnings here https://www.indiehackers.com/post/design-problem-giving-users-flexibility-and-designing-product-onboarding-a6e39a4d00
I think once we're looking at non-trivial applications, the trade-offs between heavy-handling (read: fixed, inescapable flows) and giving the user more flexibility in terms of exploring the product UI is definitely a point that's worth thinking about.
Agree—I work on a non-trivial enterprise application right now. Flexibility to explore is important (as long as you've got good IA and navigation to back it up). In that context, I've been using flows to drill down into specific tasks users have to analyze the experience in specific situations, which helps a lot.
100% on good IA and navigation. Those had to be cleared up and implemented before we would allow traversal across the UI.
And yes, fixed (yet escapable) flows for specific tasks really is the way to go! Love your takes!