Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.yuko.so/llms.txt

Use this file to discover all available pages before exploring further.

Where to find this: Shopify admin → Apps → Yuko Loyalty → Integrations → Klaviyo

Introduction

Yuko’s Klaviyo connector pushes two kinds of data into Klaviyo:
  1. 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.
  2. 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.

When to use

  • Klaviyo is your primary email / SMS tool.
  • You want VIP-tier or balance-based segments in Klaviyo.
  • You want loyalty-event flows (e.g., a custom “Tier upgrade” series) sent through Klaviyo instead of Yuko.
  • You want Yuko data inside existing Klaviyo flows (welcome, win-back, browse abandonment).

Overview

  • Profile sync is automatic and continuous. Every loyalty event refreshes the customer’s profile properties.
  • Events are opt-in per-event. You pick which events get forwarded when you set up the integration.
  • One-way: Yuko → Klaviyo. Yuko does not pull data from Klaviyo.
  • Authentication: Klaviyo Private API key. Optional OAuth where available.

Before you start

Yuko app is installed on your Shopify store — see Install Yuko on Shopify.
The Yuko Theme App Embed is enabled in your active theme.
Your loyalty program is enabled at Shopify admin → Apps → Yuko Loyalty → Loyalty → Settings.
Points label and currency are configured.
You have a Klaviyo account.
You have a Klaviyo Private API key with the necessary scopes (Profiles + Events at minimum).

Connect Yuko to Klaviyo

1

Open the Klaviyo integration

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.

Profile properties

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> }}).

Identifier properties

These are written at Klaviyo’s top-level profile object (not under properties).
Klaviyo profile fieldSourceNotes
emailCustomer emailPrimary identifier
first_nameCustomer first name
last_nameCustomer last name
external_idShopify customer IDUse to match Klaviyo profiles to Shopify customers
phone_numberCustomer phoneE.164 format if available

Loyalty profile properties

PropertyTypeDescription
yuko_joined_atISO 8601 stringWhen the customer first appeared in Yuko (account creation).
yuko_total_spentNumberLifetime spend recorded on the Shopify customer.
yuko_points_balanceIntegerCurrent points balance. Use this for the live balance in any email.
yuko_points_as_cash_balanceNumberThe points balance expressed in store currency, given your conversion ratio.
yuko_lifetime_points_earnedIntegerAll points the customer has ever earned (excludes redemptions and adjustments).
yuko_points_expire_atISO 8601 stringThe date the customer’s next batch of points will expire. Empty if no points are scheduled to expire.
yuko_points_to_next_rewardStringHow many more points the customer needs to qualify for their next claimable reward.

VIP tier profile properties

PropertyTypeDescription
yuko_vip_tierStringCurrent tier name (e.g., Silver, Gold, Diamond).
yuko_vip_tier_entry_dateISO 8601 stringWhen the customer entered their current tier.
yuko_vip_retention_expires_atISO 8601 stringWhen the customer’s retention window ends. They must re-qualify before this date or risk downgrade.
yuko_vip_qualifying_valueNumberThe customer’s current progress toward the next tier (in spend, points or orders depending on your calculation method).
yuko_vip_next_tierStringName of the next tier the customer is progressing toward. Empty for top-tier customers.
yuko_vip_next_tier_amount_neededNumberHow much more is needed to reach the next tier.
yuko_vip_progress_percentageNumberProgress toward the next tier as a percentage (0–100).
yuko_vip_at_riskBooleantrue if the customer is within 30 days of retention expiry. Useful for “you’re about to lose VIP” emails.
yuko_vip_is_entry_tierBooleantrue if the customer is still on the base/entry tier.

Referral profile properties

PropertyTypeDescription
yuko_referral_urlStringThe customer’s personal referral link. Use directly in emails — “Share your link: {{ person.yuko_referral_url }}”.
yuko_referral_codeStringThe short referral code, embedded in the URL.
yuko_total_referralsIntegerTotal referrals the customer has initiated.
yuko_successful_referralsIntegerReferrals that converted (friend completed the qualifying action).

Membership profile properties

PropertyTypeDescription
yuko_membership_tierStringCurrent membership plan name (e.g., Yuko VIP). Empty for non-members.
yuko_membership_statusStringContract status — typical values: active, paused, cancelled, failed.
yuko_membership_renewal_dateISO 8601 stringNext renewal date. Use for renewal-reminder emails.

