Klaviyo
Connect Klaviyo to send subscription events and subscriber profile properties for flows, segments and campaigns.
Subrise sends your subscription events and subscriber details to Klaviyo. Use them to trigger flows, such as a reminder before each charge or a win-back after a cancellation, and to build segments of active subscribers.
Connect Klaviyo
- Go to Settings > Integrations.
- On the Klaviyo card, click Connect.
- Click Connect with Klaviyo. Klaviyo opens in a new window.
- Log in to Klaviyo if asked, choose the account and approve access.
- Close the window when it says the connection worked. The card shows Connected.
If nothing opens, allow pop-ups for the Shopify admin in your browser and try again.
Subrise asks Klaviyo for permission to read your account and profiles, write events and profiles, and write lists.
Existing subscribers
Right after you connect, Subrise copies the subscription details of every existing subscriber to their Klaviyo profile. The card shows Syncing profiles while this runs. It can take a while for a large store, and your events start flowing straight away.
Connected with an API key
Stores that connected before Klaviyo sign-in was available used a Klaviyo private API key. Those connections keep working. The card shows Upgrade available: click Edit, then Upgrade to OAuth to switch.
If the Klaviyo form asks for an API key instead of showing Connect with Klaviyo, create a private API key in Klaviyo with full access to Events and Profiles, paste it into API key and click Connect.
Reconnect or disconnect
If Klaviyo revokes access, the card shows Disconnected and a Reconnect button. Click it to approve access again.
To stop sending data, click Disconnect on the card, then Disconnect again to confirm.
Events Subrise sends
Subrise sends two sets of events. Both show under Analytics > Metrics in Klaviyo once each event has happened at least once in your store.
Subscription lifecycle events
These use names Klaviyo recommends for subscription apps, so they fit Klaviyo's own flow templates.
| Metric | Sent when | Extra properties |
|---|---|---|
| Subscription Started | A subscription is created. | None |
| Subscription Paused | A subscription is paused. | pause_reason |
| Subscription Resumed | A paused or cancelled subscription is resumed. | None |
| Subscription Cancelled | A subscription is cancelled. | cancellation_reason, cancellation_details |
| Subscription Skipped | The next order is skipped in the admin, the customer portal or Gorgias. | old_next_charge_date, new_next_charge_date |
| Next Charge Date Changed | The next order date changes. | old_next_charge_date, new_next_charge_date |
| Frequency Changed | The subscription moves to another plan or frequency. | old_plan, new_plan |
| Upcoming Charge | Before each order, on the schedule of your upcoming order email. | days_until_charge |
| Charge Failed | A renewal charge fails. | retry_number, retries_left, is_final_retry, error_message |
| Recurring Order Processed | A renewal is charged and its order is created. | order_id, order_total. The event value is the order total. |
| Payment Method Expiring | The card saved on a subscription is about to expire. | days_until_expiry, card_brand, card_last_4, update_payment_url |
Every lifecycle event also carries:
| Property | What it holds |
|---|---|
subscription_contract_id | The subscription contract ID. |
items | One entry per product: ProductID, VariantID, SKU, ProductName, Quantity, ItemPrice, RowTotal, ImageURL, ProductURL. |
next_charge_date | The next order date, as a Unix timestamp in seconds. |
interval, interval_unit | The billing frequency, such as 1 and MONTH. |
currency, total | The subscription's currency and the price of one order. |
portal_url | The customer's link to manage the subscription. |
Subrise events
Subrise also sends the subrise_* events it sends to every email and SMS integration, such as subrise_new_subscription and subrise_failed_transaction. In Klaviyo their fields sit under one property named data, so you reference them as data.customer_email, data.subscription_id and so on.
See Integration events for every subrise_* event and its fields.
Tip
Build new flows on the lifecycle events. They carry product details in Klaviyo's format and their names never change.
Profile properties
After each lifecycle event, Subrise updates the customer's Klaviyo profile with these properties:
| Property | What it holds |
|---|---|
subrise_active_subscriber | True when the customer has at least one active subscription. |
subrise_active_subscription_count | How many active subscriptions they have. |
subrise_cancelled_subscription_count | How many of their subscriptions are cancelled. |
subrise_active_product_titles | The products on their active subscriptions. |
subrise_active_variant_ids | The variant IDs on their active subscriptions. |
subrise_next_charge_date | The soonest next order date across their active subscriptions, as a Unix timestamp in seconds. |
subrise_first_charge_at | When their first subscription started, as a Unix timestamp in seconds. |
subrise_charge_count | How many subscription orders they have been charged for. |
subrise_portal_url | The portal link for their active subscription that bills soonest. |
Use them to build segments, for example subrise_active_subscriber is true, to exclude subscribers from a subscribe-and-save campaign.
Troubleshooting
- No events in Klaviyo. Klaviyo only lists a metric after the first event of that kind. Create a test subscription on your store to send Subscription Started.
- The card shows Disconnected. Click Reconnect and approve access again. Events that happened while disconnected are not resent.
- A profile is missing properties. Profiles update after the customer's next lifecycle event. Customers with no subscription activity since you connected keep the values from the first sync.