AliShopping Shopify NPS + Referral Flywheel — Feature Deep Dive
AliShopping Shopify NPS + Referral Flywheel — Feature Deep Dive
v2.0.0.20 shipped with a new prompt that appears for Shopify users meeting specific criteria. It asks "How likely are you to recommend AliShopping to another Shopify seller?" on a 0-10 scale. The response routes to one of three flows:
- Promoters (9-10): One-click share CTA generating a Chrome Web Store link with embedded referrer ID
- Passives (7-8): Inline textarea asking "What would make it a 10 for you?"
- Detractors (0-6): Inline textarea asking "What's the #1 blocker?"
This is the measurement layer the extension was missing. Until v20, feedback from Shopify users was collected through nothing — the ReviewPrompt component was not even mounted on Shopify pages.
Why Segment-Aware
The prompt only fires for three of the five MECE store categories:
- ✅ C_DROPSHIPPER (dropshipping operations)
- ✅ E_HYBRID (hybrid own-brand + dropshipping operations)
- ✅ D_POD (print-on-demand operations)
- ❌ A_BRAND (real DTC brands — rarely refer peers, different pain points)
- ❌ B_RETAILER (retailers — different business model, different needs)
Segment filtering matters because feedback from a dropshipper about "I need faster AliExpress import" is different from a brand's "I need better store analytics for my VC board report." Mixing these signals pollutes the product roadmap.
The classify-store.ts MECE classification runs on every Shopify page load, so the segment is known before the prompt renders. The segment filter adds zero latency to the user experience.
The 6 Eligibility Gates
The prompt only appears if ALL six conditions are true:
- Platform: Current page is a Shopify storefront (not AliExpress, not TikTok)
- Interaction count:
shopifyInteractionCount >= 3(tracked via_spFeedbackPromptstorage key, incremented on cross-sell open and Store Compare open) - Install age: 2+ days since install (via
_affInstalledAtset bybackground.tsonchrome.runtime.onInstalled) - Segment: Detected store category is in {C_DROPSHIPPER, E_HYBRID, D_POD}
- Not previously submitted:
submittedAtin_spFeedbackPromptis null - Not dismissed recently:
suppressUntiltimestamp in_spFeedbackPromptis past (14-day suppression on dismiss)
Six gates is deliberate over-engineering. Prompts are annoying. The worst product outcome would be showing a feedback prompt to a user who installed 10 minutes ago and hasn't explored features yet. Over-gated prompts feel respectful. Under-gated prompts feel spammy.
The Promoter Flow — Why Share, Not Review
Traditional SaaS feedback loops route promoters to "leave us a review." AliShopping routes promoters to "share with a friend" instead. Three reasons:
- Reviews are one-shot per user. Once someone leaves a CWS review, the surface is exhausted for that user forever.
- Shares compound. A single share to a relevant network contact can produce multiple installs, and the referred user is themselves a future promoter candidate.
- CWS review conversion is already handled elsewhere. The ReviewPrompt component (now also mounted on Shopify per v20) handles the review ask with different gates. The NPS prompt focuses specifically on peer-to-peer referral.
The share CTA generates a URL of the form:
https://chromewebstore.google.com/detail/agiaehdeifaihlndhnhcmopjpjijnfap?utm_source=referral&utm_medium=shopify_nps&utm_campaign=promoter_share&ref={installId}
The ref parameter carries the promoter's install ID. When a referred user installs the extension, the welcome page (hypothetically, in a future version) could attribute the install back to the referring promoter. The attribution infrastructure is not yet live — that is v21 work.
The Passive/Detractor Flow — Why Textarea, Not Tally
The passive/detractor branches ask for open-text feedback. Early prototype routed this to a Tally form (third-party survey service). The PO explicitly rejected this approach because Tally is a third-party dependency that splits data across two systems.
The final design routes feedback via chrome.runtime.sendMessage with type: 'TRACK_EVENT' and event name shopify_feedback_text. The payload includes:
{
event: 'shopify_feedback_text',
payload: {
score: 5, // The NPS score given
storeCategory: 'C_DROPSHIPPER',
text: 'The verdict feels slow on some products',
installId: 'abc-123-def'
}
}
The background.ts handleTrackEventBridge() function routes this to the existing BackendClient.trackEvent() which POSTs to /api/v1/tracking/event with HMAC signature. No third-party dependency. All feedback data lives in the same backend as every other tracking event.
The 1000-character limit on the textarea prevents abuse. The 1-hour cooldown per install ID prevents rapid-fire spam.
The TRACK_EVENT Bridge Fix — Invisible But Critical
A separate but related fix in v20 addressed a months-old bug: the TRACK_EVENT message type was being sent by four different components but never handled by background.ts. Those events silently disappeared for months.
Affected components:
ReviewPrompt.vue— all review prompt analytics lostcross-tab-attribution.ts— Shopify-to-AliExpress navigation tracking lostfind-on-aliexpress.ts— cross-sell click events lostShopifyFeedbackPrompt.vue— new NPS events would have been lost without the fix
The bridge fix adds a handler in background.ts that intercepts TRACK_EVENT messages, extracts the event name and payload, and routes to the existing provider.trackEvent() method with proper payload shape normalization. From v20 onward, all four components report telemetry correctly.
Historical data before v20 is lost. Going forward, the measurement is accurate.
Why This Matters Long-Term
The NPS + Referral flywheel is not a growth feature. It is a measurement feature that enables growth decisions.
Without NPS signal:
- Roadmap prioritization is gut-based
- Retention is invisible (we cannot see if users are satisfied or quietly leaving)
- Referral acquisition is impossible to distinguish from organic discovery
With NPS signal flowing to backend:
- Roadmap prioritization is data-informed
- Retention signals cluster by segment (dropshipper complaints vs hybrid brand complaints)
- Referral attribution becomes possible (once the
ref=query parameter propagation lands in v21)
Install and Help Calibrate
The NPS prompt only appears after you have genuinely used the extension on Shopify stores. If you install today, it will appear sometime in the next few days as you actually use it.
Install AliShopping Tools free — one Chrome permission, no account, no paywall. Run Shopify research naturally over a few days. When the NPS prompt appears, any score and any feedback — it all lands in front of us.
The honest feedback is what makes v21 useful.
Ready to find winning products?
Try AliShopping Tools — 15 free AI tools for product research.
More from the blog
AliShopping v2.0.0.20 Released: Shopify Feedback Flywheel + Full 16-Language Coverage
v2.0.0.20 ships segment-aware NPS + referral share for Shopify users, fixes a months-old telemetry pipeline bug, and expands to 16 language locales across TikTok, popup, and the CWS listing.
5 min read
Find the AliExpress Supplier of Any Shopify Product in 1 Click (Free)
Cross-tab attribution feature: image-search any Shopify product to find matched AliExpress suppliers with confidence badges. The unique Shopify-to-AliExpress bridge no paid tool offers.
5 min read
Shopify Store Compare — 8 Dimensions Side by Side (Free Tool)
Compare any two Shopify stores across 8 dimensions: store type, product count, ad pixel count, on-sale percentage, discount depth, price range, variant count, and estimated revenue tier.
5 min read