My learning 0 of 20 lessons complete
Start lesson 1 →
Back to compare picker

Confirm email vs Email address entry vs Account creation vs Password reset vs Two-factor authentication

Use confirm email when the product must prove mailbox access for an already captured address; use email address entry for collecting and validating the address text, account creation for establishing a persistent account, and password reset for replacing a forgotten password through a recovery artifact.

Learn the decision

Match the interaction to the person's task

Use confirm email when the product must prove mailbox access for an already captured address; use email address entry for collecting and validating the address text, account creation for establishing a persistent account, and password reset for replacing a forgotten password through a recovery artifact.

Confirm email

Use it when: A user must prove access to a mailbox before account activation, invitation acceptance, recovery eligibility, or sensitive notifications.

Make this state clear: Pending sent state with target email address, purpose, next step, expiry, resend, and change-address action.

Observe the result: A user mistypes the address, notices the pending address on the confirmation page, changes it, receives a fresh link, and continues from the same account-activation step.

Study the full pattern →

Email address entry

Use it when: The product must capture an email address for contact, receipt, notification, invitation, account identifier, recovery, or verification.

Make this state clear: Initial state with label, purpose hint, type email, autocomplete email, spellcheck false, and adequate width.

Observe the result: A user pastes alex+receipts@example.co.uk, sees it preserved exactly, reviews it on the check page, and changes it only if needed.

Study the full pattern →

Account creation

Use it when: Users need to save and resume drafts, regularly update their data, manage records, check ongoing status, collaborate, or protect repeated access.

Make this state clear: Need-for-account state explaining why an account is required or beneficial at this point.

Observe the result: A user completes most of a one-hour permit application, chooses to save progress, creates an account using the email already entered, verifies the email, and returns to the same draft.

Study the full pattern →

Password reset

Use it when: Users need to recover an account because the existing password is forgotten, suspected compromised, or unusable.

Make this state clear: Request state with identifier input, neutral copy, rate-limit protection, and a route back to sign in.

Observe the result: A user enters their email, sees a neutral delivery confirmation, opens a time-limited link, creates a new password, chooses to sign out other sessions, and receives a reset notification.

Study the full pattern →

Two-factor authentication

Use it when: A sign-in, new device, risk signal, or sensitive action requires proof beyond the primary credential.

Make this state clear: Initial additional-factor challenge with factor name, destination or protected action, and primary account context.

Observe the result: A user lost the phone, uses a single-use recovery code, receives a notification, and is prompted to add a replacement factor after reauthentication.

Study the full pattern →