Personal milestones

PropertyTypeDescription
yuko_date_of_birthISO 8601 stringThe customer’s birthday. Empty if not collected.
yuko_loyalty_anniversary_dateISO 8601 stringAnniversary date — the date the customer entered their current tier, or their account creation date as a fallback.

Common event properties

Every event Yuko sends to Klaviyo carries the following properties — in addition to the event-specific properties documented per event.
PropertyTypeDescription
yuko_customer_emailStringCustomer email (also matches Klaviyo profile).
yuko_customer_first_nameStringFirst name.
yuko_customer_last_nameStringLast name.
yuko_shopify_customer_idStringThe Shopify customer ID this event relates to.
yuko_program_moduleArrayActive Yuko modules for the store (e.g., ["loyalty", "referral", "tiers", "membership"]).
yuko_program_currencyStringCustomer’s currency code.
yuko_timestampISO 8601 stringWhen the event was triggered in Yuko.
yuko_org_uuidStringYuko organisation UUID. Useful in multi-store Klaviyo accounts.
In Klaviyo flow filters and template content, reference these as \{\{ event.yuko_customer_email \}\}, \{\{ event.yuko_timestamp \}\}, etc.

Trigger events

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> \}\}.

Loyalty events

Joined Loyalty Program

  • Klaviyo metric: Joined Loyalty Program
  • Event slug: loyalty_program_joined
  • When it fires: A customer enters the Yuko loyalty program for the first time.
PropertyTypeDescription
yuko_signup_sourceStringWhere the customer joined from (e.g., onboarding, account block).
yuko_signup_points_awardedIntegerBonus points awarded for joining (if a Sign Up campaign is active).
yuko_new_balanceIntegerCustomer’s points balance immediately after joining.
yuko_entry_tier_nameStringTier the customer entered at.
yuko_entry_tier_is_entryBooleantrue if joined at the base tier.
yuko_first_reward_nameStringName of the cheapest reward configured.
yuko_first_reward_points_requiredIntegerPoints cost of the cheapest reward.
yuko_first_reward_points_neededIntegerHow many more points to reach it from the new balance.
yuko_referral_codeStringTheir personal referral code (if referrals are enabled).
yuko_referral_urlStringTheir personal referral link.
yuko_all_tiersStringSerialised list of all configured tiers (for display).
yuko_earning_ruleStringThe earning rule that delivered the signup bonus, if any.

Earn Points

  • Klaviyo metric: Earn Points
  • Event slug: loyalty_earn_reward
  • When it fires: Yuko credits points to a customer from any active Way to Earn campaign.
PropertyTypeDescription
yuko_points_earnedIntegerPoints awarded by this event.
yuko_new_balanceIntegerBalance immediately after the credit.
yuko_trigger_nameStringThe Way to Earn that fired (e.g., place_an_order, birthday).
yuko_trigger_order_idStringShopify order ID, if the trigger was a purchase.
yuko_trigger_order_totalNumberOrder total, if applicable.
yuko_earning_ruleStringThe earning rule name.
yuko_vip_tier_multiplierNumberMultiplier applied at the moment of award.
yuko_base_pointsIntegerBase points before any multiplier.
yuko_bonus_pointsIntegerBonus points contributed by VIP multiplier or campaign uplift.
yuko_total_redeemable_cashNumberCustomer’s points balance expressed as cash value.
yuko_available_rewards_countIntegerNumber of rewards the customer can claim right now.
yuko_points_to_next_rewardIntegerPoints needed to unlock the next reward.
yuko_points_as_cashNumberSame as yuko_total_redeemable_cash, kept for backward compatibility.

Redeem Points

  • Klaviyo metric: Redeem Points
  • Event slug: loyalty_redeem_points
  • When it fires: A customer redeems points for a reward (Way to Redeem).
