Reducing sign-up friction

When working on a product, you spend a lot of hours building and refining. Everything about your startup feels important when you’re so invested. It’s easy to project this feeling onto your customer: you’ve created such as beautiful service, of course they won’t mind having to spend their precious time to use it!

Of course that’s not how it works, and customers just want to use your app or service and get on with their day. Every hoop they need to jump through is a reason to close your website or churn.

Some examples where I think it’s really easy to improve a workflow with almost no effort:

Login == password reset
Why do I need an account, set up a password, and so on? I see this a lot with websites you hardly need to use anyway, like online stores where you order from once a year. Before you can check out, you need to set up another account.

As a user I’m going to have to track yet another password or create an entry in a password manager (and not everyone has one, and certainly not one where it takes zero time to use it across all devices). If you’re the owner of a service, you’re probably logged in all the time, but for many of your users the next time they return they won’t remember anything about their account.

So they use password reset. Which is exactly the same as if you would have only asked for their email address in the first place, rather than a “Register new account” form. Much simpler to build, much simpler check out process for the user. And next time they can still use their email address to get a link to access their previous orders (or just opt out of the process altogether, if they don’t want their email stored).

Auth links in support emails
I recently had to go through the process of updating my credit card details for a bunch of services. This is another workflow where services can easily reduce churn and friction for their users.

For example, if your app sends out a notification email to remind users to update their card details, why not include a link that takes them right to the form to do it?

It’s such a small change, but in my case there were plenty of services where I had to spend time to find out how to pay them! The number of users churning on this is going to be larger than zero for sure.

And again, if you include a link, add some sort of one-use auth code to the email for the update form, so I don’t need to go through the whole password reset again.. just to receive another email with the actual code.

Inviting team members
As we’re developing a web app which can be used in teams, one piece of functionality we need to add is a way to add other users to a workspace.

The way it works is fairly standard. You typically add one or more email addresses and click a button called something like “Invite to Workspace”. With our existing app, we’ve gone through many iterations over time, to make it easier and better based on the feedback from our customers. For example, we allowed admins to include a custom message to the invitation emails. Then we allowed admins to resend the invitation, in case people missed it. Then people wanted to change the subject. Or the template itself. If it’s possible for us to send the email from their company’s email domain? Then some asked if everyone on a specific domain name could be invited all at once.

The obvious solution here is to just make it much simpler and remove all the friction: just generate an invitation link and let admins send it any way they want. They can send it to a user, through a text message, to their entire mailing list, whatever they want. With exactly the text they want to onboard the users, with their logo and from their domain, and as often as they like.

With many of these workflows, it turns out that the best solution is both more convenient for your users, removes a lot of friction, and is much faster to build, too. Win-win-win.


You can follow us on Twitter @jdvhouten and @wcools and look for #80daystartup

Read more

Work/new-life balance
Durable tech
Dogfooding
Early user feedback
Spending time to save time
Products want to be platforms
Always be launching
Enjoying the journey
Work-life balance
Recap @ Day 59
Perils of caching
Desktop-first
Making sense of contradictions
Trust signals
DIY javascript error logging
Taxes: an automation story
Magical thinking
Start small
High conviction, low conviction
Most deals fail

Post archive