Event properties
Gro sends each subscription event to Klaviyo as a metric you can trigger a flow on. Every event carries the full subscription, so one template can show the order, the customer’s pets or children, their next delivery and a portal link, whatever the event.
In a Klaviyo template, use {{ event.<property> }}. In a flow filter or trigger split, pick the property from the list.
Events
Section titled “Events”| Klaviyo metric | When it fires | Extra properties |
|---|---|---|
| Subscription Created | A new subscription starts | |
| Subscription Updated | Something on the subscription changes | updated, previous_values, new_values |
| Subscription Cancelled | A subscription is cancelled | reason, cancelled_by, cancellation_feedback, winback_url |
| Subscription Paused | A subscription is paused | reason, paused_by, resume_date |
| Subscription Resumed | A paused subscription restarts | resumed_by, paused_duration_days |
| Subscription Rescheduled | An order moves to a new date | previous_billing_date, new_billing_date, previous_delivery_date, new_delivery_date, rescheduled_by |
| Subscription Skipped | A whole order is skipped | skipped_date, skipped_by, skip_reason, skip_interval_value, skip_interval_unit |
| Subscription Line Skipped | One item is left out of the next order | product_title, variant_title, quantity, price, skipped_by, reason |
| Subscription Repriced | Prices on the subscription change | repriced_by, line_count, lines (with old_price and new_price) |
| Subscription Box Selections Updated | The customer changes what is in their box | previous_items, new_items, selection_deadline |
| Subscription Payment Reminder | A few days before an order is charged | billing_date, days_until_billing, payment_method_brand, payment_method_last4 |
| Subscription Payment Success | An order is charged | amount, delivery_amount, shopify_order_id, payment_method_brand, payment_method_last4 |
| Subscription Payment Failed | A charge fails | error_code, error_message, payment_method_brand, payment_method_last4 |
| Subscription Dunning Entered | Gro starts retrying a failed payment | retry_count, next_retry_at, amount, error_message |
| Subscription Dunning Recovered | A retry succeeds | retry_count, amount |
| Subscription Dunning Exhausted | Every retry has failed | final_action, max_attempts, retry_count, amount |
| Subscription Dunning Dates Advanced | Order dates move on while a payment is being retried | previous_dates, new_dates |
| Subscription Delivery Moved For Holiday | A delivery moves because a holiday closes its slot | holiday_name, previous_dates, new_dates |
| Subscription Out Of Stock | An item in the order is out of stock | out_of_stock_items, alternative_products |
| Subscription Out Of Stock Warning | An item may be short for an upcoming order | billing_date, out_of_stock_items |
| Subscription Cancel Winback Success | A customer takes an offer instead of cancelling | cancellation_reason, offer_type, discount_code |
| Subscription Reactivated | A cancelled subscription is restarted | reactivated_by, delivery_date, winback_offer_applied |
| Subscription Referral Converted | Someone subscribes with a referral link | referral_code, referrer_email, referrer_first_name, referee_email |
| Subscription Referrer Rewarded | The referrer earns their reward as store credit | referral_code, referee_email, credit_amount, credit_currency, balance_after |
| Subscription Upcoming Gift | A loyalty gift is on its way with the next order | billing_date, days_until_billing |
| Subscription Upcoming Gift Choice Needed | A loyalty gift is coming and the customer can still choose it | billing_date, days_until_billing |
Metrics show up in Klaviyo after their first event. Send test events to see them all straight away.
Store credit events
Section titled “Store credit events”Store credit belongs to the customer, not a subscription, so these events fire for anyone with credit, with or without a subscription. They don’t carry the subscription properties under On every event, just the credit row and who the customer is. They only fire while Subscriptions and store credit are on.
| Klaviyo metric | When it fires | Properties |
|---|---|---|
| Store Credit Earned | The customer earns store credit, such as from a referral | amount, currency, balance_after, source, note |
| Store Credit Adjusted | Your team adds, removes or reverses store credit | amount, currency, balance_after, reason, note |
| Store Credit Redeemed | Store credit comes off a renewal order | amount, currency, balance_after, subscription_id, shopify_order_id |
Each one also has transaction_id, type, subscription_id (when the credit was moved on a subscription), profile_email, profile_first_name and profile_last_name. The customer’s balance is on their Klaviyo profile too, as gro_credit_balance.
On every event
Section titled “On every event”Every subscription event carries these.
The subscription
Section titled “The subscription”| Property | What it holds |
|---|---|
subscription_number |
The 8 character number you see in Gro, such as 2337D04F |
subscription_status |
ACTIVE, PAUSED, CANCELLED, EXPIRED or PAYMENT_FAILED |
frequency_label |
How often it renews, such as “Every 2 weeks” |
next_billing_date, next_delivery_date |
The next charge and delivery dates |
next_delivery_label |
The next delivery date and time slot, ready to show |
delivery_slot_label |
The delivery time slot, such as “9am to 12pm” |
delivery_moved_for_holiday |
true when a holiday moved the next delivery |
holiday_moved_from_date |
The date that delivery would have been, before the holiday |
delivery_method |
shipping, local_delivery or pickup |
delivery_address, delivery_instructions |
Where it goes, and any notes |
cancellation_reason, pause_reason |
Why it was cancelled or paused, if it was |
| Property | What it holds |
|---|---|
next_charge_total |
What the next order will actually charge, with skipped items taken off and one off items added. Use this in emails |
total |
The normal recurring total. It ignores skips and one offs, so don’t use it for the next order |
skipped_items_total |
The value of items skipped from the next order |
pending_items_total |
The value of one off items added to the next order |
order_shipping_amount |
Delivery on the next order |
currency |
Such as GBP or AUD |
Items and who they are for
Section titled “Items and who they are for”| Property | What it holds |
|---|---|
lines |
Every item, with product_title, variant_title, sku, quantity, price and line_total |
lines[].is_skipping_next_order |
True when that item is skipped from the next order. See Skipping |
entities |
The pets, children or people on the subscription, with their name, type and attributes |
primary_entity |
The main one |
entity_label |
Their names, ready to show, such as “Max and Bella” |
| Property | What it holds |
|---|---|
magic_login_link |
Signs the customer straight into their portal. Lasts 30 days |
portal_token |
The token inside that link, for building your own portal links |
referral_link |
Their referral share link, when referrals are on |
loyalty_reward_upcoming |
Their next loyalty reward. For a store credit reward credit_amount is set and product_title is empty. See Rewards |
loyalty_reward_timeline |
Every gift on their schedule |
The customer
Section titled “The customer”profile_email, profile_first_name and profile_last_name.
Flat copies for filters
Section titled “Flat copies for filters”Klaviyo filters, trigger splits and segments can’t look inside lists like lines or entities. So every event also carries flat copies you can filter on directly:
| Property | What it holds |
|---|---|
entity_count, entity_types, entity_names |
How many pets or children, their types and names |
primary_entity_type, primary_entity_name |
The main one’s type and name |
primary_entity_<attribute> |
Each of the main one’s details, such as primary_entity_breed |
entities_<attribute> |
Every value of a detail across all of them, such as entities_breed |
line_skus, line_product_ids, line_variant_ids, line_product_titles, line_variant_titles |
The items as lists |
line_count, line_quantity_total |
How many items, and the total quantity |
delivery_postcode, delivery_state, delivery_country, delivery_city |
Where it is delivered |
For example, split a Subscription Created flow on primary_entity_type equals dog. If your pets have a size detail, send a large breed guide when primary_entity_size equals large.
Example: a payment reminder
Section titled “Example: a payment reminder”Hi {{ event.profile_first_name }},
Your next box for {{ event.entity_label }} goes out on {{ event.next_delivery_label }}.You'll be charged {{ event.next_charge_total }} {{ event.currency }}.
{% for line in event.lines %} {% if not line.is_skipping_next_order %} {{ line.product_title }} x{{ line.quantity }} {% endif %}{% endfor %}
<a href="{{ event.magic_login_link }}">Change or skip this order</a>Test events
Section titled “Test events”Test events carry the same properties, filled with sample data, plus _is_test_event: true. Add a flow filter on it so test events never reach a customer.
Related
Section titled “Related”- Setting up Klaviyo
- Profile properties for subscriber details on the profile itself