PropertyTypeDescription
yuko_points_spentIntegerPoints consumed by this redemption.
yuko_new_balanceIntegerBalance after the redemption.
yuko_reward_typeStringReward type — amount_discount, percentage_discount, free_product, free_shipping, store_credit.
yuko_reward_valueNumberValue of the reward (e.g., 5 for $5 off, 10 for 10%).
yuko_reward_codeStringThe Shopify discount code issued.
yuko_reward_expires_atISO 8601 stringWhen the discount code expires.
yuko_reward_minimum_purchaseNumberMinimum cart amount to use the reward.
yuko_reward_descriptionStringHuman-readable description.

Points Adjusted

  • Klaviyo metric: Points Adjusted
  • Event slug: loyalty_points_adjusted
  • When it fires: A staff member manually credits or debits a customer’s points.
PropertyTypeDescription
yuko_adjustment_amountIntegerAbsolute points adjusted.
yuko_adjustment_directionStringcredit or debit.
yuko_new_balanceIntegerBalance after the adjustment.
yuko_adjustment_reasonStringReason note entered by the staff member.
yuko_adjusted_byStringName of the staff member who made the change.

Points Expired

  • Klaviyo metric: Points Expired
  • Event slug: loyalty_points_expired
  • When it fires: A batch of points expires.
PropertyTypeDescription
yuko_points_expiredIntegerPoints that just expired.
yuko_new_balanceIntegerRemaining balance.
yuko_available_rewards_countIntegerRewards still claimable with the remaining balance.

Points Expiring Reminder

  • Klaviyo metric: Points Expiring Reminder
  • Event slug: points_expiring
  • When it fires: Customer has points scheduled to expire — typically 30 and 7 days before expiry.
PropertyTypeDescription
yuko_points_at_riskIntegerPoints about to expire.
yuko_total_balanceIntegerTotal points balance.
yuko_expires_atISO 8601 stringWhen the at-risk points expire.
yuko_days_until_expiryIntegerDays remaining.
yuko_urgencyStringUrgency tier (e.g., low, medium, high).
yuko_prevention_actionStringSuggested action (e.g., redeem now).
yuko_points_as_cash_at_riskNumberCash value of the at-risk points.
yuko_available_reward_1_nameStringTop reward the customer could claim.
yuko_available_reward_2_nameStringSecond reward (only present if available).

Reward Expiry Reminder

  • Klaviyo metric: Reward Expiry Reminder
  • Event slug: reward_expiring
  • When it fires: A customer’s redeemed reward (discount code) is about to expire — typically 7 and 1 days before.
PropertyTypeDescription
yuko_reward_typeStringThe reward type.
yuko_reward_valueNumberReward value.
yuko_reward_codeStringThe Shopify discount code at risk.
yuko_reward_expires_atISO 8601 stringExpiry timestamp.
yuko_reward_descriptionStringHuman-readable description.
yuko_days_until_expiryIntegerDays remaining.
yuko_urgencyStringUrgency tier.

Customer Birthday

  • Klaviyo metric: Customer Birthday
  • Event slug: loyalty_birthday
  • When it fires: It’s the customer’s birthday and Yuko has credited the birthday bonus.
PropertyTypeDescription
yuko_birthday_points_awardedIntegerTotal points awarded.
yuko_new_balanceIntegerBalance after the credit.
yuko_birthday_base_pointsIntegerBase birthday points.
yuko_birthday_tier_bonusIntegerExtra points contributed by VIP tier multiplier.
yuko_birthday_tier_multiplierNumberMultiplier applied.
yuko_current_vip_tierStringCustomer’s tier at the moment of award.

Birthday Reminder

  • Klaviyo metric: Birthday Reminder
  • Event slug: loyalty_birthday_reminder
  • 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.

Customer Anniversary

  • Klaviyo metric: Customer Anniversary
  • Event slug: loyalty_anniversary
  • When it fires: It’s the anniversary of the customer’s signup.
PropertyTypeDescription
yuko_years_as_memberIntegerYears since signup (1, 2, 3, …).
yuko_anniversary_points_awardedIntegerPoints credited.
yuko_new_balanceIntegerBalance after credit.
yuko_lifetime_points_earnedIntegerAll-time points earned.
yuko_lifetime_ordersIntegerAll-time order count.
yuko_lifetime_spendNumberAll-time spend.
yuko_current_vip_tierStringTier at the moment of award.

Anniversary Reminder

  • Klaviyo metric: Anniversary Reminder
  • Event slug: loyalty_anniversary_reminder
  • When it fires: A configurable number of days before the customer’s anniversary.
