skills/marketing-growth/predictive-personalization/SKILL.md
Use machine learning models to predict customer preferences and deliver personalized product recommendations, content, and offers based on behavioral signals
npx skillsauth add finsilabs/awesome-ecommerce-skills predictive-personalizationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Predictive personalization tailors the shopping experience to each visitor — showing relevant product recommendations, personalized content, and targeted offers based on behavior, purchase history, and patterns from similar customers. For most merchants, dedicated personalization apps deliver this without any custom ML code. Building a custom recommendation engine only makes sense for headless stores with significant traffic (100k+ monthly visitors) where app costs or data control requirements justify the complexity.
| Platform | Best For | Shopify | WooCommerce | BigCommerce | Price | |----------|---------|---------|-------------|-------------|-------| | Rebuy | Product recommendations, cross-sell/upsell widgets | App Store | Limited | Limited | $99+/mo | | LimeSpot | Personalization + merchandising | App Store | Plugin | App Marketplace | $18+/mo | | Nosto | Mid-market, full homepage + email personalization | App Store | Plugin | App Marketplace | Revenue-share | | Dynamic Yield | Enterprise, full A/B testing + personalization | Via JS tag | Via JS tag | Via JS tag | $1,000+/mo | | Klaviyo (email) | Personalized product blocks in email flows | App Store | Plugin | App Marketplace | Included in Klaviyo | | Custom | Headless stores, 100k+ visitors/mo | API | API | API | Dev cost |
Recommendation by store size:
With Rebuy:
With LimeSpot:
Catalog block uses purchase history to generate personalized recommendations automatically)Alternative (simpler): install YITH WooCommerce Frequently Bought Together — it adds "Customers who bought this also bought" sections using your order history, without requiring a monthly subscription.
For headless stores, build a recommendation engine using behavioral event data and collaborative filtering:
// Collect behavioral events for each visitor
interface PersonalizationEvent {
userId: string | null; // null for anonymous visitors
sessionId: string;
eventType: 'view' | 'add_to_cart' | 'purchase';
productId: string;
categoryId?: string;
timestamp: Date;
}
// Maintain a real-time user profile in Redis
async function updateUserProfile(event: PersonalizationEvent) {
const key = event.userId ?? `anon:${event.sessionId}`;
const recentViews = JSON.parse(await redis.get(`profile:${key}:views`) ?? '[]');
if (event.eventType === 'view') {
recentViews.unshift(event.productId);
if (recentViews.length > 50) recentViews.pop();
await redis.setex(`profile:${key}:views`, 30 * 86400, JSON.stringify(recentViews));
}
const categoryScores = JSON.parse(await redis.get(`profile:${key}:categories`) ?? '{}');
if (event.categoryId) {
const weight = { view: 1, add_to_cart: 3, purchase: 5 }[event.eventType] ?? 1;
categoryScores[event.categoryId] = (categoryScores[event.categoryId] ?? 0) + weight;
await redis.setex(`profile:${key}:categories`, 30 * 86400, JSON.stringify(categoryScores));
}
}
// Nightly batch job: build co-purchase similarity from 90-day order history
// Serve recommendations via Redis cache for sub-10ms response times
// Fallback: trending/popular items when user has no history (cold start)
For most headless stores, use Nosto's or Dynamic Yield's JavaScript widget + REST API instead of building from scratch. The API surfaces the same personalization data without maintaining the recommendation engine infrastructure.
This works for all platforms via Klaviyo:
Always A/B test personalization before full rollout. Both Rebuy and Nosto have built-in A/B testing:
| Metric | Target | Where to Find | |--------|--------|---------------| | Recommendation widget CTR | > 5% | App analytics dashboard | | Revenue attributed to recommendations | 10–20% of total | App analytics | | AOV lift (personalized vs. control) | > 5% | App A/B test results | | Email personalized block CTR vs. static | > 2× higher | Klaviyo flow analytics |
| Problem | Solution | |---------|----------| | Recommendations show already-purchased items | Configure the app to exclude previously purchased products from recommendations | | New store with no data — recommendations look wrong | Use "Trending" or editorial curation for the first 60–90 days while behavioral data accumulates | | Recommendations are all from one category | Enable diversity controls in app settings; most apps support "max items per category" | | Personalized email recommendations are same for everyone | Verify Klaviyo is receiving Placed Order events from your platform; check Klaviyo → Integrations status |
tools
Let shoppers save products to a wishlist, share it with friends, and get notified when saved items come back in stock or drop in price
development
Build a themeable storefront with design tokens and CSS custom properties that supports white-labeling, multi-brand variants, and dark mode
development
Speed up product discovery with instant search suggestions, fuzzy typo matching, and category-aware results powered by Algolia or Elasticsearch
development
Build a mobile-first storefront with thumb-friendly navigation, sticky add-to-cart buttons, and touch-optimized components for high mobile conversion