SaaS & Produtos 4 min min read 9 views

I asked for a tax ID, e-mail confirmation and 2FA before showing the product. Nobody stayed

E
Eduardo Piasson
29 Sep 2026
I asked for a tax ID, e-mail confirmation and 2FA before showing the product. Nobody stayed

Count the screens that stand before your product

Run a test on your SaaS: open a private window, click "create account" and count how many screens, fields and e-mails sit between that click and the first moment the product does something useful.

At Estoque Simples, my stockroom control system for the Brazilian market, the count looked like this:

  1. A multi-step signup wizard: name, e-mail, password, company name, company tax ID (CNPJ), company e-mail and phone.
  2. E-mail confirmation, required to get in.
  3. Two-factor authentication setup, mandatory for everyone.
  4. An empty dashboard with a "New product" button.

Each step, taken alone, had a defensible justification. Together, they asked people to trust me four times before I delivered anything.

Two months live, no customers. Signup was not the only cause, but it was the easiest one to see.

The reasoning error: security at the wrong time

I treated every signup as a valuable account. But a freshly created account is an empty account: no products, no stock movements, no data to protect. Demanding an authenticator app at that moment protects nothing and drives someone away.

What changed:

  • 2FA became optional for companies. The dashboard suggests turning it on after a week of use, when there is something worth protecting. For platform administrators it remains mandatory.
  • E-mail confirmation got a seven-day grace period. People get in right away, with a notice at the top of the screen. Sensitive actions, such as inviting users and exporting data, still require a confirmed e-mail.
  • The tax ID left the signup form. It is only requested when subscribing to the paid plan, which is when the payment provider actually needs it. It now accepts a personal tax ID (CPF) as well, because whoever runs the stockroom of a church or a small association often signs up in their own name.

Signup today is one screen: name, e-mail and password. If the company name is left blank, the system creates a provisional one and moves on.

The bug I only found because I looked at the funnel

While reviewing the flow, I found something embarrassing: the confirmation e-mail was never sent.

The admin panel framework I use fires its own "user registered" event, different from the framework's default event, which is the one that triggers the e-mail. Both classes have the same name, in different namespaces.

In other words: I required confirmation of an e-mail that never arrived. The tests passed, because they tested each part in isolation. No test did what a user does: create the account and wait for the message.

The lesson is old and still holds. Walk through your own signup, from scratch, in a private window, every time you touch it.

An empty screen is friction too

Removing fields solves half the problem. The other half is what happens after signup. Three changes:

  • Sample data. One button loads demo products and stock movements. They do not count toward the plan limit and disappear with one click.
  • A first-steps checklist on the dashboard: add or import your items, set a minimum stock level, record a stock entry and record a withdrawal to a department.
  • Spreadsheet import. Anyone who already has their items in a spreadsheet downloads the template, pastes the data and uploads the file. Two hundred products go in within minutes, not an afternoon.

Hiding the button is not the same as selling

One interface detail changed how I think about plan limits. Before, when an account hit its limit, the create button simply vanished. People could not tell whether it was an error, a missing permission or a defect.

Now the button stays. Clicking it shows an explanation of the limit and the path to the Pro plan.

A hidden limit looks like a bug. An explained limit is an offer.

The summary in one rule

Ask for each piece of information at the last possible moment, and only from those who need to give it:

  • Tax ID at payment time.
  • 2FA once there is something to protect.
  • Confirmed e-mail before the first sensitive action.

If you want to see the result in practice, the new signup is at sistemaestoquesimples.com.br. It takes less than a minute, asks for no card, and the free plan does not expire.

Newsletter

New articles straight to your inbox.

✓ Check your email to confirm your subscription.

Related posts