Same properties as Customer Anniversary — Klaviyo can pre-announce.

VIP Tier events

VIP Tier Entry

  • Klaviyo metric: VIP Tier Entry
  • Event slug: vip_tier_entry
  • When it fires: A customer is assigned a tier for the first time (typically the base tier on signup).
PropertyTypeDescription
yuko_tier_nameStringThe tier the customer entered.
yuko_tier_idStringUUID of the tier.
yuko_tier_icon_urlStringTier icon URL — use as <img src="\{\{ event.yuko_tier_icon_url \}\}"> in emails.
yuko_tier_is_entryBooleantrue (always, for entry events).
yuko_benefits_unlockedStringComma-separated list of benefits.
yuko_all_tiersStringSerialised list of all configured tiers (for “tier ladder” displays).
yuko_next_tier_nameStringName of the tier above.
yuko_next_tier_thresholdNumberThreshold required to reach the next tier.
yuko_next_tier_amount_neededNumberHow much more is needed.
yuko_next_tier_progress_percentageNumberProgress toward next tier as a percentage.
yuko_earning_rateNumberCurrent 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 patternTypeDescription
yuko_reward_N_typeStringReward type (e.g., amount_discount, free_product, store_credit).
yuko_reward_N_valueNumberReward value (e.g., the dollar amount or percentage).
yuko_reward_N_descriptionStringHuman-readable description of the benefit.
yuko_reward_N_codeStringThe Shopify discount code issued to this customer for the benefit.
yuko_reward_N_expires_atISO 8601 stringWhen the issued discount code expires.

VIP Tier Upgrade

  • Klaviyo metric: VIP Tier Upgrade
  • Event slug: vip_tier_upgrade
  • When it fires: A customer crosses a threshold and moves up a tier.
PropertyTypeDescription
yuko_previous_tier_nameStringTier they came from.
yuko_previous_tier_idStringUUID of the previous tier.
yuko_new_tier_nameStringTier they entered.
yuko_new_tier_idStringUUID of the new tier.
yuko_new_tier_icon_urlStringNew tier’s icon URL.
yuko_qualifying_valueNumberThe customer’s qualifying value at the moment of upgrade.
yuko_threshold_crossedNumberThe threshold they crossed.
yuko_qualifying_event_typeStringWhat triggered the qualification (e.g., place_an_order).
yuko_qualifying_event_order_idStringShopify order ID, if applicable.
yuko_qualifying_event_order_totalNumberOrder total, if applicable.
yuko_benefits_unlockedStringNew benefits unlocked.
yuko_new_earning_rateNumberNew tier’s points multiplier.
yuko_previous_earning_rateNumberPrevious tier’s multiplier.
yuko_next_tier_nameStringName of the next tier above.
yuko_next_tier_thresholdNumberThreshold for the next tier.
yuko_next_tier_amount_neededNumberHow much more is needed.
yuko_next_tier_progress_percentageNumberProgress toward the next tier.
yuko_tier_stats_percentileNumberWhat percentile of customers the upgrade puts them in.
yuko_tier_stats_total_in_tierIntegerNumber of customers currently in the new tier.
yuko_all_tiersStringAll-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 patternTypeDescription
yuko_reward_N_typeStringReward type (e.g., amount_discount, free_product, store_credit).
yuko_reward_N_valueNumberReward value (e.g., the dollar amount or percentage).
yuko_reward_N_descriptionStringHuman-readable description of the benefit.
yuko_reward_N_codeStringThe Shopify discount code issued to this customer for the benefit.
yuko_reward_N_expires_atISO 8601 stringWhen the issued discount code expires.

VIP Tier Downgrade

  • Klaviyo metric: VIP Tier Downgrade
  • Event slug: vip_tier_downgrade
  • When it fires: A customer drops a tier (after a period reset or retention expiry).
PropertyTypeDescription
yuko_previous_tier_nameStringTier they came from.
yuko_new_tier_nameStringTier they’re now on.
yuko_new_tier_icon_urlStringNew tier icon URL.
yuko_qualifying_valueNumberTheir current qualifying value.
yuko_previous_thresholdNumberThe threshold of the tier they dropped from.
yuko_new_thresholdNumberThe threshold of the new (lower) tier.
yuko_shortfallNumberHow short they fell from the previous tier’s threshold.
yuko_benefits_lostStringBenefits no longer available.
yuko_benefits_retainedStringBenefits still available.
yuko_regain_tier_nameStringTier they could regain (typically the previous tier).
yuko_regain_amount_neededNumberHow much more activity is needed to regain.

