Klaviyo events
Use Rivo events to build Klaviyo flows around loyalty earnings, referrals, memberships, cashback, and more. This reference covers all 38 named metrics and the information each can carry, including metrics with delivery limitations.
Before you start
Connect Klaviyo and switch the integration ON. Your account must have access to Klaviyo events. Enable each available event you need under Custom Events Trigger, then save. Event switches start off. Program-specific events also need the corresponding program and qualifying customer activity. If a setting is missing, contact your Rivo point of contact to check availability.
For connection instructions, see Klaviyo integration.
Availability exceptions: Membership Payment Success, Loyalty Gift Processed, and Virtual Gift Card Reminder are included for reference, but do not currently have normal automatic delivery. Read their individual availability notes before building a flow. Seeing a metric or sample event in Klaviyo does not prove that future customer actions will trigger it.
Rivo needs a Klaviyo profile for the customer receiving a live event. It uses an existing profile ID or attempts to sync the profile first. If it cannot obtain that ID, it does not send the live event. Profile synchronization does not replay historical events.
How to read the payloads
Each example below is a complete event body using fictional customers and identifiers:
data.typeisevent.data.attributes.propertiescontains the event properties listed in that event’s field reference.data.attributes.metric.data.typeismetric;data.attributes.metric.data.attributes.nameis the exact Klaviyo metric name.data.attributes.profile.data.typeisprofile; itsidis the Klaviyo profile ID, andattributes.emailidentifies the customer receiving the event.
The profile ID and email are separate from event properties. Other Rivo profile properties, such as the customer’s current points balance, are synchronized separately and are not added to this event body. An event property called customer_id is a Shopify customer ID, not the Klaviyo profile ID. Rivo does not add a top-level event time, value, or unique ID to these bodies.
Values and missing fields: A field marked optional is omitted when its condition does not apply. A nullable field remains present with null when its value is unavailable. Some text fields instead use an empty string (""). Credit earnings are decimal strings in JSON, such as "12.5"; point earnings are integers. Some stores with an older credit-event configuration receive credit earnings under the Points metrics, with a decimal-string earnings_amount. Gift-card values, membership prices, and transferred credit amounts are numbers. Currency-formatted strings use your store’s money format. Timestamps include a time-zone offset; date-only fields use the formats stated below. Examples use USD and fictional dates.
Normal live events include a profile ID. Some connection/setup samples can instead include "id": null with the sample email. Sample events do not necessarily cover every metric.
Loyalty earnings
Earned events describe approved earnings; Pending events describe earnings awaiting approval. The matching event switch is required for each. Manual adjustments, imports, resets, migrations, point purchases, and POS adjustments are excluded unless manual earning events are allowed for your integration. Expiry and revoked earnings are excluded. Negative point changes are excluded from the Points events. Zero earnings and campaign-drop earnings do not generate these automatic events. CSV updates can suppress Klaviyo events even when manual earning events are allowed.
Rivo Points Earned
Triggered when a qualifying loyalty earning is approved. Requires a qualifying earning action and Points Earned enabled.
Event property | Meaning and availability |
| Name of the earning action. Custom actions and visit-a-URL actions use their configured completion text. |
| Amount associated with this earning, not the customer’s total balance. |
| Next VIP tier qualification threshold, as an integer; |
| Remaining qualification amount (spend, earnings, or qualifying product count) needed for the next VIP tier, according to your VIP qualification method; |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "trigger_name": "Placed an order", "earnings_amount": 150, "next_vip_tier_threshold": 1000, "needed_for_next_vip_tier": 250 }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Points Earned"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Points Pending
Triggered when an earning is created awaiting approval. Requires delayed approval and Points Pending enabled. Approval can later generate the separate Earned event.
Event property | Meaning and availability |
| Name of the earning action. Custom actions and visit-a-URL actions use their configured completion text. |
| Amount associated with this earning, not the customer’s total balance. |
| Next VIP tier qualification threshold, as an integer; |
| Remaining qualification amount (spend, earnings, or qualifying product count) needed for the next VIP tier, according to your VIP qualification method; |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "trigger_name": "Placed an order", "earnings_amount": 150, "next_vip_tier_threshold": 0, "needed_for_next_vip_tier": 0 }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Points Pending"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Credits Earned
Triggered when qualifying credit earnings are approved. Requires credit earning events to be available for your account and Credits Earned enabled.
This example shows gift-card credit with an expiry. Non-gift-card credit omits loyalty_card_code; gift-card credit without an available code includes it as null. Earnings without an expiry omit reward_expiration_date. earnings_amount is a decimal string for credit earnings.
Event property | Meaning and availability |
| Name of the earning action. Custom actions and visit-a-URL actions use their configured completion text. |
| Amount associated with this earning, not the customer’s total balance. |
| Next VIP tier qualification threshold, as an integer; |
| Remaining qualification amount (spend, earnings, or qualifying product count) needed for the next VIP tier, according to your VIP qualification method; |
| Earning amount in your store’s money format. |
| Optional: included for gift-card credit earnings; |
| Optional: included when this earning has an expiry date, as |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "trigger_name": "Placed an order", "earnings_amount": "12.5", "next_vip_tier_threshold": 1000, "needed_for_next_vip_tier": 250, "formatted_earnings_amount": "$12.50", "loyalty_card_code": "EXAMPLE-CREDIT-1234", "reward_expiration_date": "2027-09-10" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Credits Earned"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Credits Pending
Triggered when credit earnings are created awaiting approval. Requires delayed approval, credit earning events available for your account, and Credits Pending enabled.
This gift-card credit example has an expiry but no code yet, so loyalty_card_code is null. Other credit types omit that key. Earnings without an expiry omit reward_expiration_date. Pending amounts are not yet available to spend.
Event property | Meaning and availability |
| Name of the earning action. Custom actions and visit-a-URL actions use their configured completion text. |
| Amount associated with this earning, not the customer’s total balance. |
| Next VIP tier qualification threshold, as an integer; |
| Remaining qualification amount (spend, earnings, or qualifying product count) needed for the next VIP tier, according to your VIP qualification method; |
| Earning amount in your store’s money format. |
| Optional: included for gift-card credit earnings; |
| Optional: included when this earning has an expiry date, as |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "trigger_name": "Placed an order", "earnings_amount": "12.5", "next_vip_tier_threshold": 0, "needed_for_next_vip_tier": 0, "formatted_earnings_amount": "$12.50", "loyalty_card_code": null, "reward_expiration_date": "2027-09-10" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Credits Pending"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}VIP tiers
Rivo Customer Moves Up A Tier
Triggered when a customer moves to a higher VIP tier. Requires VIP tiers and Customer Moves Up A Tier enabled.
This example shows entry into the highest tier.
Event property | Meaning and availability |
| Name of the tier the customer has entered. |
| Next VIP tier qualification threshold, as an integer; |
| Remaining qualification amount (spend, earnings, or qualifying product count) needed for the next VIP tier, according to your VIP qualification method; |
| Name of the next available tier; |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "vip_tier_name": "Gold", "next_vip_tier_threshold": 0, "needed_for_next_vip_tier": 0, "next_vip_tier_name": null }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Customer Moves Up A Tier"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Customer Moves Down A Tier
Triggered when a customer moves to a lower VIP tier. Requires VIP tiers and Customer Moves Down A Tier enabled.
Event property | Meaning and availability |
| Name of the tier the customer has entered. |
| Next VIP tier qualification threshold, as an integer; |
| Remaining qualification amount (spend, earnings, or qualifying product count) needed for the next VIP tier, according to your VIP qualification method; |
| Name of the next available tier; |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "vip_tier_name": "Silver", "next_vip_tier_threshold": 1000, "needed_for_next_vip_tier": 400, "next_vip_tier_name": "Gold" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Customer Moves Down A Tier"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rewards and birthdays
Rivo Reward Redeemed
Triggered when a customer redeems for a reward. Requires a reward redemption and Reward Redeemed enabled.
Event property | Meaning and availability |
| Reward name; empty string if unavailable. |
| Issued reward code; empty string if unavailable. |
| Reward terms as text; empty string if no terms apply or no reward is available. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "reward_name": "$5 off", "reward_code": "EXAMPLE-SAVE5", "reward_tos": "" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Reward Redeemed"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Customer Birthday
Triggered when birthday earnings are awarded. Requires a qualifying birthday earning action and Celebrate Birthday enabled. This is separate from capturing a date of birth.
Event property | Meaning and availability |
| Birthday earning amount: integer for points, decimal string for credits. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "earnings_amount": 100 }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Customer Birthday"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Birthday Captured
Triggered when a customer’s birthday is first added, rather than on later birthday edits. Requires Birthday Captured enabled.
Event property | Meaning and availability |
| Captured birthday in month-day format ( |
| Timestamp when the birthday was updated; can be |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "dob": "09-10", "captured_at": "2026-09-10T12:00:00.000Z" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Birthday Captured"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Expiry notifications
Requires the applicable reward, points, or credit expiry setup and the matching Klaviyo notification switch. Warning and Last Chance are separate reminder stages, normally 30 days and three days before expiry. Reward reminders require an unused expiring reward; points and credits reminders require eligible expiring earnings. The Klaviyo event switch is separate from Rivo’s native email switch. Use the exact metric names below: all Last Chance metrics include Expiry. The event properties do not contain a reward code or the customer’s full balance.
Rivo Notification Reward Expiry Warning
Triggered at the expiry warning stage for an expiring redeemed reward. Requires reward expiry and Notification Reward Expiry Warning enabled.
Event property | Meaning and availability |
| Name of the expiring reward; empty string if unavailable. |
| Approximate time until expiry in hours or days, such as |
| Expiry date in day-with-suffix format, such as |
| Expiry date using your store’s configured date format and time zone. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "reward_name": "$5 off", "time_until_expiry": "30 days", "expiry_date": "3rd Oct 2026", "expiry_date_formatted": "October 3, 2026" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Notification Reward Expiry Warning"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Notification Reward Expiry Last Chance
Triggered at the last-chance expiry reminder stage for an expiring redeemed reward. Requires reward expiry and Notification Reward Expiry Last Chance enabled.
Event property | Meaning and availability |
| Name of the expiring reward; empty string if unavailable. |
| Approximate time until expiry in hours or days, such as |
| Expiry date in day-with-suffix format, such as |
| Expiry date using your store’s configured date format and time zone. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "reward_name": "$5 off", "time_until_expiry": "3 days", "expiry_date": "3rd Oct 2026", "expiry_date_formatted": "October 3, 2026" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Notification Reward Expiry Last Chance"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Notification Points Expiry Warning
Triggered at the expiry warning stage for points. Requires points expiry and Notification Points Expiry Warning enabled.
Points expiry notifications do not include an expiring-points amount.
Event property | Meaning and availability |
| Approximate time until expiry in hours or days, such as |
| Expiry date in day-with-suffix format, such as |
| Expiry date using your store’s configured date format and time zone. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "time_until_expiry": "30 days", "expiry_date": "3rd Oct 2026", "expiry_date_formatted": "October 3, 2026" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Notification Points Expiry Warning"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Notification Points Expiry Last Chance
Triggered at the last-chance expiry reminder stage for points. Requires points expiry and Notification Points Expiry Last Chance enabled.
Points expiry notifications do not include an expiring-points amount.
Event property | Meaning and availability |
| Approximate time until expiry in hours or days, such as |
| Expiry date in day-with-suffix format, such as |
| Expiry date using your store’s configured date format and time zone. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "time_until_expiry": "3 days", "expiry_date": "3rd Oct 2026", "expiry_date_formatted": "October 3, 2026" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Notification Points Expiry Last Chance"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Notification Credits Expiry Warning
Triggered at the expiry warning stage for credits. Requires credits expiry and Notification Credits Expiry Warning enabled.
Event property | Meaning and availability |
| Credit amount covered by this expiry notification, as a string with two decimal places. For an individual earning notification, this is that earning’s amount. |
| The same credit amount in your store’s money format. |
| Approximate time until expiry in hours or days, such as |
| Expiry date in day-with-suffix format, such as |
| Expiry date using your store’s configured date format and time zone. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "expiry_amount": "12.50", "formatted_expiry_amount": "$12.50", "time_until_expiry": "30 days", "expiry_date": "3rd Oct 2026", "expiry_date_formatted": "October 3, 2026" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Notification Credits Expiry Warning"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Notification Credits Expiry Last Chance
Triggered at the last-chance expiry reminder stage for credits. Requires credits expiry and Notification Credits Expiry Last Chance enabled.
Event property | Meaning and availability |
| Credit amount covered by this expiry notification, as a string with two decimal places. For an individual earning notification, this is that earning’s amount. |
| The same credit amount in your store’s money format. |
| Approximate time until expiry in hours or days, such as |
| Expiry date in day-with-suffix format, such as |
| Expiry date using your store’s configured date format and time zone. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "expiry_amount": "12.50", "formatted_expiry_amount": "$12.50", "time_until_expiry": "3 days", "expiry_date": "3rd Oct 2026", "expiry_date_formatted": "October 3, 2026" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Notification Credits Expiry Last Chance"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Referrals
Rivo Advocate Signup
Triggered when a customer signs up as a referral advocate. Requires a recent advocate opt-in (within the past hour), no previous corresponding signup message, and Advocate Signup enabled. Sent to the advocate’s profile.
Event property | Meaning and availability |
| The advocate’s shareable referral URL. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "referral_link": "https://store.example.com/?rvo_ref=example123" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Advocate Signup"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Referral Completed
Triggered when a referral completes. Requires a qualifying referral and Referral Completed enabled. Sent to the advocate’s profile.
Event property | Meaning and availability |
| Referred friend’s email; empty string if unavailable. |
| Total number of completed referrals for this advocate when the event is prepared. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "friend_email": "[email protected]", "referrals_completed": 3 }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Referral Completed"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Referral Friend Claim
Triggered when the referred friend claims the referral offer. Requires a referral offer and Friend Claim enabled. Sent to the friend’s profile.
Reward details come from the referral campaign’s friend reward, or the store’s friend reward for referrals without a campaign.
Event property | Meaning and availability |
| Referred friend’s email. |
| Reward name; empty string if unavailable. |
| Issued reward code; empty string if unavailable. |
| Reward terms as text; empty string if no terms apply or no reward is available. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "friend_email": "[email protected]", "reward_name": "$10 off your first order", "reward_code": "EXAMPLE-FRIEND10", "reward_tos": "" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Referral Friend Claim"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Referral Invite Friend
Triggered when an advocate creates a referral invitation. Requires referral invitations and Invite Friend enabled. Sent to the advocate’s profile; friend_email is event data, not the profile receiving this event.
Event property | Meaning and availability |
| Advocate’s full name; empty string if unavailable. |
| Campaign’s friend reward name; empty string if unavailable. |
| Email address entered for the invited friend. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "advocate_name": "Alex Morgan", "reward_name": "$10 off your first order", "friend_email": "[email protected]" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Referral Invite Friend"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Customer accounts
Rivo Customer Account Activated
Triggered on first account activation. Requires Customer Account Activated enabled. Historical activations older than one day do not trigger this event.
Event property | Meaning and availability |
| Customer’s account activation timestamp. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "account_activated_at": "2026-09-10T12:00:00.000Z" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Customer Account Activated"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Product Added To Favorites
Triggered when a customer adds a product to favorites. Requires the favorites experience and Product Added To Favorites enabled.
Event property | Meaning and availability |
| Shopify product ID, sent as a string. |
| Product title; empty string if unavailable. |
| Storefront product URL; empty string if the product handle or store domain is unavailable. |
| Product image URL; empty string if unavailable. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "product_id": "8123456789012", "product_name": "Canvas Weekend Tote", "product_url": "https://store.example.com/products/canvas-weekend-tote", "product_image_url": "https://store.example.com/images/canvas-weekend-tote.jpg" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Product Added To Favorites"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Memberships
Requires a membership program and the relevant membership action, plus the matching event enabled in Membership Events. A visible switch alone does not guarantee delivery: see Membership Payment Success below. Membership IDs in event properties are separate from the Klaviyo profile ID. Billing interval values are daily, weekly, monthly, quarterly, semi_annually, annually, or one_time.
Rivo Membership Signup
Triggered when a customer is enrolled in a membership tier. Requires Membership Signup enabled.
Event property | Meaning and availability |
| Membership start timestamp; nullable. |
| Shopify customer ID. |
| Rivo membership tier ID; nullable. |
| Membership tier name; |
| Tier price as a number in store currency; nullable. |
| Tier billing interval; nullable. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "signed_up_at": "2026-09-10T12:00:00Z", "customer_id": 7123456789012, "membership_tier_id": 42, "membership_tier_name": "Insiders", "membership_tier_price": 20.0, "membership_tier_billing_interval": "monthly" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Membership Signup"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Membership Canceled
Triggered when an immediate cancellation is requested. Requires a membership tier and Membership Canceled enabled. This event does not confirm that cancellation succeeded. End-of-period requests use Pending Cancellation instead.
Event property | Meaning and availability |
| Membership end timestamp, or the current time if the end time is unavailable. Note the double “l” in this property name. |
| Shopify customer ID. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "cancelled_at": "2026-09-10T12:00:00Z", "customer_id": 7123456789012 }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Membership Canceled"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Membership Pending Cancellation
Triggered when cancellation at the end of the billing period is requested. Requires a membership tier and Membership Pending Cancellation enabled. This event does not confirm that scheduling succeeded.
Event property | Meaning and availability |
| Scheduled membership end timestamp, rather than the time the customer requested cancellation; nullable. |
| Shopify customer ID. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "queued_for_cancellation_at": "2026-10-10T12:00:00Z", "customer_id": 7123456789012 }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Membership Pending Cancellation"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Membership Payment Failure
Triggered when a recently completed membership billing attempt fails. Requires an active membership tier and Membership Payment Failure enabled. Attempts completed more than 14 hours ago do not generate a new failure event.
This payload does not include an error code, error message, order ID, or tier price.
Event property | Meaning and availability |
| Membership tier name; |
| Billing attempt number; can be |
| Billing attempt completion timestamp; nullable. |
| Failure timestamp, matching |
| Legacy alias of |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "membership_tier_name": "Insiders", "attempt_number": 1, "completed_at": "2026-09-10T12:00:00Z", "failure_at": "2026-09-10T12:00:00Z", "failed_at": "2026-09-10T12:00:00Z" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Membership Payment Failure"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Membership Payment Success
Availability: reference only. Although a Membership Payment Success switch exists, normal Klaviyo delivery does not currently send this metric. Use Rivo Membership Successful Rebill for successful billing events.
The example documents the available payment-success payload format; it is not a promise of automatic delivery.
Event property | Meaning and availability |
| Membership tier name; |
| Billing attempt number; can be |
| Billing attempt completion timestamp; nullable. |
| Success timestamp, matching |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "membership_tier_name": "Insiders", "attempt_number": 2, "completed_at": "2026-09-11T12:00:00Z", "succeeded_at": "2026-09-11T12:00:00Z" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Membership Payment Success"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Membership Renewal Notice
Triggered when a pre-renewal reminder is processed for an upcoming membership billing date. Requires configured warning or final reminder days, an active membership and subscription, and Membership Renewal Notice enabled. The next billing date must be between 12 hours and 60 days away. Queued cancellations, a cancellation request in the past 30 days, or a same-stage reminder in the past five days exclude a membership. Membership migration mode normally suppresses reminders. Both reminder stages use this metric, independently of the Rivo renewal email switch.
Event property | Meaning and availability |
| Upcoming billing timestamp; nullable. |
| Membership tier name; |
| Alias of |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "next_billing_date": "2026-10-10T12:00:00Z", "membership_tier_name": "Insiders", "renewal_date": "2026-10-10T12:00:00Z" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Membership Renewal Notice"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Membership Successful Rebill
Triggered when a membership billing attempt succeeds. Requires an active membership tier and Membership Successful Rebill enabled. Attempts completed more than 14 hours ago do not generate a new event.
Event property | Meaning and availability |
| Membership tier name; |
| Billing attempt number; can be |
| Billing attempt completion timestamp; nullable. |
| Membership tier billing interval; nullable. |
| Next billing timestamp available when the event is prepared; nullable. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "membership_tier_name": "Insiders", "attempt_number": 1, "completed_at": "2026-09-10T12:00:00Z", "billing_interval": "monthly", "next_billing_date": "2026-10-10T12:00:00Z" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Membership Successful Rebill"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Membership Paused
Triggered when a membership is paused. Requires a membership that can be paused and Membership Paused enabled.
Event property | Meaning and availability |
| Membership tier name; |
| Most recent subscription pause timestamp; nullable. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "membership_tier_name": "Insiders", "paused_at": "2026-09-10T12:00:00Z" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Membership Paused"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Membership Billing Skipped
Triggered when a membership billing cycle is skipped. Requires a skippable billing cycle and Membership Billing Skipped enabled.
Event property | Meaning and availability |
| Membership tier name; |
| Most recent billing-skip timestamp; nullable. |
| Next billing timestamp after the skip; nullable. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "membership_tier_name": "Insiders", "skipped_at": "2026-09-10T12:00:00Z", "new_billing_date": "2026-11-10T12:00:00Z" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Membership Billing Skipped"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Gifts and gift cards
Rivo Loyalty Gift Processed
Availability: reference only. This metric describes a processed loyalty gift, but normal Klaviyo delivery does not currently expose an event switch for it. Do not rely on it to trigger an automatic flow.
A setup sample may create this metric for accounts with loyalty gifts. The example shows its payload format, not an automatically delivered customer event.
Event property | Meaning and availability |
| Reward name; empty string if unavailable. |
| Issued reward code; empty string if unavailable. |
| Reward terms as text; empty string if no terms apply or no reward is available. |
| Gift message; can be |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "reward_name": "$5 off", "reward_code": "EXAMPLE-GIFT5", "reward_tos": "", "message": "A little thank-you, Alex!" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Loyalty Gift Processed"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Virtual Gift Card Delivery
Triggered when a virtual gift card is delivered to its recipient. Requires a recipient, a due delivery date, and Virtual Gift Card Delivery enabled. Imported gift cards do not generate this delivery event.
Event property | Meaning and availability |
| Gift-card redemption code; can be |
| Expiry date as |
| Original issued value as a number; not the remaining balance. |
| Original gift note, or the current note if the original is blank; can be |
| Recipient’s first name; nullable. |
| Recipient’s full name; nullable. |
| Sender’s first name; nullable. |
| Sender’s full name; nullable. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "gift_card_code": "EXAMPLE-GIFT-5678", "gift_card_expires_on": "2027-09-10", "gift_card_initial_value": 50.0, "gift_card_note": "Happy birthday, Jamie!", "gift_card_recipient_first_name": "Jamie", "gift_card_recipient_full_name": "Jamie Lee", "gift_card_sender_first_name": "Alex", "gift_card_sender_full_name": "Alex Morgan" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Virtual Gift Card Delivery"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Virtual Gift Card Reminder
Availability: reference only. A Virtual Gift Card Reminder switch and payload format exist, but there is currently no automatic reminder delivery schedule for this metric. A setup sample can still create it in Klaviyo.
This example shows a gift card with no expiry. Do not assume enabling the switch schedules reminders.
Event property | Meaning and availability |
| Gift-card redemption code; can be |
| Expiry date as |
| Original issued value as a number; not the remaining balance. |
| Original gift note, or the current note if the original is blank; can be |
| Recipient’s first name; nullable. |
| Recipient’s full name; nullable. |
| Sender’s first name; nullable. |
| Sender’s full name; nullable. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "gift_card_code": "EXAMPLE-GIFT-5678", "gift_card_expires_on": null, "gift_card_initial_value": 50.0, "gift_card_note": "Happy birthday, Jamie!", "gift_card_recipient_first_name": "Jamie", "gift_card_recipient_full_name": "Jamie Lee", "gift_card_sender_first_name": "Alex", "gift_card_sender_full_name": "Alex Morgan" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Virtual Gift Card Reminder"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}Rivo Bulk Gift Card Delivery
Triggered when a bulk gift-card campaign delivers a card to a recipient. Requires a delivering bulk gift-card campaign and Bulk Gift Card Delivery enabled.
Event property | Meaning and availability |
| Original issued gift-card amount as a number. |
| Gift-card redemption code; nullable. |
| Campaign identifier; can be |
| Campaign name; nullable. |
| Original campaign gift note; nullable. |
| Optional: expiry date as |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "gift_card_amount": 25.0, "gift_card_code": "EXAMPLE-BULK-9012", "gift_card_bulk_campaign_id": 123, "gift_card_bulk_campaign_name": "Autumn Thank You", "gift_card_note": "Thanks for being part of our community!", "gift_card_expiration_date": "2027-03-10" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Bulk Gift Card Delivery"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}
Cashback
Requires Cashback available for your account, a qualifying offer/order with an associated cashback earning, and the matching switch under Cashback Events. See Cashback Offers for program setup. All three metrics include the seven shared fields below. The event name and status are separate: status is the opt-in’s current state when the event is prepared, so do not infer it solely from the metric name.
Rivo Cashback Earned Pending
Triggered when a qualifying cashback opt-in moves into Holding while approval is delayed. Requires Cashback Earned Pending enabled. Merely capturing an opt-in does not send this event.
Pending events do not include claim_url, expiry_date, or expiry_date_formatted, even if claim-only approval or an expiry is configured.
Event property | Meaning and availability |
| Exact cashback event label: |
| Associated cashback earning’s credit amount as a decimal string, not the customer’s remaining balance. |
| The same amount in your store’s money format. |
| Scheduled approval timestamp; |
| Rivo cashback offer ID. |
| Shopify order ID; can be |
| Current opt-in status: |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "trigger_name": "cashback_earned_pending", "earnings_amount": "12.5", "formatted_earnings_amount": "$12.50", "scheduled_approval_at": "2026-09-17T12:00:00Z", "cashback_offer_id": 321, "order_id": 6123456789012, "status": "holding" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Cashback Earned Pending"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}
Rivo Cashback Earned Completed
Triggered when a qualifying cashback opt-in changes to Approved. Requires Cashback Earned Completed enabled. A claim-only invitation sent before approval does not itself trigger this event.
This example has claim-only approval enabled and an expiry. Without claim-only approval, omit claim_url. Without an expiry, omit both expiry fields. The scheduled approval field remains present even when null.
Event property | Meaning and availability |
| Exact cashback event label: |
| Associated cashback earning’s credit amount as a decimal string, not the customer’s remaining balance. |
| The same amount in your store’s money format. |
| Scheduled approval timestamp; |
| Rivo cashback offer ID. |
| Shopify order ID; can be |
| Current opt-in status: |
| Optional: included only when claim-only cashback approval is enabled. Customer link to claim approval. |
| Optional: included when the earning has an expiry, such as |
| Optional: included alongside |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "trigger_name": "cashback_earned_completed", "earnings_amount": "12.5", "formatted_earnings_amount": "$12.50", "scheduled_approval_at": null, "cashback_offer_id": 321, "order_id": 6123456789012, "status": "approved", "claim_url": "https://loyalty-api.rivo.io/api/cashback_approval_redirect_link?shop_id=123456789&cashback_opt_in_id=00000000-0000-4000-8000-000000000123", "expiry_date": "3rd Oct 2026", "expiry_date_formatted": "October 3, 2026" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Cashback Earned Completed"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}
Rivo Cashback Earned Completed Reminder
Triggered for an Approved cashback opt-in last updated the configured number of reminder days ago (seven days by default). Requires a positive reminder-day setting and Cashback Earned Completed Reminder enabled. The Rivo reminder email switch can be off; the Klaviyo event is independent. A reminder already sent for that earning can suppress another send.
The reminder does not check for an unused balance. Its earnings_amount is the associated earning amount, not the amount left to spend. The same optional claim-link and expiry rules as Completed apply.
Event property | Meaning and availability |
| Exact cashback event label: |
| Associated cashback earning’s credit amount as a decimal string, not the customer’s remaining balance. |
| The same amount in your store’s money format. |
| Scheduled approval timestamp; |
| Rivo cashback offer ID. |
| Shopify order ID; can be |
| Current opt-in status: |
| Optional: included only when claim-only cashback approval is enabled. Customer link to claim approval. |
| Optional: included when the earning has an expiry, such as |
| Optional: included alongside |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "trigger_name": "cashback_earned_completed_reminder", "earnings_amount": "12.5", "formatted_earnings_amount": "$12.50", "scheduled_approval_at": null, "cashback_offer_id": 321, "order_id": 6123456789012, "status": "approved", "claim_url": "https://loyalty-api.rivo.io/api/cashback_approval_redirect_link?shop_id=123456789&cashback_opt_in_id=00000000-0000-4000-8000-000000000123", "expiry_date": "3rd Oct 2026", "expiry_date_formatted": "October 3, 2026" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Cashback Earned Completed Reminder"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}
Credit transfers
Rivo Earning Transfer Completed
Triggered when a customer-to-customer credit transfer completes. Requires credit transfers available for your store, completion notifications enabled for the transfer, and Earning Transfer Completed enabled. The switch is shown when credit transfers are available. Sent to the recipient’s profile.
Event property | Meaning and availability |
| Transferred credits as a number. |
| Transferred credits in your store’s money format. |
| Sender’s full name; nullable. |
| Sender’s email; nullable. |
| Transfer message; nullable or empty when not supplied. |
| Transfer completion timestamp; nullable. |
Example payload:
{"data": {"type": "event", "attributes": { "properties": { "credits_amount": 25.0, "formatted_credits_amount": "$25.00", "sender_name": "Alex Morgan", "sender_email": "[email protected]", "message": "Enjoy your next order!", "completed_at": "2026-09-10T12:00:00Z" }, "metric": {"data": {"type": "metric", "attributes": {"name": "Rivo Earning Transfer Completed"}}}, "profile": {"data": {"type": "profile", "id": "01K4Q8R2M6T9W3Y5A7B0C1D2EF", "attributes": {"email": "[email protected]"}}}}}}