Practice the judgment: Imagine this situation: The flow says the email is verified before the user opens the link or enters the code. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension Confirm emailEmail address entryAccount creationPassword resetTwo-factor authentication
UI or UX UI + UX - Mailbox access confirmation loopUI + UX - Contactable email address capture fieldUI + UX - Persistent account establishment flowUI + UX - Account recovery and reset-token lifecycleUI + UX - Additional-factor challenge and recovery flow
UI guidance Render confirm email as a mailbox-access proof loop with the target address, sent-message status, link or code instructions, expiry, resend timing, change-address route, pending or verified state, and clear blocking or non-blocking behavior.Render email entry as a labelled single-line field with purpose text, type email, autocomplete email, spellcheck disabled, enough visible width for review, field-specific errors, and optional typo warning and review states.Render account creation as a focused task with a clear reason for the account, one identifier path, new-credential fields, verification or activation state, existing-account route, and post-creation destination.Render password reset as a recovery journey with a neutral request form, reset delivery confirmation, token or code validation, expired and already-used link states, new-password handoff, session cleanup choices, and post-reset notification.Render two-factor authentication as a focused additional-factor challenge with factor name, destination or protected action, delivery hint, code or approval input, resend timing, alternate factor, recovery-code route, trusted-device choice, and safe failure handling.
UX guidance Use confirm email when the service must know that the user can access the mailbox before activating an account, enabling recovery, sending sensitive notifications, accepting an invitation, or relying on the address for future access.Use email address entry when the product must contact the user, identify an account, send a receipt, invite someone, or confirm access to a mailbox.Use account creation only when a persistent account is necessary for repeated access, saved data, updates, security, or legal accountability.Help legitimate users recover by making the next step visible, preserving privacy with neutral copy, rate-limiting repeated requests, handling expired links cleanly, and explaining what happens to active sessions after the reset.Use two-factor authentication when the product needs stronger proof after a password, passkey, SSO return, risk signal, new device, or sensitive action.
Good UI After account creation, the page says We sent a confirmation link to maya@example.com, explains the link expires in 30 minutes, offers Resend email and Change email address, and returns to the draft after verification.A receipt form asks for Email address, says We will only use this to send your receipt, uses type email and autocomplete email, and shows a review row before submit.A service lets users draft an application, then asks them to create an account to save and return later with email, new password, terms acknowledgement, and a clear activation message.A forgot-password page asks for email, then always shows If an account uses this email, we sent reset instructions, with resend timing and a support route.A code screen says Enter the 6-digit code from your authenticator app to continue to payroll settings, uses autocomplete one-time-code, shows Try another method, and explains recovery codes.
Bad UI A service blocks a low-risk receipt until the email is confirmed even though the user only needs a one-time copy.A page asks users to type the email twice, blocks paste, and silently changes homtail.com to hotmail.com.A registration screen has Sign in and Sign up side by side with identical email and password fields, plus newsletter, profile photo, and referral-code fields.Account enumeration through reset request copy, timing, status codes, resend behavior, or support routes.Attackers bypass the prompt through a direct endpoint, cached page, or remembered browser weakness.
Good UX A user mistypes the address, notices the pending address on the confirmation page, changes it, receives a fresh link, and continues from the same account-activation step.A user pastes alex+receipts@example.co.uk, sees it preserved exactly, reviews it on the check page, and changes it only if needed.A user completes most of a one-hour permit application, chooses to save progress, creates an account using the email already entered, verifies the email, and returns to the same draft.A user enters their email, sees a neutral delivery confirmation, opens a time-limited link, creates a new password, chooses to sign out other sessions, and receives a reset notification.A user lost the phone, uses a single-use recovery code, receives a notification, and is prompted to add a replacement factor after reauthentication.
Bad UX Old links confirm a new or changed email address incorrectly.A user enters a valid plus-addressed mailbox and the form rejects it because the validator only allows letters before the at sign.A user must create an account before learning whether the service is suitable, then abandons because registration feels unnecessary.Account enumeration through reset request copy, timing, status codes, resend behavior, or support routes.Attackers bypass the prompt through a direct endpoint, cached page, or remembered browser weakness.
Best fit A user must prove access to a mailbox before account activation, invitation acceptance, recovery eligibility, or sensitive notifications.The product must capture an email address for contact, receipt, notification, invitation, account identifier, recovery, or verification.Users need to save and resume drafts, regularly update their data, manage records, check ongoing status, collaborate, or protect repeated access.Users need to recover an account because the existing password is forgotten, suspected compromised, or unusable.A sign-in, new device, risk signal, or sensitive action requires proof beyond the primary credential.
Avoid when The email is only needed for a low-risk receipt, newsletter, or optional contact route.The flow needs a phone number, postal address, payment account, password, or one-time code instead.The task is a one-off transaction that can be completed with a reference number, receipt, guest route, or emailed status link.The user is merely signing in with a known current password or passkey.The user is only choosing an authentication method on the initial sign-in page.
Required state Pending sent state with target email address, purpose, next step, expiry, resend, and change-address action.Initial state with label, purpose hint, type email, autocomplete email, spellcheck false, and adequate width.Need-for-account state explaining why an account is required or beneficial at this point.Request state with identifier input, neutral copy, rate-limit protection, and a route back to sign in.Initial additional-factor challenge with factor name, destination or protected action, and primary account context.
Accessibility burden Use a clear heading such as Confirm your email address and show the pending email address as text.Use a visible label that names the value as an email address and a hint that explains why it is requested.Use a clear H1 such as Create an account and visible labels that say Create a password or Email address rather than ambiguous credential labels.Use a clear page heading such as Reset your password and avoid relying on placeholder text for the account identifier.Support paste into one field for codes and avoid multi-field inputs that trap focus or break screen-reader reading order.
Common misuse Forcing email confirmation when the service only needs a low-risk contact or receipt address.Blocking paste or browser autofill.Forcing accounts before users can evaluate a service or complete a one-off transaction.Confirming whether an email, username, phone number, or account exists.Blocking paste or autocomplete for one-time codes.