VIP Tier Retained

  • Klaviyo metric: VIP Tier Retained
  • Event slug: vip_tier_retained
  • When it fires: A customer re-qualifies for their current tier within the retention window.
PropertyTypeDescription
yuko_current_tier_nameStringThe retained tier.
yuko_current_tier_icon_urlStringTier icon URL.
yuko_qualifying_valueNumberTheir qualifying value.
yuko_threshold_requiredNumberThreshold to re-qualify.
yuko_surplusNumberHow much over the threshold.
yuko_new_retention_expires_atISO 8601 stringNew retention window end.
yuko_days_before_expiryIntegerDays they were ahead of the deadline.
yuko_next_tier_nameStringTier above.
yuko_next_tier_amount_neededNumberAmount needed to reach next tier.
yuko_next_tier_progress_percentageNumberProgress toward next tier.

VIP Tier Retention Warning

  • Klaviyo metric: VIP Tier Retention Warning
  • Event slug: vip_tier_retention_warning
  • When it fires: A customer is approaching the end of their retention window without re-qualifying.
PropertyTypeDescription
yuko_current_tier_nameStringAt-risk tier.
yuko_current_tier_icon_urlStringTier icon URL.
yuko_urgencyStringUrgency tier (low, medium, high).
yuko_days_remainingIntegerDays until retention expires.
yuko_retention_expires_atISO 8601 stringExact expiry date.
yuko_qualifying_valueNumberCurrent qualifying value.
yuko_threshold_requiredNumberThreshold to re-qualify.
yuko_amount_neededNumberGap to threshold.
yuko_progress_percentageNumberProgress percentage.
yuko_at_riskBooleantrue if at risk of downgrade.
yuko_would_downgrade_toStringTier they’d drop to.
yuko_benefits_at_riskStringBenefits they’d lose.

VIP Milestone Nudge

  • Klaviyo metric: VIP Milestone Nudge
  • Event slug: vip_milestone_nudge
  • When it fires: A customer crosses a configured progress milestone toward the next tier (e.g., 50% / 75% / 90% of the way there).
PropertyTypeDescription
yuko_current_tier_nameStringCurrent tier.
yuko_next_tier_nameStringTier they’re approaching.
yuko_next_tier_icon_urlStringNext tier icon URL.
yuko_qualifying_valueNumberCurrent qualifying value.
yuko_next_thresholdNumberThreshold for the next tier.
yuko_amount_neededNumberHow much more is needed.
yuko_progress_percentageNumberProgress toward next tier.
yuko_milestone_crossedStringThe specific milestone (e.g., 90_percent).
yuko_rewards_awaitingStringRewards that unlock at the next tier.
yuko_benefits_awaitingStringBenefits that unlock.

VIP Period Start

  • Klaviyo metric: VIP Period Start
  • Event slug: vip_period_start
  • When it fires: A new calculation period begins (relevant for Rolling year and Calendar year programs).
PropertyTypeDescription
yuko_current_tier_nameStringThe tier the customer is on at period start.
yuko_current_tier_icon_urlStringTier icon URL.
yuko_period_startISO 8601 stringStart of the new period.
yuko_period_endISO 8601 stringEnd of the new period.
yuko_period_typeStringrolling_year, calendar_year, or similar.
yuko_fresh_qualifying_valueNumberReset qualifying value at period start.
yuko_threshold_to_maintainNumberThreshold to keep the current tier through the period.
yuko_has_carryoverBooleantrue if surplus from the previous period carries over.
yuko_carryover_expires_atISO 8601 stringWhen the carryover surplus expires.
yuko_previous_period_valueNumberFinal value of the prior period.
yuko_tiers_roadmapStringTiers and thresholds for the new period.

Referral events

Referrer welcome

  • Klaviyo metric: Referrer welcome
  • Event slug: referral_advocate_registered
  • When it fires: A customer becomes an advocate (referrer) — typically auto-enrolled the first time they’re eligible.
