I shortened our invite flow and expected activation to improve.
It didn’t.
The sender needed fewer taps, but the receiver still had to survive an App Store hop, a human approval step, and an in-app race before reaching value.
The number that forced me to admit this was our weekly funnel snapshot: 263 exposures -> 17 clicks -> 0 one-step link-ready events -> 0 one-step share-panel events -> 1 legacy link share -> 0 accepts.
Worse, the KPI I thought I was optimizing had a target (P50 <= 9 taps) but was structurally n/a because none of the required events were emitted yet.
So the real fix was not another cleaner screen.
I changed the system around the flow:
- preserved invite context across install
- bounded stale approval tokens on iOS
- changed the backend to store one join request per requester instead of consuming a shared link once
- added 31 join-loop tests plus server-side funnel events
The reusable lesson for me:
shortening the creator-facing step is not the same as reducing activation friction.
If activation depends on the receiver, define success from the receiver’s first value moment and instrument every boundary before claiming an optimization.
What looked cleaner in your growth loop but got worse once you mapped the install, approval, or first-value path end to end?