Confirm email

UI or UX
UI + UX - Mailbox access confirmation loop
UI guidance
Render confirm email as a mailbox-access proof loop with the target address, sent-message status, link or code instructions, expiry, resend timing, change-address route, pending or verified state, and clear blocking or non-blocking behavior.
UX guidance
Use confirm email when the service must know that the user can access the mailbox before activating an account, enabling recovery, sending sensitive notifications, accepting an invitation, or relying on the address for future access.
Good UI
After account creation, the page says We sent a confirmation link to maya@example.com, explains the link expires in 30 minutes, offers Resend email and Change email address, and returns to the draft after verification.
Bad UI
A service blocks a low-risk receipt until the email is confirmed even though the user only needs a one-time copy.
Good UX
A user mistypes the address, notices the pending address on the confirmation page, changes it, receives a fresh link, and continues from the same account-activation step.
Bad UX
Old links confirm a new or changed email address incorrectly.
Best fit
A user must prove access to a mailbox before account activation, invitation acceptance, recovery eligibility, or sensitive notifications.
Avoid when
The email is only needed for a low-risk receipt, newsletter, or optional contact route.
Required state
Pending sent state with target email address, purpose, next step, expiry, resend, and change-address action.
Accessibility burden
Use a clear heading such as Confirm your email address and show the pending email address as text.
Common misuse
Forcing email confirmation when the service only needs a low-risk contact or receipt address.

Email address entry

UI or UX
UI + UX - Contactable email address capture field
UI guidance
Render email entry as a labelled single-line field with purpose text, type email, autocomplete email, spellcheck disabled, enough visible width for review, field-specific errors, and optional typo warning and review states.
UX guidance
Use email address entry when the product must contact the user, identify an account, send a receipt, invite someone, or confirm access to a mailbox.
Good UI
A receipt form asks for Email address, says We will only use this to send your receipt, uses type email and autocomplete email, and shows a review row before submit.
Bad UI
A page asks users to type the email twice, blocks paste, and silently changes homtail.com to hotmail.com.
Good UX
A user pastes alex+receipts@example.co.uk, sees it preserved exactly, reviews it on the check page, and changes it only if needed.
Bad UX
A user enters a valid plus-addressed mailbox and the form rejects it because the validator only allows letters before the at sign.
Best fit
The product must capture an email address for contact, receipt, notification, invitation, account identifier, recovery, or verification.
Avoid when
The flow needs a phone number, postal address, payment account, password, or one-time code instead.
Required state
Initial state with label, purpose hint, type email, autocomplete email, spellcheck false, and adequate width.
Accessibility burden
Use a visible label that names the value as an email address and a hint that explains why it is requested.
Common misuse
Blocking paste or browser autofill.

Account creation

UI or UX
UI + UX - Persistent account establishment flow
UI guidance
Render account creation as a focused task with a clear reason for the account, one identifier path, new-credential fields, verification or activation state, existing-account route, and post-creation destination.
UX guidance
Use account creation only when a persistent account is necessary for repeated access, saved data, updates, security, or legal accountability.
Good UI
A service lets users draft an application, then asks them to create an account to save and return later with email, new password, terms acknowledgement, and a clear activation message.
Bad UI
A registration screen has Sign in and Sign up side by side with identical email and password fields, plus newsletter, profile photo, and referral-code fields.
Good UX
A user completes most of a one-hour permit application, chooses to save progress, creates an account using the email already entered, verifies the email, and returns to the same draft.
Bad UX
A user must create an account before learning whether the service is suitable, then abandons because registration feels unnecessary.
Best fit
Users need to save and resume drafts, regularly update their data, manage records, check ongoing status, collaborate, or protect repeated access.
Avoid when
The task is a one-off transaction that can be completed with a reference number, receipt, guest route, or emailed status link.
Required state
Need-for-account state explaining why an account is required or beneficial at this point.
Accessibility burden
Use a clear H1 such as Create an account and visible labels that say Create a password or Email address rather than ambiguous credential labels.
Common misuse
Forcing accounts before users can evaluate a service or complete a one-off transaction.

Password reset

