Skip to main content

How to Set Up the Klaviyo Integration

Connect Klaviyo to Mage Loyalty to leverage loyalty program data and drive more targeted, personalized customer engagement

Written by Kris James

What does the integration do?

The Klaviyo integration automatically syncs your Mage Loyalty program data to your Klaviyo customer profiles. This allows you to:

  • View loyalty data in customer profiles - See points balances, VIP tiers, and more directly in Klaviyo

  • Create targeted segments - Build segments based on loyalty data like "Customers with 100+ points" or "Gold tier members"

  • Build automated flows - Trigger email campaigns when customers earn points, redeem rewards, or change VIP tiers

  • Personalize campaigns - Use loyalty data in your email content to create more relevant messaging

Customer data is matched by email address, which is Klaviyo's recommended best practice. This ensures accurate syncing and prevents duplicate profiles.

How to connect Mage Loyalty with Klaviyo

Connecting your Klaviyo account takes just a few minutes:

  1. In Mage Loyalty, navigate to Integrations → Klaviyo

  2. Click the Connect with Klaviyo button

  3. Sign in to your Klaviyo account when prompted

  4. Review the requested permissions and click Allow

  5. You'll be redirected back to Mage Loyalty automatically

  6. Once connected, click Sync All Customers to perform your initial sync

That's it! Your loyalty data will now sync automatically whenever customers earn or redeem points. To turn off syncing, you will need to disconnect from Klaviyo.

What customer data is synced to Klaviyo

The following loyalty program properties are automatically synced to your Klaviyo customer profiles:

Property Name

Description

Example Value

Mage Points Balance

Current available points

100

Mage Lifetime Points

Total points earned all-time

500

Mage Redeemed Points

Total points redeemed

400

Mage VIP Tier Name

Current VIP tier

Bronze, Gold, Silver

Mage Date of Birth

Customer's birthday (if provided)

17th September 1990

Mage Enrolled Date

When customer joined the program

1st January 2025

Mage Points as Cash Balance

Cash value of the customer's current points balance. (Flexible redemption must be enabled)

$17.50

These properties update automatically whenever a customer's loyalty data changes, keeping Klaviyo in perfect sync with your loyalty program.

Advanced Customer Properties

Some properties are opt-in: Mage Points to Next Reward, Mage Next Reward Name, Mage Points Next Expiry Amount and Mage Points Next Expiry Date. Where they are available for your store, an Advanced Customer Properties card appears on the Klaviyo integration page once Klaviyo is connected. Click View and tick the properties you want synced. All of them are off until you tick them, and a newly ticked property is added to each profile the next time that customer syncs.

If you untick a property, Mage asks you to confirm. The property then stops syncing and its value is cleared from each Klaviyo profile the next time that customer syncs, so segments and flows that use it will no longer match. If your program runs on store credit, the card lists Mage Store Credit Next Expiry Amount, Mage Store Credit Next Expiry Amount Value and Mage Store Credit Next Expiry Date instead.

Using loyalty data in Klaviyo

Once synced, you can use these properties to:

  1. Create segments: Target customers based on points balance, tier, or enrollment date

  2. Personalize emails: Include loyalty data like {{ person|lookup:'Mage Points Balance' }} in your campaigns

  3. Build conditional flows: Send different messages based on VIP tier or points balance

  4. Track customer journey: See when customers enrolled and their lifetime point history

What events are fired and how to toggle them

The integration can fire the following loyalty events to Klaviyo, which you can use to trigger automated flows:

Event Name

When It Fires

Points Awarded

When points are added to a customer's balance, either immediately or after the approval waiting period has passed.

Points Pending

When a customer earns points that are held during an approval waiting period (e.g. purchases waiting for the refund window to close). Off by default.

Bonus Points Awarded

When a customer earns flat bonus points from a tiered bonus campaign. A multiplier campaign adds its boost to the Points Awarded event instead. Off by default.

Reward Redeemed

When a customer redeems their points for a reward or discount.

VIP Tier Changed

When a customer moves up or down VIP tiers based on their lifetime points.

Referral Invite Sent

When an advocate sends a referral email invite to a friend.

Referral Claimed

When a friend claims their referral discount code.

Referral Reward Earned

When an advocate earns their reward after their referred friend completes a purchase.

Points Expiry Soon

When a customer has loyalty points expiring within the next 7 days. Off by default.

Gift Reminder

When a customer's gift recipient has an upcoming occasion matching one of the configured reminder intervals (e.g. 30, 14, or 7 days before). Off by default.

Birthday

When a customer earns birthday points on their birthday. Off by default.

Wishlist Reminder

When items are still in a customer's wishlist after the reminder delay you have set. Off by default.

Wishlist Back in Stock

When wishlisted items come back in stock. Items are grouped into one event per customer, at most once every 24 hours. Off by default.

Wishlist Price Drop

When wishlisted items drop in price. Items are grouped into one event per customer, at most once every 24 hours. Off by default.

Mage Welcome

When a customer creates an account, or a guest becomes a registered customer. Off by default.

Cashback Credited

When a customer earns cashback that is paid out as Shopify store credit. Off by default.

Cashback Code Issued

When a customer earns cashback that is issued as a single-use discount code, including a code reissued at a lower value after a partial refund. Off by default.

Photo Challenge Approved

When you approve a photo challenge submission. For photo challenges it is sent in place of Points Awarded. Off by default.

Photo Challenge Rejected

When you reject a photo challenge submission. Includes your rejection reason. Off by default.

If your program runs on store credit, Points Awarded, Points Pending and Points Expiry Soon are sent to Klaviyo as Store Credit Awarded, Store Credit Pending and Store Credit Expiry Soon instead.

The three wishlist events are only sent when Klaviyo is selected as the Email provider under Wishlist → Alerts & Emails in Mage Loyalty (the default provider is Mage Loyalty).

Photo Challenge Approved and Photo Challenge Rejected appear in your event settings once your program has a Photo Challenge earning rule.

Managing event settings

You can toggle which events are sent to Klaviyo at any time:

  1. Navigate to Integrations → Klaviyo in Mage Loyalty

  2. Scroll to the Event Settings section (visible when connected)

  3. Use the checkboxes to enable or disable each event type

  4. Changes are saved automatically

Note: Disabled events will not be tracked in Klaviyo, so only enable the events you plan to use in your flows and campaigns.

FAQ

Why are some customers not receiving emails fired by Mage events?

This is usually caused by Klaviyo's Smart Sending feature, which can skip emails delivered to the same customer within a short window. If customers are missing Mage event emails, review your Smart Sending wait time or disable Smart Sending for the affected flow.

How do I check whether Mage sent an event?

In Mage Loyalty, go to Settings → Event Logs and filter by Klaviyo. Recent events Mage sent are listed with the date and a Success or Failed status, plus the error for a failed one. An event that is switched off in Event Settings is not sent, so it does not appear there.

Why do customers with 0 points see a blank space in my emails?

Klaviyo treats 0 as empty, so customers with no points will see a blank space instead of their balance. To fix this, use {{ person|lookup:'Mage Points Balance'|default:'0' }} in your email template. The |default:'0' part tells Klaviyo to show 0 instead of a blank.


Need Help?

If you have questions about the Klaviyo integration or need assistance setting up flows, contact our support team.

Did this answer your question?