Charm + Klaviyo
Two-way loyalty sync, no copying required.
How it works
What you can do.
Charm fires loyalty events into Klaviyo in real time. You design the campaign in Klaviyo, segment on Charm tier or points balance, and Charm keeps the data fresh as customers earn and redeem.
- ✓Real-time event sync: points earned, reward redeemed, tier achieved, referral completed, birthday bonus, expiring rewards
- ✓Customer property sync: current points balance, lifetime points, tier name, referral count — all queryable as Klaviyo properties
- ✓Templates included: 4 pre-built lifecycle flows ready to clone (Welcome-to-loyalty, Tier-upgrade, Reward-expiring, Birthday-bonus)
- ✓Bi-directional: customer suppression in Klaviyo respects loyalty data flow
Under the hood
What the data looks like.
{
event: "Points earned",
customer_properties: {
email: "person@example.com",
charm_points_balance: 1240,
charm_tier: "Gold"
},
properties: {
points_amount: 50,
reason: "Order #1003",
earned_at: "2026-05-27T14:00:00Z"
}
}Setup
Five-minute setup.
- 1Open Charm → Settings → Integrations → Klaviyo
- 2Click "Connect Klaviyo" — OAuth grants scoped access
- 3Choose which events to forward (default: all six lifecycle events)
- 4Import the 4 starter flow templates from Klaviyo → Flows → Library
- 5Done — events stream in real time
FAQ
Common questions.
Does Charm send emails when Klaviyo is connected?
By default Charm pauses its own sender once Klaviyo is connected — you author all customer-facing emails in Klaviyo. You can override this per template.
Can I segment Klaviyo audiences by Charm tier?
Yes — Charm syncs tier names and points balance as Klaviyo customer properties. Build segments like "Gold tier + repeat purchaser" without writing code.
What happens if my Klaviyo plan limits don't cover the volume?
Charm continues firing events; Klaviyo will queue or drop based on your plan. We surface the failure rate in Charm's integration health view.