PropertyTypeDescription
yuko_referral_codeStringThe advocate’s referral code.
yuko_referral_urlStringThe advocate’s full referral URL.
yuko_friend_reward_typeStringReward type the friend will get.
yuko_friend_reward_valueNumberFriend reward value.
yuko_friend_reward_nameStringFriend reward display name.
yuko_friend_reward_descriptionStringFriend reward description.
yuko_advocate_reward_typeStringReward type the advocate gets.
yuko_advocate_reward_valueNumberAdvocate reward value.
yuko_advocate_reward_nameStringAdvocate reward display name.
yuko_advocate_reward_descriptionStringAdvocate reward description.
yuko_share_channelsArraySharing channels enabled in your program (Twitter, Facebook, Email, WhatsApp).
yuko_registration_sourceStringWhere they registered from (auto-enroll, manual).

Friend reward unlocked

  • Klaviyo metric: Friend reward unlocked
  • Event slug: referral_friend_reward_claimed
  • 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.
PropertyTypeDescription
yuko_friend_emailStringFriend’s email (matches the Klaviyo profile this fires on).
yuko_friend_first_nameStringFriend’s first name.
yuko_referral_code_usedStringThe advocate’s code the friend used.
yuko_friend_reward_typeStringReward type.
yuko_friend_reward_valueNumberReward value.
yuko_friend_reward_codeStringThe Shopify discount code issued to the friend.
yuko_friend_reward_expires_atISO 8601 stringExpiry.
yuko_friend_reward_descriptionStringDescription.
yuko_referred_byStringThe 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.
PropertyTypeCurrent placeholder valueIntended meaning (when finalised)
yuko_total_claimsInteger6Total times any friend has claimed via this advocate’s code.
yuko_total_conversionsInteger4Total of those that converted to a paid order.
yuko_claim_sourceString"referral_landing_page"Source surface where the friend clicked through.

Referral Completed

  • Klaviyo metric: Referral Completed
  • Event slug: referral_completed
  • When it fires: A referral fully completes — friend places a qualifying order and the advocate’s reward is issued.
PropertyTypeDescription
yuko_friend_emailStringFriend’s email.
yuko_friend_first_nameStringFriend’s first name.
yuko_friend_order_idStringShopify order ID.
yuko_friend_order_totalNumberOrder total.
yuko_friend_discount_usedStringThe discount code the friend used.
yuko_friend_discount_amountNumberDiscount amount applied.
yuko_advocate_reward_typeStringAdvocate reward type.
yuko_advocate_reward_valueNumberAdvocate reward value.
yuko_advocate_reward_codeStringAdvocate’s discount code (if reward is a discount).
yuko_advocate_reward_expires_atISO 8601 stringExpiry.
yuko_advocate_reward_statusStringStatus.
yuko_stat_total_referralsIntegerAdvocate’s total referrals to date.
yuko_stat_successful_referralsIntegerAdvocate’s successful referrals.
yuko_stat_total_earnedIntegerTotal points / value earned by the advocate via referrals.
yuko_stat_pending_rewardsIntegerReferrals still pending.

Referrer Rewarded

  • Klaviyo metric: Referrer Rewarded
  • Event slug: referral_advocate_rewarded
  • When it fires: Yuko issues the advocate’s reward after a successful referral.
PropertyTypeDescription
yuko_reward_typeStringReward type (e.g., points, amount_discount, store_credit).
yuko_reward_valueNumberReward value.
yuko_reward_codeStringDiscount code (if applicable).
yuko_reward_expires_atISO 8601 stringExpiry.
yuko_triggered_by_friendStringFriend’s name / email that triggered this reward.
yuko_stat_total_referralsIntegerAdvocate’s total referrals.
yuko_stat_successful_referralsIntegerSuccessful referrals.
yuko_stat_total_earnedIntegerTotal earnings via referrals.
yuko_points_awardedIntegerIf the reward type is points, how many were credited.
yuko_new_points_balanceIntegerUpdated points balance (if reward was points).
yuko_reward_descriptionStringHuman-readable description.

Membership events

Membership Subscribed

  • Klaviyo metric: Membership Subscribed
  • Event slug: membership_subscribed
  • When it fires: A customer purchases a membership plan and the contract becomes active.
