Skip to content

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.

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

Every subscription event carries these.

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
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

profile_email, profile_first_name and profile_last_name.

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.

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