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: