Kill-switching Imperfect Flows—A Case Study
Because sometimes it’s better to nip potential issues in the bud, than try to mend a user’s broken trust
Picture this — you’re driving your car along a dirt path. It’s raining cats and dogs. You have a destination to reach, and you’d like to get there as quickly as possible. The road ahead isn’t the prettiest or the smoothest; and it’s going to take a bit of effort to go forward.
The question is — would you rather hit a roadblock and come back when the weather is better — or keep driving, only for the journey to get increasingly worse, until your wheels get hopelessly stuck in a pit of mud?
See where I’m going with this?
Apps sometimes have less than perfect flows — often due to factors beyond our control. Our KYC (Know Your Customer) flow is a good example of this.
KYC is a crucial aspect of our product. Users who complete their KYC on LazyPay get access to a vast array of benefits.
But because of frequent outages in the Aadhaar verification system, delays in responses from banking partners, and other such external forces, we were experiencing massive drop-offs in the KYC flow.
Our users would keep trying to complete the process repeatedly, and keep failing. In the end, they’d get frustrated and abandon the exercise completely.
Naturally, getting people back into the flow after a terrible experience was tough. Broken trust isn’t easy to mend.
And the error screen we kept showing them didn’t help — a single, generic error that gave the user no clue about what was going wrong, or what they could do (shown below).
This needed to be solved. And the team quickly broke the issue down into two problem statements:
- Design a kill-switch mechanism that doesn’t allow users to enter the funnel when systems are down
- Create a set of contextual error screens to reduce user frustration at every step
When in doubt, flip the switch🕹️
Whenever a user tries to start their KYC — we check if the systems are working fine. If they’re not, flip the kill-switch and temporarily break the KYC circuit.
The user sees an error upfront and is prevented from entering the funnel. The messaging is playful and friendly, to assure users that it’s not a big deal and that we’ll be back in a jiffy!
Detailed, directional, delightful🌟
Now, what if the user encounters an error while already in the funnel? We prepared for those cases too.
Instead of the same old ‘Something went wrong’ with no explanation or resolution, we made our errors:
- Detailed — Tell users what went wrong, and don’t be too vague about it.
- Directional — Guide them on what to do next.
- Delightful — An error isn’t the end of the world. So keep it light, keep it fun, keep it friendly.
In total, we compiled 17 different error screens that covered a variety of error states.
These included technical errors, system errors, user input errors, delays and time-outs. Here are a few of them up close.
So what have we learnt, kids?
That good error handling matters. Even though it’s painfully apparent, we often ignore the value of well-designed error states. We also realised that in some cases, ‘no experience’ is better than a painful experience — especially when it’s an imperfect flow.
Once the new error screens went live, we saw a significant decrease in funnel drop-offs, along with a reduction in KYC-related customer care escalations.
So next time you’re designing any flow, put error handling in your ‘Must-have’ bucket and not the ‘Good-to-have’ bucket.
Thanks to the team behind the dream~
🧠 Product Manager — Kannan Padmanabhan
🎩 Product Designer — Parth Gupta
✏️ Content Designer — Mohana Das
🎨 3D Artist — Deepak Sharma