One flow served every customer, whatever they came for. Nobody ever asked why they were there, and about one in six new accounts opened dormant from day one.

Everyone got the same onboarding, whatever they came for.
Bank Saqu is an Indonesian digital bank selling savings and credit in one app. To apply for credit, customers had to open a savings account first, so the account existed before we knew whether the loan would be approved. Nobody ever asked why the customer was there.
It worked for people who came to save. It failed the majority who came to borrow.
The flow wasn't bad. It just didn't know who it was talking to.
And the dormancy compounded. Every rejected applicant we onboarded anyway walked away with a product they hadn't asked for, and we were left paying to run accounts for people we had already turned away. Across a year that is 105,840 accounts at Rp10,033 each.
We were opening accounts that people never asked for.
How might we capture intent early enough to stop opening accounts nobody wants, without losing the people who genuinely came to save?
The dormancy was decided at the start, not the end.
The obvious fix was downstream: reactivation campaigns and nudges. That treats the symptom. No campaign fixes an account nobody wanted in the first place. What I argued instead was that we stop opening the account at all. Once we onboarded someone without asking what they came for, the outcome was already set.
I didn't rebuild the journey. It worked. It was just missing a signal. Two small changes, not a rebuild:
The tradeoff I accepted: an extra question upfront may lose people who would have drifted into an account. I took that deliberately. An account opened by accident isn't a win, it's a cost.
Ask what they came for
The flow opens with one routing question and two paths.
What each path asks for: savings is an ID check, basic info, and the account opens. Savings and credit is an ID check, basic info plus credit data, a credit decision, and then either an account or an exit.
One flow, two depths
Same steps for both paths. The answer only changes what we ask for.
SLIK is the clearest case. It's a real thing to ask of someone, and savings customers were being asked for it anyway.
Making the savings account a choice
This is the decision I got the most pushback on. Cancel is the primary button. Continuing to a savings account is a text link.
Normally you bury the exit and push the account, because acquisition is what gets measured. But half of these accounts go dormant, and each one costs us every month. Pushing the signup meant pushing an expense.
Cancelling explains that the data already submitted gets deleted. That makes leaving something you get, not something you lose.
Still unresolved: a weighted exit may push away people who would have used the account.


People felt asked the same thing twice
I tested the concept internally before build. The entry screen asked which product. A compliance field inside KYC asked the account's purpose. Neither one could go. The real problem was two questions with two owners, never designed as a pair.
So I made them ask different things
One word did it. Opening is a decision you make now. Using is what happens after. Different tenses, different questions.
Then I connected them
Rewording alone still leaves two similar questions in a row, so I made the second one follow from the first.
The repetition became proof that the system was listening.


From one path for everyone to a flow that adapts.
Shipped last month. These are the projections the case was built on, sized from our own rejection and inactivity rates over the last three to six months.
How the cost is built: 600,000 new accounts to end of year → 72% with lending intent = 432,000 → 49% rejected = 211,680 → 50% inactive after = 105,840 accounts × Rp10,033 each = Rp1.06B.
What I'd watch first: how many rejected applicants actually cancel is the ratio the whole model turns on, and it is the first thing coming back from live data.