
Klaviyo's product philosophy is single-minded: own the messaging layer. Email, SMS, mobile push, and the data infrastructure that decides when to send each one. Loyalty is intentionally out of scope. The Klaviyo team has been explicit about this in public roadmap discussions, they would rather integrate deeply with best-in-class loyalty platforms than ship a thin loyalty feature themselves.
This is the right call for them and a constraint for you. You get a world-class messaging platform that lets a customer's loyalty status, point balance, tier, and reward eligibility flow into every email, SMS, and push you send, but only if your loyalty platform is set up to write that data into Klaviyo correctly.
The wrong approach is to treat Klaviyo and your loyalty app as separate islands. Two dashboards. Two reports. Manual segment uploads when you want to email "customers close to a tier upgrade." Within three months, you'll have stale data, double sends, and customers receiving "You earned a reward!" emails for rewards they already redeemed.
Klaviyo deliberately doesn't compete with loyalty platforms, they bet on integration depth instead. Your job is to pick a loyalty layer that takes that integration seriously.
The right approach is real-time, two-way sync at the profile and event level. Loyalty events (point earned, tier changed, reward redeemed, points about to expire) write to Klaviyo as profile property updates and custom events. Klaviyo flows trigger on those events. Klaviyo segments use those properties as filters. Your loyalty data becomes the most valuable signal in your messaging stack.
For the broader picture of how loyalty fits into a Shopify ecommerce loyalty program, start there. This guide focuses specifically on the Klaviyo integration layer.
Audit your current Klaviyo profile properties. If you don't see at least loyalty_points_balance, loyalty_tier, and loyalty_lifetime_points, your loyalty data isn't reaching your messaging stack.
Klaviyo profile properties are the long-term memory of each customer. Unlike custom events (which describe a moment in time), profile properties describe a customer's current state. Your loyalty platform should write at least these five to every Klaviyo profile in real time.
Five profile properties, points balance, tier, lifetime points, next-tier progress, and reward available, are the minimum viable Klaviyo integration. Real-time sync is non-negotiable.
A few platforms also write loyalty_referral_code (the customer's personal referral link), loyalty_birthday_bonus_eligible (boolean for birthday month flows), and loyalty_signup_date (for tenure-based segmentation). These are nice-to-haves that pay off if your messaging strategy is mature.
The non-negotiable: every property must update in under 5 seconds of the underlying loyalty event. Anything slower means flows fire on stale data and customers get conflicting messages. For comparison, see how customer retention programs use this same data architecture.
List your current Klaviyo segments. For each one, ask: would this segment be more accurate if it filtered on a loyalty property? If yes for more than 3 segments, your integration is leaving money on the table.
On Shopify, your loyalty platform should pull customer identifiers (Shopify customer ID, email) and write loyalty data back to the matching Klaviyo profile in real time. The Shopify customer ID is the source of truth, never sync on email alone, since customers change emails.
Profile properties describe state. Custom events describe moments. The right loyalty integration emits both. The events your platform should be sending to Klaviyo, in order of business impact:
Flow design matters here. Don't build separate flows for each tier, use Klaviyo's conditional splits to branch the same flow based on tier, lifetime points, or other properties. This keeps your flows maintainable as your loyalty program evolves.
Six custom events drive the bulk of loyalty-attributed Klaviyo revenue: reward earned, tier upgraded, points expiring, near tier threshold, reward expiring, and referral made. Build flows for each.
Pick the single highest-volume loyalty event in your program (usually reward earned). Build that flow first, measure revenue per send for 30 days, then expand to the others in priority order.

Klaviyo's segmentation engine is what turns profile properties into revenue. Once your loyalty data is flowing in, the segments to build first:
The meta-pattern: every Klaviyo segment that previously relied on "recency, frequency, monetary" signals gets sharper when you add loyalty status as a filter.
The five highest-leverage Klaviyo segments built on loyalty data. At-Risk VIPs, One Reward Away, Tier-Stuck, Reward Sitters, and Loyalty Members vs Non-Members, typically lift email-attributed revenue 20-35% within 90 days.
Build the "At-Risk VIPs" segment first. If you have one, run a single targeted reactivation send to it this month. The revenue per send will tell you what your loyalty data is worth in Klaviyo.
Klaviyo lives online. Email, SMS, push notifications, all digital channels. If you have a physical store on Shopify POS, Klaviyo doesn't natively know about in-store transactions, in-store enrollments, or in-store reward redemptions. This is where most Klaviyo + loyalty integrations break down for merchants who sell in both channels.
The fix has two layers. First, your loyalty platform must record in-store transactions through Shopify POS and write them back to Klaviyo as standard order events. Klaviyo treats them like any other purchase. The customer's in-store spending counts toward their tier, their points balance, and their LTV in your reports.
Second, and this is where digital wallet passes become essential, you need a way to identify the in-store customer at checkout in under 5 seconds. The cashier types in an email is too slow and high-friction. The customer pulls out a printed loyalty card is a 2010s solution. The customer downloads your app is something 95% of retail customers won't do.
Klaviyo doesn't natively know about in-store transactions. A loyalty platform that records POS sales and identifies in-store customers via wallet pass closes the gap and lets Klaviyo flows trigger on in-store behavior.
What works: an Apple Wallet or Google Wallet pass that the customer added once during their first online order. At POS, the cashier scans the wallet pass barcode (or the customer taps their phone via NFC if your hardware supports it). The transaction lands in Shopify POS, the points are credited, and Klaviyo's profile property updates within seconds. The customer can be back at their car before their phone buzzes with the "You earned 47 points" notification.
This bridge is what lets Klaviyo flows trigger on in-store behavior, "You've visited 3 times this month, here's a thank-you bonus" or "Your in-store points are about to expire." Without the bridge, Klaviyo only knows half your customer's story.
For the full architecture of unifying both channels, see our omnichannel loyalty program guide.
If you have a physical store, audit how your in-store transactions appear in Klaviyo. If they don't appear at all (or appear with a 24-hour delay), Klaviyo is making decisions on incomplete data, and your in-store-heavy customers are the ones most affected.
A wallet pass solves the in-store identification problem with zero ongoing friction. The customer adds it once and uses it forever, at POS, on their lock screen, in push notifications. Klaviyo gets the data, the customer gets the recognition, and the cashier doesn't have to remember a process.
Klaviyo's pricing tiers are by profile count, not by feature gate for most loyalty integration use cases. The good news for merchants on the Email plan: you already have everything you need. Custom events, profile properties, flows, segments, all standard.
What the Email plan supports: unlimited custom events, unlimited profile properties, all flow triggers, all segment filters, all standard reporting. This is enough to run a full loyalty integration with the six core flows and five core segments described above.
Where you might consider Email + SMS: if your loyalty messaging strategy includes time-sensitive triggers like "Your reward expires in 24 hours" or in-store reactivation, SMS open rates (95%+) crush email open rates (20-25%). The math usually works out for any merchant with $50K+ monthly revenue running a mature loyalty program.
Where you don't need anything extra: AI features, advanced flow analytics, the new mobile push channel, none are required for a loyalty integration. They're useful generally, but loyalty doesn't unlock different functionality at higher tiers.
The standard Klaviyo Email plan supports everything a loyalty integration needs. SMS is worth adding for time-sensitive flows. Higher tiers and CDP add-ons aren't required.
The Reviews product (formerly Klaviyo Reviews) does integrate nicely with loyalty programs that reward reviews. If you're awarding 50 points for a verified review, the Reviews → Klaviyo → loyalty platform chain can run end to end without manual intervention.
The data infrastructure plan (CDP) is overkill unless you have specific data warehouse requirements. Standard Klaviyo handles loyalty data at the profile level perfectly well for the vast majority of Shopify merchants under 1M profiles.
If you're considering switching from another email platform to Klaviyo specifically because of loyalty integration depth, that's a reasonable reason, but the migration cost is real. Plan 4-6 weeks of dual-running before fully cutting over.
If you're already on Email-only and considering SMS for loyalty: pick the single most time-sensitive loyalty trigger (usually "reward expiring in 48 hours") and pilot it on SMS for one month. The lift will tell you whether SMS pays off for your audience.
Klaviyo's consent model is well-documented and works seamlessly with loyalty data, but the integration boundary is where merchants most often get this wrong.
The rule: a customer's loyalty signup is not implicit consent for marketing emails. They are two distinct opt-ins. A customer who joined your loyalty program because they wanted to earn points has not necessarily consented to receive your weekly newsletter.
In practice: when a customer signs up for the loyalty program, your platform should write loyalty status to Klaviyo regardless of marketing consent. The loyalty data populates the profile. But Klaviyo flows that send marketing emails should still gate on the standard email_consent property. Transactional flows (a receipt, a points-earned confirmation, a reward-available notification) can send to loyalty members without separate marketing consent, these are transactional in nature.
The gray area is reactivation flows. A "Your reward expires in 7 days" email is technically a status update about a customer's account (the loyalty program they explicitly joined). Most regulators treat it as transactional. But a "Use your reward and check out our spring sale" email is mixed, the loyalty wrapper is transactional, the spring sale callout is marketing. Either send the loyalty notification clean (no marketing) or gate the whole flow on marketing consent. Don't try to split the difference.
Loyalty signup and marketing email consent are separate opt-ins. Loyalty data populates Klaviyo regardless of marketing consent, but marketing flows still gate on standard consent. Test deletion handling end-to-end before launch.
For GDPR specifically: when a customer requests deletion, your loyalty platform must delete their data and your Klaviyo profile must be deleted. The two-way sync that helps you also creates a two-way obligation. Verify that your loyalty platform supports the Klaviyo profile deletion API and not just internal soft-delete.
For CCPA: same logic. The customer's right to know what data you have spans both systems. Your loyalty platform should provide a single export that covers their loyalty data + the data sent to Klaviyo + the Klaviyo profile state.
This is one of those areas where "the integration works" matters less than "the integration handles the edge cases." Test the deletion flow before you launch.
Run a test deletion request through your loyalty platform. Verify that the matching Klaviyo profile is also deleted within 30 days. If not, your compliance posture has a gap that will eventually surface in an audit.
After supporting hundreds of Klaviyo + loyalty integrations on Shopify, the same five mistakes account for the majority of underperforming setups.
Mistake one: nightly batch sync instead of real-time. Sounds like a technical detail, but it has practical consequences. A customer earns a reward at 10am, the sync runs at 3am the next day, your "reward earned" flow fires 17 hours later. The customer has already moved on. Real-time sync (under 5 seconds) is table stakes, accept nothing less.
Mistake two: writing loyalty data only to Klaviyo lists, not profile properties. Lists are static snapshots. Profile properties update dynamically. If your loyalty integration is adding customers to a "VIP Gold" list when they hit Gold, but never removing them when they downgrade, your segmentation is gradually getting worse. Use profile properties (loyalty_tier) for current state, lists for one-time campaigns only.
Mistake three: building a separate flow for each tier. "Welcome flow Bronze," "Welcome flow Silver," "Welcome flow Gold." This becomes unmaintainable by the time you have four tiers and three lifecycle stages. Use one flow with conditional splits on the loyalty_tier property. Easier to maintain, easier to test, easier to evolve.
Five mistakes drive most underperforming integrations: batch sync, list-based instead of property-based segmentation, per-tier flow proliferation, untracked loyalty-attributed revenue, and lack of granular unsubscribe options.
Mistake four: not tracking the loyalty-attributed revenue separately in Klaviyo. By default, Klaviyo attributes revenue to the channel that sent the email, but doesn't separate flows triggered by loyalty events from flows triggered by browse abandonment. Add a "loyalty" tag to all loyalty-triggered flows. Now your dashboard can answer "How much revenue did our loyalty integration drive last month?", a question every CFO eventually asks.
Mistake five: ignoring the unsubscribe-from-loyalty-only-emails option. Some customers want their loyalty program but don't want every promotional email. Klaviyo supports list-level unsubscribes. Create a separate list for loyalty-related sends so a customer can opt out of marketing without leaving the loyalty program entirely. This single setting reduces loyalty churn meaningfully.
For the foundational piece, our customer retention strategies guide covers the ground beneath this integration layer.
Audit your existing loyalty + Klaviyo integration against these five. The one that costs you the most revenue is almost always #1 (batch sync) or #4 (untracked revenue). Fix those first.
Shopify's customer events (order_placed, order_paid, refund_created) should flow to your loyalty platform AND to Klaviyo simultaneously, not Shopify → loyalty platform → Klaviyo. The serial path adds latency and creates failure points.
Day 1-3. Pick your loyalty platform with eyes open about the Klaviyo integration depth. Specifically ask: does it write profile properties in real time, does it emit the six core custom events, does it handle Shopify POS for in-store, does it handle GDPR deletion. If any answer is "it's on the roadmap," pick a different platform.
Day 4-7. Install the loyalty platform on Shopify. Configure your tier structure (3 tiers is plenty to start), point earning rules, and reward catalog. Don't perfect this, you'll iterate. Ship the first version.
Day 8-10. Connect the Klaviyo integration. Verify in Klaviyo that the five profile properties are populating on test customers. Verify the six custom events are firing. If any are missing or delayed, stop and fix before going further.
Day 11-15. Build the six core flows in Klaviyo: Reward Earned, Tier Upgraded, Points Expiring, Near Tier Threshold, Reward Expiring, Referral Made. Use the loyalty platform's flow templates if provided, but expect to customize the copy to your brand voice.
A working Klaviyo + loyalty integration on Shopify takes 30 days from zero to live. The non-negotiable phase is days 8-10, verifying the integration writes data correctly before building flows on top.
Day 16-20. Build the five core segments: At-Risk VIPs, One Reward Away, Tier-Stuck, Reward Sitters, New Loyalty Signups Without Purchase. Run one targeted campaign to each segment to baseline performance.
Day 21-25. If you have a physical store, set up the wallet pass enrollment for in-store identification. Train your store staff on the new POS flow. Test with three to five staff members before going customer-facing.
Day 26-30. Open the program to customers. Announce via your existing email list. Add the loyalty signup to your post-purchase flow, your account page, and your homepage. Track loyalty signups, first-purchase-after-signup conversion, and reward redemption rate as your primary leading indicators.
Day 31 onward. Iterate. The flows will tell you which segments respond best. The reports will tell you which earning rules drive the most engagement. The Klaviyo data will tell you what's working before any single revenue number does.
Block out the first three days for platform selection. The cost of switching loyalty platforms after launch is 10x the cost of the right pick. Spend the time.
Dive deeper into strategies tailored for your specific industry.
Klaviyo is the messaging layer for modern Shopify merchants, and intentionally not the loyalty layer. The merchants who get the most out of both pick a loyalty platform that integrates deeply with Klaviyo via real-time profile properties and custom events, not nightly CSV exports. Once that integration is in place, the segmentation and flow possibilities multiply: loyalty data sharpens every reactivation, every tier celebration, every reward reminder. The merchants who close the in-store identification gap with digital wallet passes get the additional benefit of Klaviyo seeing the full customer story, not just half.
Pick a loyalty platform that takes the Klaviyo integration seriously. Real-time sync, the five profile properties, the six custom events, and POS support if you sell in-store. The 30-day rollout will tell you what your messaging stack is actually capable of.
JeriCommerce writes loyalty events to Klaviyo profiles in real time. Reward earned, tier upgraded, points expiring, all live in your existing Klaviyo flows in under 5 seconds. Native Shopify + POS support. Free plan available.
Install Free on Shopify