
The problem
Merchants uninstalled our shopify app immediately
Our Shopify app onboarding was 1 step, a link out to Shopify's theme editor to place the widget, and some copy about what the app did.
It sent merchants away from the app before they'd seen it work. They installed and uninstalled in the same day. 50% of everyone who uninstalled.
With no behavioural data, the only way to learn anything was to ask. I reached out to merchants. Few replied. The ones who did had no idea what the app was, what it could do, or how to use it.
The twist
The new onboarding opened with a choice.
Meanwhile we shipped AI swap alongside AR try-on. Two modes with almost nothing in common.
The modes define the service, so merchants should select it at the beginning. I equipped each mode with a live demo so they could see what they were choosing between.
Same-day uninstalls went up.


The finding
~60% of all same-day uninstalls came at the mode selection.
I analyzed the onboarding funnel only to find out merchants stopped at the first step.That ruled out most explanations. They weren't failing setup or finding the product disappointing. They were leaving at the question itself.
The demos answered the wrong question
Demos showed what each mode did. What a merchant needed to know was which one they could have . We knew all of that. They didn't. We were asking them to decide something only we could answer.
The decision
If the question was ours to answer, we should answer it.
AI swap became the default. No assets, no setup, activate and it works. AR stayed available but surfaced only to eligible merchants, and the 3D asset work moved to after onboarding, where it became fine-tuning rather than a barrier.

This costs us money. AI swap is more expensive to serve than AR, so defaulting everyone to it means carrying merchants at a worse margin than necessary. That was the trade: expensive merchants are better than none, and mode selection could move later into the journey once we knew who was worth the 3D investment.
Same-day uninstalls dropped. The same ad spend started producing merchants who stayed.
The second thing they couldn't do
Our service has no per-product limit, so activation covered a merchant's entire catalog. We'd offered that as generosity. Merchants read it as being forced — support requests kept coming in asking us to turn try-on off for most of their products, and large catalogs were taking hours to sync before anyone had decided they wanted them.
So I added a step where merchants choose which collections to activate. It gave them the control they'd been asking for, gave our sync a priority queue, and stopped us processing catalogs nobody would use. We also showed an estimate for how long each collection would take, so merchants knew when it would be ready.

The invisible state
Shopify's theme editor opens on a default product. If a merchant hadn't activated that one, the widget applied silently — nothing visible on the page — and merchants concluded the app was broken.
Tracing merchant steps and asking for feedback surfaced it. I replaced the invisible state with a placeholder where the button would sit, so absence became something you could see and position. I built this one myself.

The catch
Defaulting everyone to the costlier mode is not a design desicion
It buys activation with gross margin, and it assumes we can migrate merchants to AR later — which is a bet, not a result.
The deeper limit is that I could never talk to the merchants I most needed to understand. Everything here was learned from merchants who stayed.
The Result
Same-day uninstalls 50%→38%. Onboarding completion from ~40% to close to all. Same ad spend, more merchants surviving to become customers.





