What Is a Loyalty Program & Why Every Ecommerce Brand Needs One
A loyalty program rewards customers for repeat purchases or engagement—points, tiers, perks, etc.
Benefits:
- Encourages return purchases (cheaper than acquisition)
- Strengthens brand affinity and conversion
- Drives referrals and advocacy
With Klaviyo, you can build this program without external platforms, using automation flows, segments, and webhooks—all for free.
2. Overview: Free Loyalty Program in Klaviyo
Core Idea
- Use Klaviyo’s events (like Fulfilled Order) to assign points. Placed order is not ideal since the order might be cancelled prior to dispatch.
- Add engagement events (newsletter signup, email clicks)
- Use Klaviyo segments and flows to award points and manage tiers
- Notify customers after ~14 days with status updates and tier perks
3. Step‑by‑Step Setup
3.1. Set up flow for earning points (dynamic)
Your first step would be to create one flow that will add points to customers at the exact time that their order is fulfilled. To do that:
Create one flow with the Trigger “Fulfilled Order”

Add a Webhook at the next step to add the corresponding points. So here we usually to decide to award 1 point to the customer for every eur spent. To do this, add the following to your Webhook details:
- In Destination URL add “https://a.klaviyo.com/client/profiles/?company_id=[PUBLIC API KEY]”
- Add 3 headers with the following values
Key
accept
content-type
revision
Value
application/vnd.api+json
application/vnd.api+json
2025-01-15
At the JSON body, enter the payload information as follows:
{
“data”: {
“type”: “profile”,
“attributes”: {
“email”: “{{ person.email }}”,
“properties”: {
“Loyalty Points”: “{% with person|lookup:’Loyalty Points’ as points %}{% with event|lookup:’$value’ as additional_points %}{{ points|default:0|floatadd:additional_points|default:0 }}{% endwith %}{% endwith %}”
}
}
}
}
When you are done, hit the preview button to send a test request. You should get “Successfully sent webhook.”

3.2. Set up flow for earning points (static)
But what about those events that do not have a dynamic $value price, like “Subscribed to Email Marketing”? In that case you get to decide how many points you want to give to the client for different actions.
So choose your trigger, follow the steps as before, but in the JSON use the following:
{
“data”: {
“type”: “profile”,
“attributes”: {
“email”: “{{ person.email }}”,
“properties”: {
“Loyalty Points”: “{{ person|lookup:’Loyalty Points’|default:0|add:’10‘}}”
}
}
}
}
In this example, we award the customer with 10 points. Feel free to change that.
3.3. Set up flow for earning points (dynamic)
So one client earned points on the day his order was dispatched, but it was never delivered to him. As a result the order was returned and the client refunded. In that case, we have to deduct the points.
Again, you duplicate you first flow and change the trigger to “Refunder Order”. Webhook details are the same, except from JSON details:
{
“data”: {
“type”: “profile”,
“attributes”: {
“email”: “{{ person.email }}”,
“properties”: {
“Loyalty Points”: “{% with person|lookup:’Loyalty Points’ as points %}{% with event|lookup:’$value’ as additional_points %}{{ points|default:0|subtract:additional_points|default:0 }}{% endwith %}{% endwith %}”
}
}
}
}
And like that, the points from his original order will get deducted.
3.4. Welcome them to the program
Your client might not be aware that you have a loyalty program. So it would be wise to nurture him and explain the value he/she will be getting.
Create one segment with anyone that has at least 1 Loyalty Point. Probably this is the day the order dispatched, so wait 1-2 days and send one email, welcome him in your Loyalty Program and inform him about the value that he/she will be getting form now on.
3.5. Notify Customer of Tier Status
Send tier update emails informing them which tier they’ve achieved and what rewards they’ve unlocked. Also add their current Loyalty Points in your email footer so they can see it in every communications you have. Add also a CTA for them to go to your site’s landing page and found more about the program. Maybe they forgot so this would be a good reminder.
4. Tier Examples & Messaging
Example Tiers:
Tier | Points Threshold | Reward |
---|---|---|
Bronze | 0–99 | Free shipping on next order |
Silver | 100–499 | 5 % discount code + birthday coupon |
Gold | 500+ | 10 % discount + early access + birthday gift |
Messaging Flow (Day 14)
- Bronze: “Thanks for your order! You’re now Bronze level—next order ships free!”
- Silver: “Congrats—you’ve earned 100 points and reached Silver! Enjoy 5 % off and birthday bonus.”
- Gold: “Amazing—you’re now our highest —Gold tier! Enjoy 10 % off, early access, and a birthday gift!”
5. Promotional Automation & Gamification
- Set up regular reminders (e.g. point balances, expiring points)
- Personalize messaging based on proximity to next tier—”You’re 50 points from Silver!”
- Encourage actions like referrals, reviews, and challenges to earn extra points (email clicks, repeat purchases).
6. Tracking & Measuring Success
Each tier and their benefits should tie back to hard data:
- Monitor sign-ups, engagement, repeat purchases
- Track revenue uplift from loyalty emails
- Set adoption goals (20 % of customers joining loyalty program)
7. Free‑Only Tools Approach
You don’t need paid loyalty plugins to start:
- Use Klaviyo profile properties and segmentation
- Automate flows based on events and profile data
- Offer meaningful rewards that don’t cost heavily—free shipping, discount codes, early access, birthday gifts
8. FAQs
Can I create loyalty tiers using only Klaviyo?
Yes—use segments and profile scoring via custom properties to define tiers.
How can I award historical points?
Sync past order history via webhooks or data import into Klaviyo profiles.
Should I award points for email actions?
Absolutely—it boosts engagement and fills out your loyalty structure.
What if a customer doesn’t purchase again?
Send periodic emails like “Your points expire soon!” or “Redeem before end of month!” to re‑engage.
Is this approach scalable?
Yes—as you grow, you can integrate external loyalty tools (LoyaltyLion, Smile.io) while Klaviyo manages messaging.
What metrics should I track?
Adoption rate (aim around 20 %), repeat purchase increase, revenue from loyalty emails, and tier progression.
Start building this today
You can build an effective, free loyalty program in Klaviyo using:
- Customer data and historic purchases
- Flows triggered by events to award points
- Segment-based tiers and automated messaging after 14 days
- Enchanting perks like free shipping, discounts, early access
- Games and reminders to increase engagement
This setup costs nothing beyond Klaviyo and can delight customers while boosting your retention and revenue.