PropertyTypeDescription
yuko_membership_tier_nameStringPlan name.
yuko_membership_tier_idStringPlan UUID.
yuko_membership_priceNumberPlan price.
yuko_membership_billing_intervalStringmonthly or annually.
yuko_membership_icon_urlStringPlan icon URL.
yuko_benefit_1StringFirst benefit title.
yuko_benefit_2StringSecond benefit title.
yuko_benefit_3StringThird benefit title.
yuko_benefit_4StringFourth benefit title.
yuko_signup_reward_typeStringWelcome reward type, if configured.
yuko_signup_reward_valueNumberWelcome reward value.
yuko_signup_reward_codeStringWelcome reward code.
yuko_signup_reward_expires_atISO 8601 stringWelcome reward expiry.
yuko_signup_points_awardedIntegerBonus points credited at signup.
yuko_next_billing_dateISO 8601 stringWhen the next renewal will charge.
yuko_signup_sourceStringWhere the signup came from.

Membership Upgraded

  • Klaviyo metric: Membership Upgraded
  • Event slug: membership_upgraded
  • When it fires: Customer moves from one plan to a higher-priced plan.
PropertyTypeDescription
yuko_previous_membership_tierStringOld plan name.
yuko_previous_membership_priceNumberOld plan price.
yuko_new_membership_tierStringNew plan name.
yuko_new_membership_priceNumberNew plan price.
yuko_new_membership_billing_intervalStringNew billing interval.
yuko_new_benefitsStringNewly unlocked benefits.
yuko_upgrade_reward_typeStringUpgrade reward type, if configured.
yuko_upgrade_reward_valueNumberUpgrade reward value.
yuko_upgrade_reward_codeStringUpgrade reward code.
yuko_upgrade_reward_expires_atISO 8601 stringUpgrade reward expiry.

Membership Downgraded

  • Klaviyo metric: Membership Downgraded
  • Event slug: membership_downgraded
  • When it fires: Customer moves to a lower-priced plan.
PropertyTypeDescription
yuko_previous_membership_tierStringOld plan.
yuko_previous_membership_priceNumberOld plan price.
yuko_new_membership_tierStringNew plan.
yuko_new_membership_priceNumberNew plan price.
yuko_new_membership_billing_intervalStringNew billing interval.
yuko_benefits_lostStringBenefits no longer available.
yuko_benefits_retainedStringBenefits still active.
yuko_upgrade_tier_nameStringThe plan they could re-upgrade to.
yuko_upgrade_price_differenceNumberPrice difference to re-upgrade.

Membership Cancelled

  • Klaviyo metric: Membership Cancelled
  • Event slug: membership_cancelled
  • When it fires: Customer cancels their plan.
PropertyTypeDescription
yuko_membership_tier_nameStringPlan name.
yuko_membership_priceNumberPlan price.
yuko_membership_billing_intervalStringBilling interval.
yuko_months_as_memberIntegerHow long they were a member.
yuko_benefits_ending_atISO 8601 stringWhen their benefits stop.
yuko_benefits_losingStringBenefits they lose.
yuko_total_savings_from_membershipNumberTotal they saved while a member.
yuko_cancellation_reasonStringReason captured at cancellation.
yuko_points_balance_retainedIntegerPoints balance kept after cancellation.
yuko_vip_tier_retainedStringVIP tier retained, if any.

Membership Reactivated

  • Klaviyo metric: Membership Reactivated
  • Event slug: membership_reactivated
  • When it fires: A previously-cancelled customer signs up again.
PropertyTypeDescription
yuko_membership_tier_nameStringPlan name.
yuko_membership_priceNumberPlan price.
yuko_membership_billing_intervalStringBilling interval.
yuko_days_since_cancellationIntegerDays since they cancelled.
yuko_benefits_restoredStringBenefits restored.
yuko_welcome_back_reward_typeStringReactivation bonus type.
yuko_welcome_back_reward_valueNumberReactivation bonus value.
yuko_welcome_back_reward_codeStringReactivation bonus code.
yuko_points_balanceIntegerCurrent points balance.

Reviews events

The Reviews documentation is reorganised in v1.1. The two events below are already enabled and forward to Klaviyo today.

