Sync customers, points, VIP tier, referral and membership data into Klaviyo as profile properties and trigger events. Use them inside Klaviyo segments, dynamic email content and flows.
Yuko’s Klaviyo connector pushes two kinds of data into Klaviyo:
Profile properties — written to every known customer’s Klaviyo profile (e.g., yuko_points_balance, yuko_vip_tier). Use these to segment and personalise content.
Trigger events — Klaviyo “metrics” that Yuko fires when something happens in the loyalty program (e.g., Earn Points, VIP Tier Upgrade). Use these to start flows.
This page documents every property and every event that Yuko sends.
Why this matters for email design: In Klaviyo’s email editor, you reference Yuko data using the exact property names below — e.g., {{ person.yuko_points_balance }} to show the live balance, or {{ event.yuko_points_earned }} inside a flow triggered by Earn Points. Get the property name wrong and the placeholder renders empty.
In your Shopify admin, go to Apps → Yuko Loyalty → Integrations → Klaviyo.
2
Paste your Klaviyo Private API key
Generate a Private API key from your Klaviyo account (Klaviyo dashboard → Settings → API keys), then paste it into Yuko.
3
Pick which events to forward
Tick the events you want sent to Klaviyo as metrics. You can change this any time later.
4
Save and verify
Click Connect. Yuko’s profile sync begins immediately — within a few minutes, your loyalty customers should appear (or update) on Klaviyo profiles with the yuko_* properties listed below.
Every loyalty customer Yuko knows about has the following properties on their Klaviyo profile. Profiles are keyed by email and external_id (the Shopify customer ID). Properties refresh automatically every time Yuko fires an event for the customer.Use these in Klaviyo segments and inside any email template ({{ person.<property> }}).
Each event below shows up in Klaviyo as a metric (the name in bold). Use it as the trigger of a flow, or as a metric filter elsewhere.Properties listed are in addition to the common event properties above and are also accessible inside Klaviyo flows as \{\{ event.<property> \}\}.
When it fires: A configurable number of days before the customer’s birthday — useful for pre-birthday teasers.
Properties identical to Customer Birthday above (including yuko_birthday_points_awarded, yuko_birthday_base_points, etc.) — Klaviyo can use them to pre-announce the bonus.
When it fires: A customer is assigned a tier for the first time (typically the base tier on signup).
Property
Type
Description
yuko_tier_name
String
The tier the customer entered.
yuko_tier_id
String
UUID of the tier.
yuko_tier_icon_url
String
Tier icon URL — use as <img src="\{\{ event.yuko_tier_icon_url \}\}"> in emails.
yuko_tier_is_entry
Boolean
true (always, for entry events).
yuko_benefits_unlocked
String
Comma-separated list of benefits.
yuko_all_tiers
String
Serialised list of all configured tiers (for “tier ladder” displays).
yuko_next_tier_name
String
Name of the tier above.
yuko_next_tier_threshold
Number
Threshold required to reach the next tier.
yuko_next_tier_amount_needed
Number
How much more is needed.
yuko_next_tier_progress_percentage
Number
Progress toward next tier as a percentage.
yuko_earning_rate
Number
Current earning multiplier.
Per-benefit reward fields: If the tier has reward-type benefits (e.g., a free product or store credit perk that issues a Shopify discount code), Yuko enriches the payload with one numbered block of fields per benefit. N starts at 1 and counts up — for example, a tier with two reward benefits emits both yuko_reward_1_* and yuko_reward_2_*.
Property pattern
Type
Description
yuko_reward_N_type
String
Reward type (e.g., amount_discount, free_product, store_credit).
yuko_reward_N_value
Number
Reward value (e.g., the dollar amount or percentage).
yuko_reward_N_description
String
Human-readable description of the benefit.
yuko_reward_N_code
String
The Shopify discount code issued to this customer for the benefit.
When it fires: A customer crosses a threshold and moves up a tier.
Property
Type
Description
yuko_previous_tier_name
String
Tier they came from.
yuko_previous_tier_id
String
UUID of the previous tier.
yuko_new_tier_name
String
Tier they entered.
yuko_new_tier_id
String
UUID of the new tier.
yuko_new_tier_icon_url
String
New tier’s icon URL.
yuko_qualifying_value
Number
The customer’s qualifying value at the moment of upgrade.
yuko_threshold_crossed
Number
The threshold they crossed.
yuko_qualifying_event_type
String
What triggered the qualification (e.g., place_an_order).
yuko_qualifying_event_order_id
String
Shopify order ID, if applicable.
yuko_qualifying_event_order_total
Number
Order total, if applicable.
yuko_benefits_unlocked
String
New benefits unlocked.
yuko_new_earning_rate
Number
New tier’s points multiplier.
yuko_previous_earning_rate
Number
Previous tier’s multiplier.
yuko_next_tier_name
String
Name of the next tier above.
yuko_next_tier_threshold
Number
Threshold for the next tier.
yuko_next_tier_amount_needed
Number
How much more is needed.
yuko_next_tier_progress_percentage
Number
Progress toward the next tier.
yuko_tier_stats_percentile
Number
What percentile of customers the upgrade puts them in.
yuko_tier_stats_total_in_tier
Integer
Number of customers currently in the new tier.
yuko_all_tiers
String
All-tiers list.
Per-benefit reward fields: If the new tier has reward-type benefits (e.g., a free product or store credit perk that issues a Shopify discount code), Yuko enriches the payload with one numbered block of fields per benefit. N starts at 1 and counts up — for example, a tier with two reward benefits emits both yuko_reward_1_* and yuko_reward_2_*.
Property pattern
Type
Description
yuko_reward_N_type
String
Reward type (e.g., amount_discount, free_product, store_credit).
yuko_reward_N_value
Number
Reward value (e.g., the dollar amount or percentage).
yuko_reward_N_description
String
Human-readable description of the benefit.
yuko_reward_N_code
String
The Shopify discount code issued to this customer for the benefit.
When it fires: A friend’s reward has been issued (their first qualifying order completed).
This event fires on the friend’s profile, not the advocate’s.
Property
Type
Description
yuko_friend_email
String
Friend’s email (matches the Klaviyo profile this fires on).
yuko_friend_first_name
String
Friend’s first name.
yuko_referral_code_used
String
The advocate’s code the friend used.
yuko_friend_reward_type
String
Reward type.
yuko_friend_reward_value
Number
Reward value.
yuko_friend_reward_code
String
The Shopify discount code issued to the friend.
yuko_friend_reward_expires_at
ISO 8601 string
Expiry.
yuko_friend_reward_description
String
Description.
yuko_referred_by
String
The advocate’s name.
Experimental fields. The three properties below are present in the payload today but their values are hardcoded placeholder constants in the current backend code. They will be replaced by real values in a future release — do not rely on them in production flows.
Property
Type
Current placeholder value
Intended meaning (when finalised)
yuko_total_claims
Integer
6
Total times any friend has claimed via this advocate’s code.
Reference profile properties in any Klaviyo email:
Hi \{\{ person.first_name|default:"there" \}\},Your current balance is \{\{ person.yuko_points_balance|default:0 \}\} points(\{\{ person.yuko_points_as_cash_balance|default:0 \}\} in store credit).You're \{\{ person.yuko_vip_next_tier_amount_needed \}\} away from \{\{ person.yuko_vip_next_tier \}\}.
Disable Yuko’s email template if Klaviyo is sending the same one. Otherwise the customer gets two emails.
Test every flow with a real customer record before activating. Empty event properties typically mean a configuration issue (e.g., reward not yet generated).
Use external_id to deduplicate Klaviyo profiles when customers change their email.
Include fallbacks in template tags.\{\{ person.yuko_points_balance|default:0 \}\} keeps emails clean when properties haven’t synced yet.
Don’t reference event properties inside campaigns (they’re only meaningful inside flows triggered by that event). Use profile properties for campaigns.
Every time Yuko sends an event for that customer, the profile properties are recomputed and pushed. In practice that means whenever they earn, redeem, change tier, etc. Most properties can be considered live within a few minutes.
What's the difference between a profile property and an event property?
Profile properties live on the customer record permanently and reflect the current state — use them in segments and templates that aren’t tied to a specific event.Event properties live on the event itself and reflect the state at the moment the event fired — use them inside flows triggered by that event.Example: yuko_points_balance (profile) is the customer’s current balance. yuko_points_earned (event) is the amount earned in this specific transaction.
Why is a property empty?
Most often: the customer hasn’t reached that part of the program yet (e.g., yuko_vip_next_tier_amount_needed is empty for top-tier customers). Or the event was for a non-loyalty action that doesn’t carry that property. Always include default: in your template tags.
Can I disable specific events?
Yes — open the Klaviyo integration in Yuko and toggle individual events off. Profile sync continues regardless.
How do I find a customer in Klaviyo using their Shopify ID?
Use Klaviyo’s profile lookup by external_id. Yuko writes external_id = Shopify customer ID on every profile.
Do refunds reverse events in Klaviyo?
No — Klaviyo events are immutable. If a points credit is reversed, Yuko fires a new Points Adjusted event with yuko_adjustment_direction = debit.
Why doesn't Order Placed appear as a Yuko event?
Klaviyo already receives Shopify’s native Placed Order event from Shopify’s own integration. Yuko intentionally avoids duplicating it — use Shopify’s event in flows, and join Yuko data via profile properties.
Can I send loyalty data to multiple Klaviyo accounts?
Not in v1 — one Klaviyo account per Yuko organisation. If you operate multi-store, contact support.