WorkIndia - OTP Onboarding & Activation
3m readVerification was the biggest activation drop-off - so logins skip OTP entirely on a saved token, and registrations run a four-channel fallback ladder.
Problem
Every candidate had to clear phone verification before doing anything else, and a meaningful share never got past it. Delivery-latency and user-behaviour analysis both pointed at OTP as the single largest activation bottleneck.
Hypothesis
Failed verifications were a delivery-channel sequencing problem, not a user-intent one. Recover people on a second channel before they give up, and activation rises with no extra acquisition spend.
Approach
- Split the funnel by channel, vendor, and time-to-deliver to separate "never delivered" from "delivered too late" - identical in a conversion chart, opposite fixes.
- Built a progressive recovery ladder - Primary SMS → WhatsApp → Secondary SMS → OTP Call - each rung firing on the previous one's failure, ordered by delivery success, then latency, then user effort.
- Added saved login tokens so returning users re-authenticate in one tap (the Instagram / Flipkart / Zepto pattern), with a fixed TTL after which they re-enter the OTP funnel - plus a secondary SMS vendor for redundancy.
Key Decisions
- Sequence by expected success, not cost: a failed cheap send costs a user.
- Returning users shouldn't verify at all: removing the step beat optimising it - 98.2% on the login segment, ~56% of all volume.
- 5-second delivery as its own guardrail: otherwise the funnel gets "fixed" by simply retrying more.
- A second vendor before a smarter algorithm: redundancy solved a failure class no routing logic could, and shipped faster.
Impact
| Verification metric | Before | After | Δ |
|---|---|---|---|
| OTP success rate | 89.6% | 96.3% | +6.7pp |
| Delivered within 5 seconds | 88.2% | 96.6% | +8.4pp |
| Segment | Volume weight | Before | After | Δ |
|---|---|---|---|---|
| Login | ~56% | 89.6% | 98.2% | +8.6pp |
| Register | ~44% | 89.6% | 93.9% | +4.3pp |
| Overall | 100% | 89.6% | 96.3% | +6.7pp |
Why "before" is identical across segments: everyone walked the same funnel - enter mobile → OTP delivered → enter code → verify - on a single vendor, inheriting its throughput issues with no fallback. Segment couldn't matter, because the path didn't differ.
Why they diverge after: the two segments now take different paths.
- Login (~56% of volume) re-authenticates on a saved token in one tap - the pattern Instagram, Flipkart, Zepto, and BigBasket use. No OTP is sent, so vendor delivery stops being a factor at all.
- Register (~44%) still goes through the OTP funnel - but the funnel itself got better, because the fallback ladder recovers the sends the primary vendor drops.
- Tokens carry a fixed TTL, so a login user returning after it expires lands back in the OTP funnel - and picks up the same ladder improvement as a registering user.
What I'd Do Next
- Route the first attempt by carrier and geography, and explore silent network-based verification so eligible users never see an OTP screen.
- Measure activation-to-first-apply - verifying more users only matters if they go on to apply.