Designing Our Loyalty Tier Engine: Smart, Scalable, and Context-Aware
Welcome back to Devlog Across Flex — your insider look into the technology behind Flex Mobile.
In this volume, we’re diving into how we’re building the Loyalty Tier Engine — a modular system that tracks user engagement, assigns rewards, and adapts in real time to how our travelers interact with Flex Mobile across different destinations and seasons.
🎯 What We Set Out to Build
We didn’t want a static points-based system. Flex Mobile needed a dynamic, event-driven loyalty engine that could:
- Recognize returning users
- Reward frequent travelers
- Adapt to regional behavior patterns
- Power campaigns and perks without rewriting code
The result? A tier-based loyalty engine that’s event-driven, API-addressable, and globally extensible.
đź§± The Engine Blueprint
The Loyalty Tier Engine is built on three core components:
1. Milestone Event Tracker
We use an internal event bus to listen for key user actions:
- Completed order
- Region visited
- Data threshold hit
- Consecutive activations
- Referral success
Each event is stored against a rolling 12-month window, allowing us to calculate tier eligibility dynamically.
2. Tier Evaluation Service
This is where business logic lives. It evaluates:
- Total qualified orders
- Destination diversity
- Reward claim frequency
And assigns a tier:
- Lift-Off (5% off)
- Orbit (10% off)
- Rocket Mode (20% off)
These tiers are stateless from the frontend. The backend handles validation, meaning users can’t spoof their way into perks.
3. Redemption Layer
When a user qualifies for a tier, a one-time code is issued and tied to their profile. These are:
- Tokenized
- Device-bound (optional toggle)
- Time-limited
- Auto-invalidated if unused after X days
This makes it safe, trackable, and instant to redeem — whether on mobile or web.
🌍 Context-Aware Perks
Because Flex Mobile operates globally, we’ve added region-aware logic to influence how loyalty rewards behave.
Example:
A traveler who activates 3 plans in Asia within 2 months may trigger an “Asia Explorer Boost” campaign — receiving a bonus code that’s only valid in that region.
These campaigns are controlled from a centralized ruleset, enabling us to run hyper-specific loyalty programs without code deployments.
📡 Built for Scale
From the start, we engineered this system to support:
- Time-limited campaigns (e.g., “Summer Takeoff”)
- User-specific bonuses (e.g., “Reactivate Bonus”)
- Cross-platform syncing (redeem anywhere, track everywhere)
- Admin-triggered perks (for customer support and ops)
It’s fully API-first, so the app, web, and even future systems (like email automation or SMS reminders) can all interact with the loyalty layer in real time.
🧪 What’s Next?
In the next volume of Devlog Across Flex, we’ll dive into how we’re building out automated usage insights — from background data polling to visual feedback for travelers in-app, and how we surface real-time feedback without draining battery or bandwidth.