Review Submitted

  • Klaviyo metric: Review Submitted
  • Event slug: review_submitted
  • When it fires: A customer submits a product review.
PropertyTypeDescription
yuko_review_uuidStringReview UUID.
yuko_emailStringReview author email.
yuko_ratingInteger1–5 rating.
yuko_statusStringStatus (e.g., pending, approved).
yuko_review_titleStringReview title.
yuko_review_contentStringReview body.
yuko_platform_product_idStringShopify product ID.
yuko_platform_variation_idStringShopify variant ID.
yuko_product_nameStringProduct name.
yuko_created_atISO 8601 stringSubmission timestamp.
yuko_has_mediaBooleantrue if review has media.
yuko_has_photosBooleantrue if photos.
yuko_has_videosBooleantrue if videos.
yuko_is_verifiedBooleantrue if verified buyer.

Question Submitted

  • Klaviyo metric: Question Submitted
  • Event slug: question_submitted
  • When it fires: A customer submits a product Q&A question.
PropertyTypeDescription
yuko_question_uuidStringQuestion UUID.
yuko_question_contentStringQuestion text.
yuko_question_statusStringStatus.
yuko_question_author_emailStringAuthor email.
yuko_created_atISO 8601 stringSubmission timestamp.
yuko_platform_product_idStringShopify product ID.
yuko_product_nameStringProduct name.

Using profile + event data in Klaviyo

Segments

Build segments using profile properties. Examples:
  • Diamond VIPsperson.yuko_vip_tier == "Diamond"
  • VIPs at riskperson.yuko_vip_at_risk == true
  • Customers with 500+ unredeemed pointsperson.yuko_points_balance >= 500
  • Active membersperson.yuko_membership_status == "active"
  • Has not redeemed in 30 days — combine with Klaviyo’s Last metric date using Redeem Points.

Dynamic email content

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 \}\}.
Reference event properties inside flow-triggered emails:
Welcome to \{\{ event.yuko_new_tier_name \}\}!

You unlocked: \{\{ event.yuko_benefits_unlocked \}\}
Your new earning rate is \{\{ event.yuko_new_earning_rate \}\}x points.

Flows

A common pattern: trigger a flow on a Yuko event, send an email built around event properties, exit. Most useful triggers:
  • VIP Tier Upgrade → Send a celebratory tier email with yuko_benefits_unlocked, yuko_new_earning_rate, and the per-benefit yuko_reward_N_code values.
  • Points Expiring Reminder → Send a redemption nudge with yuko_points_at_risk, yuko_expires_at, and yuko_available_reward_1_name.
  • Referral Completed → Thank the advocate, surface yuko_stat_successful_referrals for a count.
  • Membership Cancelled → Win-back flow using yuko_total_savings_from_membership to remind them of value.

Best practices

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.

FAQs

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.
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.
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.
Yes — open the Klaviyo integration in Yuko and toggle individual events off. Profile sync continues regardless.
Use Klaviyo’s profile lookup by external_id. Yuko writes external_id = Shopify customer ID on every profile.
No — Klaviyo events are immutable. If a points credit is reversed, Yuko fires a new Points Adjusted event with yuko_adjustment_direction = debit.
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.
Not in v1 — one Klaviyo account per Yuko organisation. If you operate multi-store, contact support.

REST API

Read and write Yuko data programmatically.

Webhooks

Receive real-time event notifications.

Shopify Flow

Trigger Shopify Flow workflows from Yuko events.

Klaviyo

Sync customers, points and tier data into Klaviyo.

Omnisend

Sync loyalty data into Omnisend.

Engati

Conversational AI for loyalty events.

KwikEngage

Multi-channel messaging (SMS, WhatsApp).

Retainful

Email marketing & abandoned cart recovery.

Facebook & Instagram

Social verification for like / follow campaigns.

Google Business

Google Business profile and reviews.

Custom Apps

OAuth or API-key based custom integrations.

Book a Free Setup Call

Talk to our team for personalised setup help.Time: 30 minutes

Contact Support

Visit our support hub for help articles, live chat and ticket submission.

Browse the Guides

Documentation across loyalty, referrals, memberships and more.

Install Yuko

Add Yuko to your Shopify store from the Shopify App Store.