Mike Sport Loyalty Revamp and CleverTap Migration
End-to-end redesign of Mike Sport's loyalty program (tiers, points, RFM segmentation) and its migration onto CleverTap, covering data architecture, event tracking specs, and a full set of engagement journeys.
Overview
Mike Sport Rewards is a three-tier loyalty program built around a "$1 spent = 1 point" earn rule and a rolling 12-month tier window. This project covers the full backbone behind that program: the data model and event taxonomy for CleverTap, the strategy for migrating tens of thousands of past customers into starting tiers, and a build guide for the launch engagement journeys (onboarding, tier lifecycle, redemption, points expiry, cart and browse abandonment, RFM-driven win-back, and birthday bonuses).
Problem
Mike Sport needed to move loyalty data and customer engagement onto CleverTap while the underlying systems were fragmented: the ERP (Navision/LS Retail) holds the true purchase and points ledger but cannot talk to CleverTap directly, there is no ERP-to-Shopify sync, and the mobile app is a WebView of the Shopify storefront rather than a separate native data source. On top of that, a large base of legacy customers needed to be placed into a starting tier on day one without either emptying out the top tier or unfairly discounting loyal, lower-basket shoppers (frequent buyers with small baskets versus big one-time spenders).
Approach
The work was split into three connected tracks:
- Identity and data architecture: defined phone number as the single
Identitykey across Shopify, the app, the loyalty CMS, and CleverTap, with a documented "frontend as bridge" pattern (the storefront reads points/tier from a loyalty CMS read API on page load and writes them onto the CleverTap profile), since CleverTap never calculates points or tier itself. - Migration methodology: built and compared several tier-assignment methods on real order data (a pure spend leaderboard, literal "$1=1pt" readings, a recency-weighted spend model, and an RFM-based scoring method) and compared the resulting tier distributions side by side before recommending the RFM-based method as the fairest starting point.
- Event and journey design: authored a canonical event map and data dictionary distinguishing Shopify-sourced behavioral events from CMS-sourced loyalty events and profile fields, then translated that into a step-by-step build guide for the launch journeys, with global settings (channel fallback order, frequency caps, consent checks, Do Not Disturb, employee exclusion).
Architecture
- Identity strategy: phone number as the canonical
Identity, merging anonymous browsing history into known profiles on login, with guest checkout flagged as an orphan-profile risk - Data flow: ERP (source of truth for points/tier) to Loyalty CMS read API to Shopify storefront/WebView app (bridge) to CleverTap, since there is no direct ERP-to-CleverTap or ERP-to-Shopify link
- Profile schema:
ms_-namespaced custom properties (tier, points balance, points earned in rolling 12 months, points to next tier, expiring amount/date, loyalty role, legacy member id) layered on top of Shopify's auto-synced fields (orders count, total spent, consent flags) - Event taxonomy: Shopify behavioral/commerce events (Product Viewed, Added To Cart, Checkout Started, Charged) versus CMS loyalty events (Points Earned, Points Redeemed, Tier Changed, Reward Applied, Points Expired) versus CleverTap system events, documented in a master event map with naming conventions
- Segmentation: CleverTap's native RFM engine on the
Chargedevent plus custom profile-based segments (tier, points-balance thresholds, near tier-up, downgrade risk, points expiring soon, employee suppression, WhatsApp reachability) - Journey orchestration: launch journeys grouped into onboarding, earning/level-up, tier lifecycle, redemption, points expiry, cart/browse/checkout abandonment, RFM-driven win-back, and occasion-based (birthday), with a documented three-batch build order tied to data readiness (Shopify only, then RFM, then CMS feed)
Tech stack
- CleverTap (Web SDK, server-to-server upload API, Journeys, RFM/segmentation, Push/WhatsApp/SMS/Email channels)
- Shopify (storefront, CleverTap Shopify app, webhooks for orders/customers)
- Loyalty CMS (read API for points/tier/expiry, keyed by phone)
- ERP: Navision / LS Retail (in-store source of truth, offline from CleverTap in this phase)
- Excel/CSV-based migration analysis workbooks for tier-method comparison and RFM scoring
Engineering highlights
- Ran several distinct tier-assignment methods (spend leaderboard, literal point-threshold readings, recency-weighted spend, and an RFM composite score) against the same real order dataset and quantified the customer distribution each method produced before recommending one, rather than picking a formula by intuition
- Identified and documented a specific identity pitfall: the Shopify CleverTap app defaults
Identityto the Shopify customer id, which would fragment web, app, and CMS data unless explicitly overridden to phone number - Specified a "frontend as bridge" integration pattern to work around the lack of an ERP-to-CleverTap connection, including the exact client-side calls (login identify, CMS fetch, profile push, local tier-change detection to synthesize a
Tier Changedevent) - Produced a full event and data dictionary distinguishing what is already live (Shopify auto events), what needs the CMS to build, and what is explicitly deferred to a later phase (in-store/ERP data), so downstream developers know exactly what to build versus what already works
- Wrote plain-language store training material translating the point-earn/tier/redemption rules for non-technical retail staff, alongside the more technical developer-facing specs
Outcome
The migration analysis produced a recommended tier-assignment method (RFM composite scoring) with a concrete day-one tier distribution, and the journey build guide sequenced the launch journeys into three delivery batches so the Shopify-only journeys could go live before the CMS loyalty feed was ready. As of this writing, the specs and migration recommendation are finalized; full production rollout depends on the CMS team exposing the additional fields (tier, 12-month earned points, expiry date/amount, role) that the design calls for.
Want to dig deeper?
Ask my AI agent anything about how this was built, what tradeoffs I made, or how it could fit your team.
Ask my AI →