Sign-up and sign in journeys have been there ever since the transactional eCommerce begin. But, after 20 years, we still tend to get that wrong. Most of the time, these are dictated by the platform of choice or the UX preference. Debates rage on, in the interweb, on whether a decision by an organization is correct, user friendly and complies with security practices.
The sign-in/sign up step is a big hurdle the user has to cross to enjoy the services you are offering. A bad SI/SU journey leads to large drop-offs and poor experience.
Today, weâll try to put all those to rest and create a set of simple rules that should be used in your sign up/sign in journeys on all your products. Weâll start with the simple sign-up and complicate affairs when we reach the sign-in in the middle of another action.
Rules for Sign-Up (or Registration)
1. Ask for only the basic information you need to create the account
You only need a name, email and password to create an account. If you have a strong SMS marketing presence, a phone number would help â but donât force it. You can get it later.
If your sign up form goes into more than 2 pages â youâre gonna have a huge drop off.
2. Mark what is required and group it together
Every required field should be cleared marked. It doesnât really help to use * to indicate required, but marking things as (optional) is better than to keep it unmarked. The order should be required items first, followed by optional items.
Proper field grouping and field identification
From an HTML standpoint, clearly indicate the field in the input (through the autocomplete standard â see here), to help the browsers autofill the information.
3. Indicate password policy, but only stop the common ones
The rule should be to indicate the strength of the password, but if the password doesnât fall into the common category, donât stop the user from signing up. The rationale is simple â if they have to come up with a new password, theyâll most likely forget it and the next time they want to login, theyâll drop off.
4. Implement inline field validation & indicate errors onFocusOut
The most hated of input forms are those that wait for you to fill up all your details and then show the errors in a list at the top of the form, during which time, the password you entered is gone (âsecurityâ).
Using errors which are human-friendly is a good way to ensure that people donât drop off.
Most inline form validation make the error of checking as I type. Here is the logic you should use:
- Wait for an onFocusOut on the field
- Validate the field
- If error, indicate error, but do not focus back on the field. (donât break the users flow, in filling up the form)
- When the user focuses on the error field (and the field isnât empty), check at every onKeyUp. If the field is correct â turn the field green (but donât move the input box around with a message that shifts the input box).
This should stave off any ugliness with the validation.
5. Donât block access to the account for unverified email
Unless it is a business requirement, do not stop users from accessing their account just because they havenât clicked on the link youâve sent. This is especially true for eCommerce â there is no need for an eCommerce site to verify the email address. For online products, you can always restrict user-facing actions till an email is verified.
Iâve found that services that offer 3â5 days to verify the email, tend to get a lot more drop offs. It is better to ask for verification after the user has entered the portal and wants to take some action.
6. Donât just indicate that an account exists with the email â give options
If a user enters an email that already exists in your database, donât just tell the user that the email exists. Thatâs a dead-end. Provide the reason and actions, the user can take:
Give users an out for every error they get!
The sites that directly take the user to the login page are horrible! The user was expecting something like a thank you for signing up and theyâre faced with another form. Terrible experience!
If possible, try to do an inline verification of the email. It saves the user the trouble of entering the rest of the fields.
Security note: I know that it is foolish to provide an API to the blackhatter to check which emails exist in your database, but if you are smart about it â using throttling or adding a device fingerprint layer to restrict the number of calls made, you are saving so many users the trouble of getting lost in the journey.
7. Social logins should be the norm!
I donât know why there arenât more sites offering a single identity sign-on? For simple signups like eCommerce or product trials, the facebook/twitter/google sign ups are the easiest to do. Within these, however, there are sub-rules you should follow:
- Coverage
Donât put a sign up with Linkedin on a transactional site. If your region has a popular SSO authority, like WeChat, provide that as an option. - Prioritize
If possible, prioritize the most popular sign-up method. Or push your most prefered method. - Merge
If a user signed up using email or some other SSO and is trying to SSO with another, accept it and allow the user to login (as long as the emails match). - Remind
If a user sign up using a SSO, and is trying to sign up again through email, indicate the SSO used. In rule 6, we saw the option of reset password or login â additionally, a message that says, âYou logged in using Facebookâ is a good way to remind the user. - Privacy
It is best to indicate that youâll use the SSO to only authorize the account and take only the required fields. And not post anything.
8. A tab key press should to go to the next field
As simple as it sounds, a tab sometimes doesnât lead the user to the next field. Thatâs the expected behaviour. Test your form and see if some link or input assistance tag gets highlighted. Use tab-index attribute to help you out.
Here are some additional suggestions depending on your systems and requirements:
- Users email should be the user's identity to log in
Iâm looking at you, sites with usernames. Sure, I like the username âThorButOaks69â today, but would I remember it, with its myriad combination of uppercase, lowercase and numbers? I remember my email, but not the username. Allow me to choose the username after I log in! - After a successful sign up, send a welcome mail
Here is what your welcome mail should contain â information about the site theyâve signed up to, what they can do with the account and what awaits them in the future. If possible, add an email verification link just to keep your CRM team happy.
. . .
Rules for Sign-In
9. Apply inline validation for the email field
So many sites do not apply email field validation (the standard regex one). Your system has the information that the email format is incorrect â indicate!
For a database lookup, itâs a security gamble â the same security note from Rule 6 of Sign up applies.
10. Reset password should carry the email into the new form
If your user has entered the email and youâve told him that the combination is incorrect, she should not have to type the email again in the password reset field. If possible, make the transition quick and simple â hide the password field and change the button to say, âReset your passwordâ after the user has clicked on that option.
Smooth transition with email persisting
11. Offer password reset on the third try
If a user tries to enter the password more than once, offer to reset the password with a single click. Donât make them click on another button.
12. Send a password reset link and not a system generated password
A system generated password adds a separate step in the reset password journey. The journey of reset password should be simple:
- User opts for reset password
- User gets a mail with the password reset link
- User clicks on link
- User enters their password, twice
- User has access to the account
See how we jumped the login again with the password option? What are we trying to do with the login again step? Building muscle memory? Giving the autocomplete the opportunity to update the records? You have already verified the ownership of the account. You need not re-type the entire combination again!
This brings us to rule 13.
13. Allow the password managers to capture the users login credentials, if the user wants
Majority of the users are now on some password manager or the other. Only a few choose to still remember their email/password combination for the hundred-odd sites they use. The password managers have evolved to even sense a reset password to update their vaults.
14. On mobile apps, allow users to use their on-device authentication to login
If you have a mobile app, it would be ridiculous to force to use the complicated email/password or SSO logins. Most devices have exposed their authentication options (like fingerprint ID or faceID) to let apps use that as the authentication logic. Here is how the flow should go:
- After a successful login, prompt the user to use their ondevice authentication for subsequent logins. Also provide the user the option to not show the message again.
- If the user chooses to use the auth, go ahead and complete the flow on getting the auth.
- At the next login form, provide the option of device auth as a SSO, or pop up a modal in their face with the authentication request.
15. SSO as a sign-in option
Again, should be a norm. Standard rules in Rule 7 should apply, with the following extensions:
- If a user is trying to SSO with an email that doesnât exist in the system, indicate the same and ask if the user wants to create an account with that email.
- If a user is trying to SSO with an email that exists, authenticate and add the SSO to the account. On successful sign-in, inform the user of the same.
- Try not to go more than 3 SSO options â any more will confuse the user. I do not remember if I used Facebook or Google or Twitter or whatever.
- Mobile App SSOs â DO NOT open an in-app browser with the facebook/google page with sign-in option to authenticate. Most users have the app â use the Facebook/Google app to authenticate. I donât want to enter a username/password combination just to save me from another email/password combination entry.
16. Two-step authentication should be a norm for sites that contain sensitive and payment information
This isnât for sites that store tokens of credit cards, though it would be good if you enable it. This is for those sites that store money through credit/wallet balance. Again, not all your users have credit/wallet. Enforce the two-step authentication for those with something to lose. E.g. if I have just signed up and have no credit/wallet balance, there is no need for me to have a two-step right away. Contextualize your enforcement policy.
On two-step, best combinations are:
- Email + Phone
- Email + Email
- Email + Push Notification
The fastest in my experience is the email + push. It always works. And keep it simple. Microsoft authenticator adds a really silly layer of choosing a particular number in a list of numbers. If I have access to both devices (the login device & the verification device), I just need to tap on the approve message. Donât make me solve a sudoku puzzle!
17. Understand the user's cognitive load for deeper journeys and design âoutsâ for errors
As the authentication journeys become complicated, fewer users will go down certain paths. Provide a way out if the user ends up in a loop. Give them the option to fall back to the old-faithful method of email/password.
18. Persistent logins should be the norm for non-sensitive sites
Unless your site holds sensitive information, allow persistent logins. This is especially true for eCommerce sites. Persistent logins allow the user to experience the site and the actions theyâve taken. You are a UX criminal if you auto-logout users after a certain time. Sessions may expire, but let the users actions (like items added to cart) remain. You can restrict access to personal information with a password prompt, outside of session expiry. Amazon does this beautifully by keeping you partially logged in and asking for authentication only when you need to access personal information.
If you have a mobile app and you log me out after a day, shame on you. Mobile apps need to have permanent logins (standard exceptions apply). You can be assured that no public devices are used to login to the app.
. . .
Rules for In-Journey Sign-Ins
Sometimes, you need to get the user to login to simplify the subsequent steps of the journey. Weâll focus on eCommerce journeys of checkout, check order status and abandoned cart. But, before that, if you have a mobile app, make sure that all links from emails/SMS are deep-linked. I donât want to experience a silly browser journey on a mobile device that has an app with me logged-in.
19. Donât force the user to log in when, without login, the user can complete the journey
During the checkout journey, the first step is usually the part where the user logs-in or provides an email. Visually prioritize the guest checkout option. The flow can be (for a non-logged in user with account):
- Ask user for their email
- Check if the email exists in the system, while taking the user to the next step. If the user has an account, prompt them to login, with the message saying that it would be simpler if they do so (check if the account has a shipping address and payment card associated).
Note â weâre not showing the message on the same step. The user expectation is to move forward â meet it. - If the user chooses to login, open a modal with the form and SSO options. Since you already know if the user used SSO the last time, position the SSO option and the form. The order should be:
Order of options in an in-journey sign in modal
Note: There is no forgot password. User basically goes through with it or continues.
4. If the login attempts are unsuccessful, politely inform the user to not worry and that youâll tie the transaction to their account (and do it!). They have to be brought back smoothly â make sure the user closes the modal on their own. If you close the modal, on behalf of the user, thatâll piss them off.
20.Upon login, if the user has items from a previous session, OVERWRITE IT!
Imagine if you were at the grocers, at the checkout line and when you provided your loyalty card, the cashier added 4 more items to your bill that you added to your basket the last time you were there? Wouldnât you hate it?
Merging session is fine when the user logs in before jumping into the checkout journey. Then again, you shouldnât just merge â identify them separately in the cart and ask if the user wants to add them to the new cart they have & give an option to âSave for laterâ. Your objective is to reduce the number of decisions the customer has to make before going into the checkout journey.
If you find that there are items in the users previous cart during the checkout flow, display them on the thank you page, with a simple message â âyou had these items in your previous cart, do you want to buy them now?â. At that point, add those items to the new cart and take them straight to the review page â where their previous choices (like shipping address, payment type has been selected) and the basket total is shown. They should be able to select the items they want to buy and save for later. Simplify the journey.
21. Prompt account creation after the primary journey has been completed
If a user doesnât have an account, itâs best to ask them to create a password for their account on the Order Confirmation/Thank you page. Donât ask for repeated information. You already have all the information you need to create the account. Just the password is missing.
22. Order status links should not ask for logins
There should be two ways a user can check their order status:
- Link in the email â Order status link should be sent with every order confirmation email and order update mail
- Form on site that allows for email + order number combination
Additional information about the order can be kept behind a login prompt. Make sure that after login, the user goes the page that they were intending to go toâŠ
23. Abandoned Carts links should not prompt for login
Abandoned cart flows are complicated â user accessing the link from a browser that theyâre already logged-in, or session recreation using SSID in the URL â things get really complicated from a technical standpoint.
Simplify the Abandoned Cart journey by focusing on one product and get the user to transact that item. If they have items in the cart, show those as additional products they can add. Remember to contextualize your user journeys.
. . .
Most users have come to expect the above as a given. As product managers, we have constraints on the technological wiggle room we get to implement these, but I can assure you, implementing these changes will give your site/app a UX boost and increase your conversion. Try A/B on most of these rules and see how your users react.
Thank you for reading!
Originally posted on Rameez's Medium page.