UI or UX
UI + UX - Account recovery and reset-token lifecycle
UI guidance
Render password reset as a recovery journey with a neutral request form, reset delivery confirmation, token or code validation, expired and already-used link states, new-password handoff, session cleanup choices, and post-reset notification.
UX guidance
Help legitimate users recover by making the next step visible, preserving privacy with neutral copy, rate-limiting repeated requests, handling expired links cleanly, and explaining what happens to active sessions after the reset.
Good UI
A forgot-password page asks for email, then always shows If an account uses this email, we sent reset instructions, with resend timing and a support route.
Bad UI
Account enumeration through reset request copy, timing, status codes, resend behavior, or support routes.
Good UX
A user enters their email, sees a neutral delivery confirmation, opens a time-limited link, creates a new password, chooses to sign out other sessions, and receives a reset notification.
Bad UX
Account enumeration through reset request copy, timing, status codes, resend behavior, or support routes.
Best fit
Users need to recover an account because the existing password is forgotten, suspected compromised, or unusable.
Avoid when
The user is merely signing in with a known current password or passkey.
Required state
Request state with identifier input, neutral copy, rate-limit protection, and a route back to sign in.
Accessibility burden
Use a clear page heading such as Reset your password and avoid relying on placeholder text for the account identifier.
Common misuse
Confirming whether an email, username, phone number, or account exists.

Two-factor authentication

UI or UX
UI + UX - Additional-factor challenge and recovery flow
UI guidance
Render two-factor authentication as a focused additional-factor challenge with factor name, destination or protected action, delivery hint, code or approval input, resend timing, alternate factor, recovery-code route, trusted-device choice, and safe failure handling.
UX guidance
Use two-factor authentication when the product needs stronger proof after a password, passkey, SSO return, risk signal, new device, or sensitive action.
Good UI
A code screen says Enter the 6-digit code from your authenticator app to continue to payroll settings, uses autocomplete one-time-code, shows Try another method, and explains recovery codes.
Bad UI
Attackers bypass the prompt through a direct endpoint, cached page, or remembered browser weakness.
Good UX
A user lost the phone, uses a single-use recovery code, receives a notification, and is prompted to add a replacement factor after reauthentication.
Bad UX
Attackers bypass the prompt through a direct endpoint, cached page, or remembered browser weakness.
Best fit
A sign-in, new device, risk signal, or sensitive action requires proof beyond the primary credential.
Avoid when
The user is only choosing an authentication method on the initial sign-in page.
Required state
Initial additional-factor challenge with factor name, destination or protected action, and primary account context.
Accessibility burden
Support paste into one field for codes and avoid multi-field inputs that trap focus or break screen-reader reading order.
Common misuse
Blocking paste or autocomplete for one-time codes.
Decision rules
  • Choose confirm email when a captured email address must be proven reachable through a confirmation link or code before account activation, sensitive notification, recovery eligibility, invitation acceptance, or mailbox-dependent access continues.
  • Choose email address entry when the problem is collecting, formatting, validating, warning about, reviewing, or changing the address string before any mailbox-access proof exists.
  • Choose account creation when the product is establishing persistent credentials, account state, duplicate-account handling, activation routing, and return-to-task behavior around the account lifecycle.
  • Choose password reset when the user cannot authenticate and needs a reset request, reset link or code, new-password handoff, and post-reset cleanup.
  • Choose two-factor authentication when an already enrolled additional factor is required to authenticate or authorize a protected action; confirming email only proves access to that mailbox and is not the same as MFA.
  • A confirm-email flow should show where the message was sent, how to resend, how to change the address, when the link or code expires, and whether the rest of the task is blocked or can continue while pending.
  • A confirmation link or code should be time-limited, single-use where appropriate, bound to the email address and account or pending record, and recoverable through a request-new-message path.
  • Successful email confirmation should update verified-email state, clear pending warnings, continue the blocked task or account activation, and avoid treating syntactic email validity as confirmed access.
Inspect live examples
Failure modes
  • The user cannot change a mistyped email after the confirmation message is sent.
  • The flow says the email is verified before the user opens the link or enters the code.
  • An expired confirmation link shows a dead error with no resend or change-address action.
  • A low-risk receipt flow blocks completion until email confirmation even though the service only needs a delivery address.
  • The confirmation code is reused, logged, or treated as an authentication factor for later sign-in.

Saved items