Milly Software
InsightsEngagementProduct Recommendation Quizzes Inside Your Shopify Chat: Scored Answers, Ranked Results, AI-Aware Follow-Ups
Engagement··7 min read

Product Recommendation Quizzes Inside Your Shopify Chat: Scored Answers, Ranked Results, AI-Aware Follow-Ups

Structured discovery path inside the widget — scored questions, top-N product ranking, complementary cross-sells, and AI follow-up turns aware of what the customer answered. Core+, both widget formats, B2B-gateable.

V
Viet Le
co-founder · Milly Software

AI chat is conversational by default — the customer types a question and the assistant answers from your catalog and knowledge base. That format is right most of the time, but not all of it. There are purchase decisions where a customer doesn't know what to ask: smart lighting starter kits, e-bike fit, paint finishes, dietary supplements. They'd rather be walked through a few questions and handed an opinionated short list at the end.

Quizzes are the structured discovery path inside Milly Chat. A customer steps through a series of questions; each answer carries per-product scores; the final result is the top-N products by total score, with optional complementary cross-sells. The conversation afterward is aware of what they answered — so a follow-up question like “can I see them side-by-side?” doesn't restart from zero. It's on Core, and the launch partner Deako shipped their first version of it on their headless storefront.

How a quiz scores and ranks

Each quiz is a tree of questions and answer options. Every answer option carries a row of per-product scores — a number between 0 and 10 for each product the merchant wants the quiz to consider. A customer's final ranking is the sum of scores across all the options they selected, with the top N (configurable per quiz) surfaced as recommendations.

The scoring is intentionally simple. Merchants don't reason about weights or decision trees; they fill out a matrix that says, for each answer, how strongly each product fits. A product that scores high on three of the four questions a customer answered will outrank one that's a perfect fit on one question but a weak fit on the rest. Ties break by the natural order in the matrix — there are no opaque tiebreakers to debug.

Two extras shape the result screen:

  • Multi-select questions. Some answers aren't mutually exclusive — “which rooms?” or “which allergies?” — and scoring needs to add up across all of them. A per-question toggle in the admin enables multi-select for the questions where it makes sense.
  • Complementary cross-sells. After the top-N is computed, the result screen can show a row of complementary products tied to the winners. Configured as a base-product → complementary-list map in the admin, so a customer who lands on the Pro Starter Kit sees the matching wall switches and dimmers as a separate pill row, not jammed into the ranking.

Two entry points, both widget formats, with a B2B gate

A quiz isn't much use if customers can't find it. There are two surfaces inside the widget that launch one:

  • Quick-question pill. The same row of suggested prompts that already greets a customer on widget open. A quick question can be wired to either send a chat message (the default), launch a quiz, or — as of last week's ship — route to a Curated Response. Quiz-type pills get a small puzzle icon to visually differentiate from text suggestions, so customers understand the click leads somewhere different than a chat reply.
  • Header re-trigger icon. The quick-question row disappears after the customer's first message. A persistent puzzle icon in the widget header keeps the quiz reachable for the rest of the conversation — useful when a customer chats for a minute, gets curious about a structured walkthrough, and wants to jump in without scrolling back. The icon takes its aria-label from the quiz name itself, so it announces correctly to screen readers without a separate trigger-label field.

Both entry points work across the chat-bubble and search-bar widget formats. The search-bar parity was a v2.2.1 polish — the original launch supported chat format only, which created a gap for the merchants whose primary widget surface is the search bar. Now a merchant running the search format gets the same quiz affordance their chat-format peers do.

There's also a B2B gate. If the script tag carries data-customer-type="b2b" — set by the merchant's wholesale portal or B2B subdomain — both quiz entry points are suppressed. Wholesale buyers usually already know the SKU they want; a discovery quiz isn't the friction they're looking for. Deako uses this on their shop.deako.com B2B portal so the same store carries the quiz on the consumer storefront but hides it from contracted accounts.

The follow-up turn knows what the customer answered

The thing that makes a quiz feel native to chat rather than a sidecar widget is what happens after the result screen. A customer completes the quiz, sees their top three picks, then types “which of these is best for cold-weather riding?” into the chat. They don't want to re-describe themselves. The AI should already know.

Quiz completions are tied to the conversation that hosted them. When the AI handler builds the system prompt for the next turn, it checks whether the active conversation has a recent completion and, if so, injects a short fragment: “The customer just completed a product recommendation quiz and was shown these top picks: X, Y, Z.” No synthetic message is inserted into the transcript — the customer doesn't see a fake AI turn summarizing their own quiz — but the assistant has the context to answer follow-ups against the real list.

Same machinery, by the way, lets the AI handle questions like “why did you pick those?” without making up an answer. The top-N is grounded in the actual scoring matrix, and the injection tells the assistant exactly which products it can speak to.

Two ways to build one

The admin UI at /dashboard/stores/[storeId]/quiz is the default path. You name the quiz, add questions and answer options, pick the products that should be in the scoring matrix, and fill in numbers. Drag-and-drop reorder for questions and options, multi-select toggle per question, a complementary-product editor at the bottom. Save replaces the whole tree — quizzes are small enough that wholesale replacement is cleaner than partial diffs, and the admin pattern reads like editing a single document.

For merchants migrating from a spreadsheet-driven quiz on a previous platform, there's also a CSV import path. The shape mirrors a common export format: a question-order file, per-question scoring matrices (products × answer options), and a complementary-products map. One command lands the whole quiz in the admin, idempotent on re-run, ready to enable. The Deako launch used this — their existing “Big Sur” quiz was several thousand cells of scoring data that would've been painful to recreate by hand.

Quizzes are gated to Core and above. The Curated Responses pairing from last week's post applies here too — each quick-question pill can either send chat, trigger a quiz, or route to a curated response, so a merchant on Core can build the opening row of their chat surface as a controlled experience with the quiz as one of three deliberate launch points.

Frequently Asked Questions

How does a product recommendation quiz decide what to show?

Each answer option carries a per-product score from 0 to 10, and the final ranking is the sum of scores across every option the customer selected, with the top N (configurable per quiz) surfaced as recommendations. It's a simple fit matrix rather than weights or decision trees, and ties break by the natural order in the matrix. The result screen can also show complementary cross-sells tied to the winning products.

How do shoppers start a quiz, and can I hide it from wholesale buyers?

Two entry points launch a quiz: a quick-question pill marked with a puzzle icon, and a persistent puzzle icon in the widget header that stays reachable after the first message. Both work in the chat-bubble and search-bar formats. If the script tag carries data-customer-type="b2b", both entry points are suppressed — so the same store can show the quiz on its consumer storefront but hide it from contracted B2B accounts.

Does the AI remember the quiz answers in the conversation after?

Yes. A quiz completion is tied to its conversation, so when the AI builds the next turn it injects a short note of the top picks the customer was shown. A follow-up like 'which of these is best for cold-weather riding?' doesn't restart from zero. No fake AI message is inserted into the transcript — the assistant simply has the real, scored list to answer against, including questions like 'why did you pick those?'.

Try Milly Chat

Want to see how this fits your store?
We'll set up a working session.

Get it on ShopifyTalk to sales →