Skip to main content

Common ShopGuide mistakes to avoid

Almost every ShopGuide problem we hear about traces back to one of a handful of configuration mistakes, not to the AI itself. Here's the actual list.

Turning on the discount generator without eligible products

The AI Discount Code Generator lets the AI build a personalized, time-limited discount mid-conversation — SARAH-LASHES-A3X, that kind of thing — but only for products or collections you've explicitly marked eligible in Settings → AI Behavior. It's easy to enable the toggle, set a value and duration, and stop there without picking anything for it to actually discount.

Nothing breaks when this happens. The AI just has nothing it's allowed to offer, so it either avoids the topic or the tool call has no scope to act on. Because the code is scoped in Shopify to your eligible list — not just controlled by the AI — an empty list means an empty code. Revisit it whenever your catalog changes; a product added last month isn't eligible until someone adds it to the setting. See Settings panel.

Never checking Information Gaps

This detector runs after every response and sorts anything unresolved into knowledge_gap, bug, live_data, system_error, or other, stacking repeat questions into one row. It's the single most direct signal for what your AI is actually failing at — and because it works silently and never interrupts the chat, it's easy to forget it exists at all.

The real mistake isn't missing one flagged conversation. It's never opening the Knowledge Gaps tab, so a cluster representing dozens of customers asking the same unanswered question — missing packaging info, missing sizing detail — sits invisible until someone happens to read a transcript. Treat system_error differently from the rest: a spike there means the app is misbehaving, not that your content needs more FAQ copy.

Calling an A/B test winner too early

Because ShopGuide's A/B testing attributes both engagement and completed orders to each variant, it's tempting to check after a day or two and ship whichever one looks ahead. Order attribution takes time to build up, and traffic varies by day of week — a variant leading on day two can flip by day seven. Let a test run a full business cycle before reading A/B test results, and treat a small early gap as noise rather than a result.

Setting up language for a market outside en/de/nl

The widget's static chrome — buttons, guided-discovery labels, footer line, disclaimer — only has translated strings for English, German, and Dutch. If your shop_content_language metafield is set to a fourth language, or just left out of sync with your actual storefront, you'll get a visibly mismatched experience: UI chrome in the wrong language sitting next to AI prose that's correctly adapting to the shopper (the AI's own replies aren't limited to en/de/nl — only the static labels are). Confirm the content-language metafield actually matches one of the three, or plan on English chrome as your fallback. See Multi-language support.

Treating every session like a new customer

ShopGuide reports unique users, sessions, and interactions separately for a reason: one shopper can open several sessions, and a session can hold several messages without ever counting as an "interaction" if nobody actually types anything. Read session count as customer count, or interaction count as conversion count, and your adoption numbers inflate, and month-over-month comparisons stop meaning much. Use the definitions in Success metrics instead of assuming one number stands in for another.

Letting catalog content lag behind the live store

Product search and product-question answers come from a vector index (Qdrant) plus RAG over your shop's content. Update, discontinue, or reprice something in Shopify without that reaching the indexed content, and you get a stale or wrong answer — not because the AI is unreliable, but because it's answering from what it can see. This is the most common root cause behind knowledge_gap and bug entries in Information Gaps. Check catalog sync before assuming it's a prompt problem.

Next steps