I lead product AI work on Zipify’s OneClickUpsell, an upsell app for Shopify merchants. At Master of Code Global, we’ve built Zipify’s product suite, including OneClickUpsell, for over a decade.
One of the things we’ve worked on recently is AI Prebuilt Funnels. It’s a feature that analyzes a merchant’s store and builds ready-to-launch upsell funnels for them.
In this piece, I want to walk through why we built it, how it decides what to offer, what proved harder than we expected, and what I’d tell any team that plans to add AI to its product. Some of it we got wrong at first, and I’ll cover that too.
Table of Contents
The problem we noticed: a funnel only makes money if it’s set up right
On paper, an upsell funnel is simple. A customer is about to buy something, and the store offers something else that fits. In practice, a funnel only makes money when it’s set up properly. You need the right trigger products, offers that match them, and sensible logic for each stage of the purchase.
That’s a lot of decisions. An experienced merchant spends hours on them. A new merchant often doesn’t start at all because the barrier is too high.
AI Prebuilt Funnels removes that barrier. The system analyzes a specific store and builds ready-to-launch funnels with triggers, offers, and recommended discounts. It covers the key points of the buyer journey:
- Before checkout
- In the cart
- Right after purchase
- On the thank-you page
How we spotted the gap in our data
The data showed it clearly. A large share of stores either never launch funnels or launch them suboptimally. In both cases, they leave money on the table.
At the same time, we already had everything needed to do this work for the merchant: their catalog, their real purchase behavior, and their traffic.
So the idea was simple. Give every store a starter set of funnels, built the way an experienced CRO specialist would build them, just in minutes instead of days.
What we built for our merchants and what they see
The feature is for OneClickUpsell merchants, and what it gives them depends on where they are.
For a new merchant, it’s the difference between an empty “create your first funnel” screen and a set of ready-to-use options built around their own catalog. They don’t need any CRO expertise to get there.
There’s also an effect we didn’t plan as a goal: it works as onboarding. When a merchant looks at prebuilt funnels, they see how upsell logic is structured in the first place. So even the funnels they later build manually come out better.
Experienced merchants simply save hours. AI does the grunt work. They review the funnels, edit them if needed, and activate.
How we designed the way the system picks offers
At a high level, the system looks at the store as a whole:
- What’s actually bought together
- What gets traffic
- How the catalog and pricing are structured
Based on that, it decides what should be a trigger, what to offer as an upsell or a downsell, and what discount to recommend.
We paid attention to two things here. First, our AI runs on real data from a specific store. Second, it doesn’t get free rein. Wherever a rule really matters, the system itself enforces it. We don’t leave it to the model’s good behavior.
How exactly it all works under the hood is the part we keep to ourselves. I’ll just say it’s our analytic core combined with generative AI, and the most interesting stuff happens right at that intersection.
Of course, a merchant could just ask ChatGPT to build their funnels. But first, they’d have to build the whole analytic core that feeds the right data into the model, and in most cases, they simply don’t have time for that. A general-purpose model doesn’t know what’s actually bought together in your store, what your customers click on, or how your pricing is structured.
On its own, ChatGPT can produce funnels that sound plausible. But plausible and profitable are different things. In our system, the generative model is honestly the smallest part.
The real value sits in the analytic core underneath it, built on the store’s own purchase behavior. The interesting part was never the model.
What we found more challenging than we expected
Three things, honestly. And on some of them, our first approach didn’t work.
Real catalogs are messy
Real store catalogs contain service items like shipping or gift wrapping. They have hidden and outdated products. They have duplicates. If you don’t handle that systematically, the AI will quite sincerely offer “shipping protection” as an upsell.
It sounds funny until it shows up in a real store’s funnel. So, messy catalog data is something we had to handle systematically.
Understanding an instruction isn’t the same as following it
A model “understanding” an instruction doesn’t mean it will follow it in every one of thousands of very different stores. Our starting point was basically to ask the model nicely. That can look fine on a handful of examples. It doesn’t hold up across thousands of stores.
So we switched from asking the model nicely to guaranteeing the result systematically. It’s the same principle I mentioned earlier: wherever a rule really matters, the system enforces it.
Evaluating quality at this scale
There was no playbook for auditing LLM output at this scale. So we ended up writing our own. That process deserves its own section.
How we built the system that checks what the AI generates
How much can merchants rely on the generated funnels? Today, confidently. But there’s serious work behind that confidence.
Stores are very different. Something that works perfectly in one store can fail in another. So, in parallel with the generation itself, we built the audit pipeline, which includes a full quality-control process. Each cycle looked like this:
- Generate funnels.
- Audit them at scale.
- Classify the systemic problems.
- Fix them together with the dev team.
- Measure the iteration.
Across multiple iterations, we audited thousands of generated funnels this way. After a few of those cycles, we got to a quality level where you’re not embarrassed to activate a funnel right away.
That said, it’s a strong assistant, but not an autopilot. The final word belongs to the merchant. They know their brand and margins in a way no model does.
What we’re planning next
We’ve learned to help a merchant start. The next step is to help them keep improving.
We’re extending the same analytic core to funnels that are already live. The system will identify funnels that underperform and show the merchant exactly where they’re leaving money on the table.
There’s also a deeper layer in the works: an analytic core that learns from purchase patterns across the whole merchant base. That way, even a brand-new store with almost no data of its own gets recommendations backed by what works in thousands of similar stores.
What I’d tell teams integrating AI into their product
Three things again.
1. AI is not magic and not a replacement for data
Most of the value is created in data preparation and domain logic. The generative model is the top layer, not the foundation. In our AI Prebuilt Funnels, the analytic core is what makes the output worth activating.
2. Build quality control from day one, at real scale
What looks great in a demo on ten examples behaves differently in production.
That’s why quality control ran in parallel with generation itself in OneClickUpsell.
3. Give the model a narrow, clearly defined task
The less room for imagination, the more stable the product.
The bottom line
That’s how we approached this problem on OneClickUpsell. If you’re working on something similar, reach out to us at Master of Code Global. We’ll be glad to talk through your challenge and come up with a solution together.