
Before you build a single flow, write down the fields Klaviyo needs to make loyalty decisions. The minimum set is current points balance, current tier, lifetime points, reward availability, next-tier progress, wallet pass installed, referral code, and the date of the last redemption. Add points expiration date if the program uses expiring balances.
Each field needs one owner. Shopify owns customer identity and orders. Your loyalty platform owns points, tiers, rewards, wallet pass status, and referral status. Klaviyo should receive the clean state, not calculate it from fragments. When two systems try to infer the same value, your segments will drift and customers will receive stale messages.
Use stable lowercase property names such as loyalty_points_balance and loyalty_tier. Define the expected type for each property before launch: number, boolean, string, date, or list. A boolean reward_available flag is easier to filter than a text field that sometimes says yes, available, or blank. Do not rename fields after launch unless you are ready to rebuild every segment and flow filter that uses them. Keep the contract in a shared document with examples from one real test profile, so marketing, support, and engineering can check the same source when something looks wrong. Review it before every campaign that depends on loyalty targeting.
A clean data contract prevents Klaviyo segments from drifting as the loyalty program gets more complex.
Create one test customer and populate every loyalty property before building segments. Klaviyo only exposes properties in filters after they exist on at least one profile.
Use the Shopify customer ID as the stable matching key where your loyalty platform supports it. Email is useful, but customers change email addresses.
Add wallet_pass_installed as a profile property so Klaviyo can split onboarding flows between customers who already added the pass and customers who still need the install link.
Profile properties describe the current state. Events describe moments. A working Shopify loyalty integration needs both because Klaviyo uses them in different parts of the product. Properties power segment rules and message personalization. Events trigger flows, feed timelines, and give operators a record of what changed.
Start with six event types: Loyalty Joined, Points Earned, Reward Available, Reward Redeemed, Tier Upgraded, and Points Expiring Soon. Those events cover onboarding, progression, redemption, VIP recognition, and urgency. For each event, include the points balance after the event, reward value if one exists, tier before and after when relevant, source channel, and Shopify order ID when the event came from a purchase.
Keep event names merchant-readable. Your retention manager should understand the metric list without opening developer docs. Avoid one generic Loyalty Updated event that forces every flow to inspect properties after the fact. Specific events make reporting and debugging much easier. If your team also needs the strategic layer, pair this setup with Klaviyo loyalty flow examples so every event has a clear campaign use case. Before launch, fire each event once from a test customer and confirm it lands with the properties a flow will need. That keeps setup decisions tied to real campaign behavior.
Events turn loyalty activity into automated Klaviyo moments instead of static reporting fields.
Build one spreadsheet with event name, trigger source, required properties, matching profile property updates, and the Klaviyo flow that will use it.
Orders should continue to sync through the normal Shopify integration. Loyalty events should add context around that order, not replace Shopify order data.
Send Wallet Pass Installed and Wallet Pass Scanned events if your loyalty stack supports them. Those events expose online-to-store engagement that email alone cannot see.
Bad matching ruins loyalty messaging. If one shopper has two Klaviyo profiles, one with points and one with purchase history, every segment becomes weaker. The customer might qualify for a reward reminder on one profile while the purchase event that should suppress the reminder sits on another profile.
Your integration should match on Shopify customer ID first, then email or phone as secondary identifiers. For POS-heavy stores, staff should attach the customer profile before checkout whenever possible. If the customer uses a wallet pass in store, that scan should resolve to the same Shopify customer record. The goal is one customer, one loyalty balance, one order history, and one Klaviyo profile that receives the next message.
Do not use manual CSV uploads as the normal sync path. CSV can help with backfills, but live loyalty data belongs in an integration that updates profiles and events as customers earn, redeem, and move tiers. Set a policy for merges too. If support merges Shopify customers or Klaviyo profiles, the loyalty balance and pass status should follow the surviving profile. Review duplicate profiles during the first week after launch, then monthly once the sync is stable. That cadence keeps identity quality from becoming invisible again.
The integration is only as good as the identity match between Shopify, the loyalty platform, and Klaviyo.
Audit 20 real customers across Shopify, Klaviyo, and your loyalty platform. Confirm each one has one profile, one points balance, and one current tier.
Shopify customer profiles should remain the system of record for customer identity, order history, tags, and POS attachment.
Wallet pass identification reduces cashier lookup work and helps in-store orders land on the correct loyalty member.
Do not launch with 25 segments. Start with the three that prove the sync works and create immediate revenue opportunities. A small segment set makes it easier to spot bad data because every audience has an expected size and a clear business purpose.
- Reward available. Customers where loyalty_reward_available is true and no redemption happened in the last 30 days.
- Near next tier. Customers where loyalty_next_tier_progress_pct is at least 80 and the customer has purchased in the last 90 days.
- At-risk VIP. Customers where loyalty_tier is Gold or higher and no order happened in the last 60 days.
For each segment, write the intended action before building the filter. Reward available should drive redemption. Near next tier should drive an achievable next purchase. At-risk VIP should protect high-value customers before they lapse. If a segment does not have a message, owner, and success metric, leave it as a later reporting idea.
These segments connect naturally to Klaviyo loyalty segments, where you can expand into reward sitters, tier-stuck customers, and wallet-pass non-installers after launch. Snapshot the counts before flows go live, then compare them after the first batch of loyalty events arrives. If the counts surprise you, debug data before launching copy.
Three clear segments are enough to validate loyalty data quality and start sending better lifecycle messages.
Snapshot each segment before launch, then compare the count after the first week. Sudden swings usually reveal a sync or naming issue.
Use Shopify order recency and Klaviyo loyalty properties together. Recency alone misses program status, while points alone misses purchase intent.
Create a wallet-pass non-installer segment for loyalty members who joined but never added the pass.
A loyalty integration should be tested with real behavior, not just a connected-app screen. Create a test customer, place a small Shopify order, award points, redeem a reward, move the customer to a new tier, install the wallet pass, and expire a test reward. Use the same storefront, checkout, and POS paths customers will use in production.
After each action, check three places: the loyalty platform, the Klaviyo profile, and the matching Klaviyo metric timeline. The values should update within the time window your platform promises. Record the timestamp from each system so you know whether a delay is expected queueing or a sync problem.
Then preview every flow with that test profile. Make sure dynamic point balances render correctly, profile filters allow the right customer in, and reward emails do not send after the reward has been redeemed. Test negative cases too: a non-member should not enter reward flows, a customer with no pass should not see pass-installed copy, and a redeemed reward should suppress reminders. Keep the QA checklist in the launch doc because it becomes the fastest way to debug future changes. Run it again after any loyalty app configuration change. Include screenshots for the launch owner.
QA should follow the customer journey, not the app setup checklist.
Do not turn flows live until one test customer successfully completes join, earn, reward available, redeem, tier upgrade, and pass install checks.
Use a real Shopify test order so order data, customer data, and loyalty data all travel through the same path as production customers.
Include wallet pass install and scan events in QA if you sell through Shopify POS.
The first week tells you whether the integration is operational or just technically connected. Watch profile property freshness, event volume, segment counts, flow skips, reward redemptions, wallet pass installs, and revenue per recipient. Build a small daily view instead of waiting for a monthly performance review.
Flow skips matter most. If customers enter a loyalty flow but fail profile filters, the flow may be checking the wrong property or stale data. If reward emails send but redemptions do not move, the offer may be weak. If redemptions happen but Klaviyo does not record the event, reporting will understate loyalty revenue. Segment-count swings also deserve attention. A sudden collapse in reward-available customers might mean rewards are redeeming well, but it can also mean a boolean property stopped syncing.
Assign one owner to the dashboard. Engineering can fix sync failures, but retention owns whether the messages are useful and whether the timing matches customer behavior. Tie the results back to broader retention reporting with the loyalty ROI calculator so the integration has a business owner, not only a setup owner. After week one, keep the same checks weekly before major campaign sends. Add a Friday review before changing any live filters. Document every adjustment.
The first week should prove data freshness, flow eligibility, and revenue attribution.
Build a simple daily QA view: profiles updated, events received, segment sizes, flow sends, flow skips, reward redemptions, and wallet pass installs.
Compare Shopify orders against loyalty events for a sample of customers. A completed order should not create conflicting loyalty state.
Track wallet pass installs separately from loyalty joins. The pass is the channel that keeps loyalty visible after the first email.
A Klaviyo loyalty integration is not just an app connection. It is a data system for points, rewards, tiers, wallet pass status, and Shopify identity.
Use JeriCommerce when you want loyalty data, wallet pass activity, Shopify POS behavior, and Klaviyo messaging to work from the same customer record.
JeriCommerce syncs loyalty events, wallet pass status, and Shopify POS activity into the retention stack your team already uses.
Install Free on Shopify