Feb 26, 2026
Klaviyo, natively integrated
Charm is now natively integrated with Klaviyo — the email and SMS platform most serious Shopify brands already run on. Two-way sync, locale-aware flow templates, and a test-send harness ship at the same time.
Two-way sync
Every loyalty event fires as a metric Klaviyo can segment on — Points Earned, Reward Redeemed, Tier Upgraded, Referral Converted, Birthday Approaching, plus the per-event properties (rule name, point value, source order). And every customer's loyalty state — current balance, lifetime points, current tier, next-tier threshold — pushes onto the Klaviyo profile as updatable properties. Segments filter on loyalty state directly: "VIP Gold or above with > 500 points unspent" is one filter, no manual list rebuild.
Locale-aware flow templates
Four pre-built Klaviyo flow templates ship in EN / CS / DE / FR / ES / PL / NL / IT / PT / HU / SK — the same eleven locales as the Charm storefront widget, and they auto-route by the customer's language property:
- Welcome to loyalty — fires on first earning event
- Tier upgrade celebration — fires on tier threshold crossings
- Reward expiring — 14-day and 3-day nudges before points expire
- Birthday bonus — fires N days before birthday with a redeemable code
Import once; every brand-aware variable (sender name, brand color, footer logo) is pulled from your Klaviyo account, not duplicated in Charm. Edit the templates freely afterwards — Charm doesn't touch them after import.
Test sends and event replay
Every flow gets a test-send harness inside the Charm admin: pick a customer, replay any past loyalty event, and Klaviyo fires the flow against your inbox. No more "edit the flow, place a test order, wait 20 minutes" loops. Useful during initial setup and especially during the first Black Friday on a new program.
Under the hood
Compound indexes on the customer-events table shaved p95 read latency on the loyalty hub from ~140ms to ~22ms on the largest pilot store, which is what makes the two-way sync practical at scale.