Joy and Klaviyo
Sync customer data from Joy Loyalty to Klaviyo for advanced segmentation, marketing, and email automation, enhancing your customer outreach and campaign effectiveness.
Who can connect Joy with Klaviyo?
This feature is available for All plans.
Overview
The Klaviyo (opens in a new tab) integration for Joy Loyalty allows you to synchronize your loyalty program data with your email marketing platform, enabling more targeted and effective communications. This integration has been enhanced with real-time event triggers that automatically send detailed loyalty event data to Klaviyo when specific loyalty activities occur.
The integration works on two levels:
- Basic data synchronization (How to segment customers in Klaviyo): Customer loyalty information, like points balance, tier status, and referral links, is made available in Klaviyo for segmentation and personalization.
- Enhanced event triggers (How to create event-based automations in Klaviyo): Real-time loyalty events are transmitted to Klaviyo, allowing you to create automated email workflows based on specific loyalty activities.
Benefits when integrate Klaviyo with Joy?
Klaviyo is a powerful email and SMS marketing automation tool designed for eCommerce businesses, including those on Shopify. When integrated with Joy Loyalty, this partnership empowers merchants to enhance their marketing strategies by leveraging loyalty program data to drive engagement and increase customer retention.
This collaboration helps you:
- Streamline marketing: Use real-time loyalty data to inform and automate email and SMS campaigns
- Personalize customer engagement: Enhance communications by tailoring messages based on loyalty insights
- Improve customer retention: Keep customers coming back by consistently highlighting rewards and program benefits
- Save time: Simplify marketing efforts with automated workflows triggered by loyalty activities
- Create targeted campaigns: Segment customers based on their loyalty tier or points balance for exclusive offers
- Drive program engagement: Automatically remind customers about expiring points or available rewards
With event triggers, your email marketing transitions from periodic campaigns to an ongoing conversation that responds directly to customer interactions with your loyalty program.
Understanding the Rule
The integration between Joy Loyalty and Klaviyo allows seamless data synchronization, enabling merchants to include loyalty program details in their marketing efforts. Here's how it works:
- Data Flow:
- Klaviyo pulls essential loyalty program data from Joy Loyalty, such as points balance, membership status, VIP tiers, referral links, and birthdays.
- This information becomes accessible for segmentation and personalization in Klaviyo.
- Use Cases:
- Create automated workflows to reward loyal customers or re-engage inactive ones.
- Segment customers based on their loyalty tier or point balance for exclusive offers.
By integrating these tools, merchants can craft highly targeted campaigns that resonate with their audience while fostering loyalty and driving sales.
How to integrate
The very first step to integrate Joy successfully with Klaviyo is to allow API connection between the 2 apps. Follow the simple guide below to see how:
Connect Joy to Klaviyo API
- In Step 1: Connect to Klaviyo API, click on the
Connectbutton - Review carefully the data that Klaviyo will have access to
- Click
Allowto finish connecting
Sync Joy customer data to Klaviyo
- In Step 2: Sync data, click on the
Connectbutton to allow customer data sync from Joy to Klaviyo - Check in Klaviyo's end to see customer's profile is now filled with loyalty data, including:
Joy Loyalty Points— current point balanceJoy member status— membership state (e.g. Member, Guest)Joy Referral URL— customer's unique referral linkJoy Vip tier— current VIP tier nameBirthday— formatted date of birth (synced if customer has saved their birthday in Joy)
This process may take a long time if you have over 100,000 customers in Joy Loyalty, primarily due to the Klaviyo API's throttling (opens in a new tab).
Set up automation triggers
- Click on
Select triggersto set up automation triggers - Tick on events that you need, and
Confirmto start sending triggers to Klaviyo
Profile properties synced to Klaviyo
After connecting and syncing data, Joy writes the following properties to each customer's Klaviyo profile. You can use these for segmentation, personalization, and conditions in your flows.
| Property name | What it contains | Klaviyo syntax |
|---|---|---|
Joy Loyalty Points | Current point balance | `{{ person |
Joy member status | Membership state (Member, Guest, Left) | `{{ person |
Joy Vip tier | Current VIP tier name (e.g. Gold) | `{{ person |
Joy Referral URL | Customer's unique referral link | `{{ person |
Birthday | Date of birth in MM/DD format | `{{ person |
Profile properties are updated in real time whenever a customer's points, tier, or membership status changes in Joy. Use them in Klaviyo segment conditions (e.g. Joy Vip tier equals Gold) or email personalisation (e.g. Hi, you have {{ person|lookup:'Joy Loyalty Points' }} points).
How to segment customers in Klaviyo (Bonus)
Segmenting customers with loyalty criteria means classifying customers based on loyalty conditions. For example, you can categorize customers by tier, such as segmenting Gold tier customers to send emails exclusively to this group.
Head to List & segments
- In the Klaviyo platform, open the
Audience>List & segments - Click on
Create new segment
Customize segment conditions
- Add a name for the segment
- Add a condition, using the
Properties about someonecondition type - Select Joy's properties, including: Joy member status, Joy Referral URL, Joy Vip tier
- Enter value (e.g. Joy Vip tier equals to "Gold")
Save the segment
- Click
Create segmentto save and use for email campaigns (e.g. monthly newsletter)
How to create event-based automations in Klaviyo
The essence of creating automated workflows: Create workflows that include loyalty program information in your email content. For example, you can send emails notifying customers about their points balance, sharing referral links, or tier details directly within the email.
Building workflows with loyalty program details is simple—just use variables and integrate them into your email content appropriately. For instance, the example below demonstrates creating a workflow:
Log in to Klaviyo
Log in to your Klaviyo account
Create workflow
Navigate to Flows > Create Flow to start creating your event-based flow
Select trigger event
- Start with
Select a triggermenu, click on theYour metricsoption - Choose the
APIoption as the Joy Loyalty event folders. You'll see all the Joy Loyalty events you've enabled - Select the specific events (refer to #available-trigger-events for detailed information) you want to use as a trigger for the workflow and click
Add
Customize emails
Design your email workflow using Klaviyo editor
Utilize event data in your email content to personalize messages
Set the workflow to active when ready
Example automation workflows
Here are powerful automation workflows you can create with the Joy Loyalty triggers:
Points redemption reminder
Trigger: Joy: Points Eligible Reward
Purpose: Alert customers when they have enough points for rewards
Content: Show available rewards and provide a clear redemption path
Benefit: Increases redemption rates and program engagement
Tier advancement celebration
Trigger: Joy: Tier Achieved
Purpose: Congratulate customers on reaching a new tier
Content: Highlight new tier benefits and exclusive offers
Benefit: Reinforces the value of loyalty program progression
Tier retention reminder
Trigger: Joy: 4 Weeks Pre Tier Reset
Purpose: Notify customers who are at risk of losing their current tier
Content: Show current status, requirements to maintain tier, and benefits of keeping status
Benefit: Motivates additional purchases to maintain tier status
Point expiration warning series
Triggers: Joy: 30 Days Pre Point Expiration → Joy: 7 Days Pre Point Expiration → Joy: 3 Days Pre Point Expiration
Purpose: Create a sequence of increasingly urgent reminders about expiring points
Content: Show expiring points amount and suggest redemption options
Benefit: Reduces point wastage and drives redemption activity
Birthday campaign sequence
Triggers: Joy: 7 Days Pre Birthday → Joy: Birthday
Purpose: Build anticipation for birthday rewards and then deliver them
Content: Teaser message followed by birthday reward details
Benefit: Creates a memorable loyalty moment and strengthens emotional connection
Referral thank you
Trigger: Joy: Point Referrers
Purpose: Thank customers who have successfully referred friends
Content: Show points earned and encourage additional referrals
Benefit: Reinforces referral behavior and acknowledges customer advocacy
Unused coupon reminders
After a customer redeems a coupon, it's easy for them to forget to use it before it expires — lost sales for you. Joy adds two Klaviyo triggers so you can build automated reminder flows for coupons customers redeemed but haven't used yet.
| Trigger | Fires |
|---|---|
| Joy: Unused Coupon - After Redeem | A set number of days after the customer redeems, if the coupon is still unused. Applies to all redeemed coupons. |
| Joy: Unused Coupon - Before Expire | A set number of days before the coupon expires, if still unused. Skips coupons without an expiry date. |
Both auto-stop the moment the coupon is used or has expired.

Step 1 — Select the triggers in Joy
Open the Klaviyo integration
In Joy, open Integrations and select Klaviyo.
Turn on the reminder triggers
Under Step 3: Set up automation triggers, click Select triggers, tick Joy: Unused Coupon - After Redeem and/or Joy: Unused Coupon - Before Expire, and confirm. They now appear under Selected triggers.
Step 2 — Set the reminder days
Selecting a trigger reveals the Unused Coupon Reminder block below. For each trigger you turned on, add the days you want reminders to fire:
- After Redeem — "Send reminder X days after the customer redeems" (e.g.
3,7). - Before Expire — "Send reminder X days before the coupon expires" (e.g.
1,3).
Add each day with + Add day (remove one with the trash icon). You can set up to 5 days per trigger, each a whole number from 1–365, in ascending order. A selected trigger with no days shows a warning and can't be saved. Click Save.
Joy keeps reminders under control automatically: each customer gets one reminder event per day (all their unused coupons bundled together), and if a coupon matches both triggers on the same day, only Before Expire is sent. To limit customers who have coupons across several days, turn on Smart Sending in your Klaviyo account.
Step 3 — Build the flow in Klaviyo
Create a metric-triggered flow
In Klaviyo, go to Flows → Create Flow → Metric-Triggered and choose Joy: Unused Coupon - After Redeem or Joy: Unused Coupon - Before Expire.
A metric only appears in Klaviyo after its first event fires. If you don't see it yet, save your settings in Joy and let one reminder trigger, or fire a test event first.
Design the email with Joy's properties
Use the event properties in your template — including Discount code, Reward name, Expiry date, Days since redeemed / Days until expiry, and Coupon link.
The Coupon link auto-applies the discount: when the customer clicks it, Shopify adds the code to their session and sends them to the cart with the discount already active.
Set the flow live
Turn on Smart Sending in your Klaviyo account (recommended), then set the flow live.
Trigger events
The following events can be used to trigger automations in Klaviyo:
Birthday Events
| Event Name | Description |
|---|---|
| Joy: 7 Days Pre Birthday | Triggered 7 days before a customer's birthday |
| Joy: Birthday | Triggered on a customer's birthday |
Point Events
| Event Name | Description |
|---|---|
| Joy: Points Eligible Reward | Triggered when customer has enough points to redeem a reward |
| Joy: Redeem Points | Triggered when customer redeems points |
| Joy: POS Point Redemption | Triggered when customer redeems points at POS |
| Joy: Earn Point | Triggered when customer earns points |
| Joy: Upon Point Expiration | Triggered when customer points expire |
| Joy: 30 Days Pre Point Expiration | Triggered 30 days before customer points expire |
| Joy: 7 Days Pre Point Expiration | Triggered 7 days before customer points expire |
| Joy: 3 Days Pre Point Expiration | Triggered 3 days before customer points expire |
Referral Events
| Event Name | Description |
|---|---|
| Joy: Coupon Referrers | Triggered when referrer receives a coupon reward |
| Joy: Point Referrers | Triggered when referrer receives points reward |
| Joy: Referral Friend | Triggered when a referred friend makes their first purchase |
Tier Events
| Event Name | Description |
|---|---|
| Joy: 4 Weeks Pre Tier Demotion | Triggered 4 weeks before customer tier demotion |
| Joy: 2 Weeks Pre Tier Demotion | Triggered 2 weeks before customer tier demotion |
| Joy: 1 Day Pre Tier Demotion | Triggered 1 day before customer tier demotion |
| Joy: Tier Downgrade | Triggered when customer tier is downgraded |
| Joy: 4 Weeks Pre Tier Reset | Triggered 4 weeks before customer tier reset |
| Joy: 2 Weeks Pre Tier Reset | Triggered 2 weeks before customer tier reset |
| Joy: 1 Day Pre Tier Reset | Triggered 1 day before customer tier reset |
| Joy: Tier Reset | Triggered when customer tier is reset |
| Joy: Tier Achieved | Triggered when customer achieves a new tier |
Milestone Events
| Event Name | Description |
|---|---|
| Joy: Milestone Achieved | Triggered when a customer reaches a milestone |
Member anniversary Events
| Event Name | Description |
|---|---|
| Joy: Member Anniversary | Triggered on the anniversary of the customer's membership date |
| Joy: 7 Days Pre Member Anniversary | Triggered 7 days before the anniversary of the customer's membership date |
Submit receipt Events
| Event Name | Description |
|---|---|
| Joy: Approved submit receipt | Triggered when submitted receipt is approved |
| Joy: Reject submit receipt | Triggered when submitted receipt is rejected |
Membership Events
| Event Name | Description |
|---|---|
| Joy: Joined Loyalty Program | Triggered when a customer joins your loyalty program the first time |
Event properties for Joy: Joined Loyalty Program:
| Property | Klaviyo Syntax | Example |
|---|---|---|
| Customer email | {{ event|lookup:'Customer email'|default:'' }} | [email protected] |
| Customer first name | {{ event|lookup:'Customer first name'|default:'' }} | Jane |
| Customer phone | {{ event|lookup:'Customer phone'|default:'' }} | +1 555-0100 |
| Joined at | {{ event|lookup:'Joined at'|default:'' }} | 2026-04-17T10:22:00Z |
| Initial points | {{ event|lookup:'Initial points'|default:'' }} | 100 |
Use this event to send a welcome flow, grant a bonus reward, or sync the new member to other marketing tools.
Event properties
Use the following event|lookup variables inside Klaviyo’s Flow Builder. These let you display dynamic data from each Joy Loyalty event.
Points Event Properties (Earn, Redeem, POS Redemption)
| Property | Klaviyo Syntax | Example |
|---|---|---|
| Program name | {{ event|lookup:'Program name'|default:'' }} | Earn point program |
| Discount code | {{ event|lookup:'Discount code'|default:'' }} | SAVE10 |
| Earned points | {{ event|lookup:'Earned points'|default:'' }} | 10 points |
| Created at | {{ event|lookup:'Created at'|default:'' }} | 2025-01-30T13:17:41Z |
| Redeemed points | {{ event|lookup:'Redeemed points'|default:'' }} | 50 points |
| Point expired | {{ event|lookup:'Points expire'|default:'' }} | 10 points |
| Expired at | {{ event|lookup:'Expired at'|default:'' }} | 2025-12-31 |
Tier Event Properties (Achieved, Downgrade, Reset)
| Property | Klaviyo Syntax | Example |
|---|---|---|
| New tier name | {{ event|lookup:'New tier name'|default:'' }} | Gold |
| Old tier name | {{ event|lookup:'Old tier name'|default:'' }} | Silver |
| Current tier name | {{ event|lookup:'Current tier name'|default:'' }} | Platinum |
| Amount to next tier | {{ event|lookup:'Amount to next tier'|default:'' }} | 100 |
| Is Highest Tier | {{ event.isHighestTier|default:'' }} | False |
| Level up rule | {{ event.typeCalculator|default:'' }} | Point earned, Money spent, Number of orders |
Birthday Events
| Property | Klaviyo Syntax | Example |
|---|---|---|
| Birthday | {{ event|lookup:'Birthday'|default:'' }} | 07/12 |
| Reward type | {{ event.rewardType|default:'' }} | Point, Coupon, Multiple Rewards |
| Reward value | {{ event.reward|default:'' }} | 100, JOY-ABCDEF |
Referral Event Properties (Coupon Referrers, Point Referrers, Referral Friend)
| Property | Klaviyo Syntax | Example |
|---|---|---|
| Earned points (referrer only) | {{ event|lookup:'Earned points'|default:'' }} | 10 points |
| Reward type | {{ event.rewardType|default:'' }} | Point, Coupon, Store credit |
| Reward value | {{ event.reward|default:'' }} | 100, JOY-ABCDEF, 10.5 |
Milestone Event Properties
| Property | Klaviyo Syntax | Example |
|---|---|---|
| Milestone name | {{ event|lookup:'Milestone name'|default:'' }} | Number of order #1 |
| Milestone rewards | {{ event.Reward|default:'' }} | 10 points |
Member anniversary Event Properties
| Property | Klaviyo Syntax | Example |
|---|---|---|
| Reward | {{ event.Reward|default:'' }} | 10 points |
Notes
- All events include common customer properties like email, name, points, and ID.
- Some fields, such as Program name and Discount code, may appear in multiple event types.
- Test events may contain different values than live data.
- Date formats:
- Timestamps use ISO 8601 (
YYYY-MM-DDTHH:mm:ssZ) - Standard dates use
YYYY-MM-DD - Birthdays use
MM/DD
- Timestamps use ISO 8601 (
Email templates
The following ready-to-use templates show exactly which variables to type in the Klaviyo email editor for each key automation. Copy the subject line and body text directly into your Klaviyo flow.
Klaviyo does not show a variable picker for Joy events — you must type the variable syntax manually. Use {{ event|lookup:'Property name'|default:'' }} for multi-word properties.
Birthday
Trigger: Joy: Birthday
Subject line:
🎂 Happy Birthday, {{ event|lookup:'Customer first name'|default:'there' }}! Your gift is insideBody:
Hi {{ event|lookup:'Customer first name'|default:'there' }},
Today is your special day — and we wanted to celebrate with you! 🎉
You currently have {{ event|lookup:'Customer points'|default:'0' }} points in your account.
Here's your birthday gift:
{{ event|lookup:'Discount code' }}
Use it at checkout — it's our treat!
Thanks for being a loyal customer,
[Your store name]7 Days Pre-Birthday
Trigger: Joy: 7 Days Pre Birthday
Subject line:
🎁 Your birthday reward is almost here, {{ event|lookup:'Customer first name'|default:'there' }}!Body:
Hi {{ event|lookup:'Customer first name'|default:'there' }},
Your birthday is just 7 days away — and we're already preparing something special for you.
Stay tuned: a birthday reward will land in your inbox on your big day!
You currently have {{ event|lookup:'Customer points'|default:'0' }} points ready to use.
See you soon,
[Your store name]Points Expiring
Trigger: Joy: 7 Days Pre Point Expiration (Copy this template and adjust the urgency copy for 30-day and 3-day variants.)
Subject line:
⏳ Your points expire in 7 days — don't lose them!Body:
Hi {{ event|lookup:'Customer first name'|default:'there' }},
You have {{ event|lookup:'Customer points expire'|default:'0' }} points that expire in 7 days.
Don't let them go to waste — redeem them before they're gone!
[Redeem my points →] (link to your store)
You currently have {{ event|lookup:'Customer points'|default:'0' }} points in total.
[Your store name]Tier Achieved
Trigger: Joy: Tier Achieved
Subject line:
🏆 Congratulations! You've reached {{ event|lookup:'New tier name'|default:'a new tier' }}Body:
Hi {{ event|lookup:'Customer first name'|default:'there' }},
You've just been upgraded to {{ event|lookup:'New tier name'|default:'a new tier' }}! 🎉
As a {{ event|lookup:'New tier name'|default:'' }} member, you now unlock exclusive perks and higher rewards on every purchase.
Here's a welcome gift for reaching this tier:
{{ event|lookup:'Discount code' }}
Keep earning — your next milestone is just {{ event|lookup:'Amount to next tier'|default:'some' }} points away.
Thanks for being with us,
[Your store name]Pre-Tier Demotion
Trigger: Joy: 4 Weeks Pre Tier Demotion (Repeat for 2-week and 1-day variants with escalating urgency.)
Subject line:
⚠️ Your {{ event|lookup:'Current tier name'|default:'current' }} status is at riskBody:
Hi {{ event|lookup:'Customer first name'|default:'there' }},
Your {{ event|lookup:'Current tier name'|default:'current' }} tier status is at risk of being downgraded in 4 weeks.
To keep your tier and all its benefits, make sure you meet the spending requirements before the review date.
You currently have {{ event|lookup:'Customer points'|default:'0' }} points.
[Shop now to keep your status →]
[Your store name]Points Eligible Reward
Trigger: Joy: Points Eligible Reward
Subject line:
🎉 You have enough points to claim a reward!Body:
Hi {{ event|lookup:'Customer first name'|default:'there' }},
Great news — you now have enough points to redeem a reward from {{ event|lookup:'Program name'|default:'our loyalty program' }}!
You have {{ event|lookup:'Customer points'|default:'0' }} points, and you only need {{ event|lookup:'Program min point'|default:'0' }} to redeem.
[Claim my reward →] (link to your store loyalty page)
[Your store name]Points Earned
Trigger: Joy: Earn Point
Subject line:
⭐ You just earned {{ event|lookup:'Earned points'|default:'some' }} points!Body:
Hi {{ event|lookup:'Customer first name'|default:'there' }},
You just earned {{ event|lookup:'Earned points'|default:'0' }} points from {{ event|lookup:'Program name'|default:'your recent activity' }}! 🎉
Your updated balance: {{ event|lookup:'Customer points'|default:'0' }} points
Keep going — every point brings you closer to your next reward.
[View my rewards →] (link to your store loyalty page)
[Your store name]Points Redeemed
Trigger: Joy: Redeem Points
Subject line:
✅ Your reward is ready — here's your discount codeBody:
Hi {{ event|lookup:'Customer first name'|default:'there' }},
You've successfully redeemed {{ event|lookup:'Redeemed points'|default:'0' }} points. Here's your discount code:
{{ event|lookup:'Discount code'|default:'' }}
Apply it at checkout to claim your reward.
Remaining balance: {{ event|lookup:'Customer points'|default:'0' }} points
[Shop now →] (link to your store)
[Your store name]FAQ
Q: Which loyalty events can trigger Klaviyo automations?
A: Joy Loyalty sends many events to trigger automations including point earnings, redemptions, tier changes, upcoming tier resets, birthdays, point expirations, and referral activities. The full list can be viewed and configured in your Joy Loyalty integration settings.
Q: Do I need to set up the triggers in both Joy Loyalty and Klaviyo?
A: Yes. You need to enable the triggers you want in the Joy Loyalty integration settings, then create corresponding automation workflows in Klaviyo that use these triggers as starting points.
Q: How do I access loyalty data in Klaviyo email templates?
A: You can use variables such as {{ event|lookup:'Customer points'|default:0 }}, and others, depending on the trigger event. These variables are available in the Klaviyo email editor.
Q: How quickly are loyalty events sent to Klaviyo?
A: Events are transmitted to Klaviyo in real-time as they occur in your loyalty program, allowing for immediate email communications.
Q: How do I troubleshoot if an expected email isn't being triggered?
A: First verify the trigger is enabled in Joy Loyalty, then check that the corresponding workflow is active in Klaviyo. Also confirm the test customer has a valid email address and hasn't unsubscribed from marketing emails.
Wrap up
And that's it! Your integration between Joy Loyalty and Klaviyo is now all set and ready to save your marketing efforts. If you run into any issues or have questions along the way, don't hesitate to reach out to our 24/7 live chat support. We're always here and happy to assist you!