Users Sign Up but Never Get Started: How to Test Your Onboarding
A signup appears in your dashboard, but the user never creates a project. It is tempting to rewrite the welcome message or add another onboarding tooltip.
First, establish whether the user can complete the journey at all. A verification link may lose their session. A workspace form may fail after account creation. The empty state may send them to a feature their plan cannot use.
A browser test can identify functional blockers in that path. It cannot tell you by itself why a person chose to leave. Keep that distinction when interpreting low activation: behavior data and customer conversations answer questions that a functional check does not.
Define the first useful result
Choose a result that reflects your product’s value. “Reached the dashboard” is often too early.
For a fictional reporting SaaS, define activation as: a new user creates a workspace, imports a supported sample file, and opens a report containing the imported data.
Write the expected data and the final visible state. If the report can be empty and still load, loading alone is not an adequate assertion. Verify a known row or total from the sample file.
Keep the example input small enough to understand. A controlled file with three labeled rows makes it easier to distinguish correct output from a report that simply renders.

Start with a genuinely fresh account
Use a clean browser session and an account created for this test. Do not reuse an owner account that already has a workspace, a completed tour, or a connection configured.
Prepare a test inbox you control if signup requires email. Follow the delivered link and confirm that it returns the user to the correct setup state. If the inbox or link cannot be exercised, record email verification as unverified.
For repeatable automation, keep new-user signup separate from tests that intentionally begin with an established account. A pre-authenticated test account is useful for checking a report workflow; it skips the account creation portion of onboarding.
Note any external dependency you replace with a fixture. A stubbed import can isolate application behavior, while a separate integration check establishes whether the real connection works.
Test each handoff in the journey
At every transition, verify both where the user lands and what state survived.
| Transition | What to check |
|---|---|
| Public page to signup | The promised product and signup method are consistent |
| Signup to verification | The next action is clear and the account is not duplicated on retry |
| Verification to setup | The user returns to their own account and expected onboarding step |
| Setup to empty workspace | The correct workspace exists and its primary action is usable |
| Empty state to first task | The action reaches a feature available to this account |
| First task to result | Output matches the controlled input and survives reopening |
Record the first failed handoff before investigating downstream effects. If workspace creation never completes, an empty report is a consequence rather than a separate explanation for the failure.
Interrupt setup on purpose
Customers switch tabs, close a laptop, or leave to find an API key. Your setup needs a defined response to those interruptions.
Leave after account creation and sign in again. Repeat after workspace creation and after the first import starts. At each point, check whether the user resumes, sees a clear pending state, or is offered a safe way to restart.
In the reporting example, retrying an interrupted import should follow the product’s duplicate-handling rule. Decide whether the app resumes the existing job or clearly starts another import. An unexplained duplicate report is not an acceptable accidental outcome.
Test back navigation and a normal reload as well. Record which fields should persist. Avoid inventing a requirement that all transient form input must survive if the product does not promise that behavior.
Exercise one failure and one recovery
Use an unsupported sample file in the isolated test environment. Verify that the message identifies the problem, the account remains usable, and the user can replace the file with a supported one.
Then complete the normal journey with the valid sample. That recovery step matters: displaying an error is incomplete if the form cannot be submitted again.
If onboarding depends on a third-party connection, test the user cancelling that connection through its supported flow. Confirm they return to a useful application state. Keep provider-specific success and failure checks within the provider’s approved test setup.
Test the second visit
After creating the first report, sign out and return through the public sign-in path. The same account should reach the expected workspace and find the report with its known data.
Check the intended onboarding state. A completed user may need the normal dashboard; an unfinished user may need a resume prompt. Write down the actual policy so the test does not merely accept whichever screen appears.
If users can belong to multiple workspaces, confirm which workspace a returning session should select. A correct report in the wrong workspace is a context failure worth investigating.
Turn observations into specific fixes
A useful failure record might say:
Starting state: Fresh account; email verified; no workspace.
Action: Submit the workspace setup form with valid required fields.
Expected: One workspace is created and the import empty state appears.
Observed: The form returns to its initial state without a message.
Evidence: Release version, URL, browser, and captured failed step.This is more actionable than “onboarding is broken.” Once fixed, rerun from the same starting state and complete the remaining journey.
HiTest can help execute a reviewed browser test with explicit outcomes. Keep mailbox access and external setup steps separate when the available test environment cannot exercise them. For authenticated coverage after activation, use dedicated test accounts.
Pair functional results with activation analytics and actual user feedback. If the complete journey works but people still stop, you have narrowed the investigation toward relevance, clarity, effort, or expectations rather than proving any one of those explanations.