New features available! Check the changelog
Subscribfy
IntegrationsEmail Marketing

Klaviyo Integration for Product Subscriptions

Connect Subscribfy with Klaviyo to automate emails and SMS based on product subscription events

Connect Subscribfy with Klaviyo to automate emails and SMS based on product subscription events.

Product subscriptions send their own set of events and their own profile properties, separate from memberships. If you sell both, the two never overwrite each other in Klaviyo.


What You'll Get

Automated Flows

Trigger emails when a product subscription is created, paused, cancelled, or charged

Personalized Content

Include subscription status, next billing date, price, and store credit in emails

Product Details

The charge reminder carries the exact products, quantities, and prices in the upcoming order

Renewal Reminders

Tell subscribers what they will be charged, days before it happens

Failed Payment Recovery

React to failed charges with the payment error included in the event


Connect Klaviyo

One integration covers both

Klaviyo is connected once per store. The same connection sends membership events and product subscription events, so if you already connected Klaviyo for memberships there is nothing else to set up here.

Open the Klaviyo Integration

Go to SubscribfySettingsIntegrations → click Add Integration → select Klaviyo.

Click Connect with Klaviyo

Click the Connect with Klaviyo button. This redirects you to Klaviyo's authorization page.

Authorize Access

Log in to Klaviyo (if you are not already) and click Allow. You are redirected back to Subscribfy with a Connected status.

OAuth tokens refresh automatically, so there is no key to rotate.

If the connection breaks

When Klaviyo stops accepting the connection, the integration page shows a Reconnect to finish the setup banner. Until you reconnect, nothing is written into your Klaviyo account.


Events Synced to Klaviyo

Use these names exactly as written

The names below are the exact event names Subscribfy sends to Klaviyo, character for character. Copy them as-is when you pick a flow trigger or a metric filter. One of them contains a spelling that differs from the label shown in the Subscribfy admin, and Klaviyo matches on the sent name, not the label. If a flow never triggers, compare your trigger against this table first.

EventDescription
Subscribfy Product Subscription CreatedWhen a new product subscription is purchased
Subscribfy Product Subscription CancelledWhen a subscriber cancels
Subscribfy Product Subscription PausedWhen a subscriber pauses their subscription
Subscribfy Product Subscription ReactivatedWhen a paused or cancelled subscription is resumed
Subscribfy Product Subscription Succesful ChargeWhen a recurring payment succeeds. Note the single "s" in "Succesful": that is the exact name sent to Klaviyo, even though the Subscribfy admin displays it as "Successful Charge"
Subscribfy Product Subscription Failed ChargeWhen a recurring payment fails
Subscribfy Product Subscription Charge ReminderAhead of an upcoming renewal, so you can tell subscribers what is coming before they are billed

Billing Date Updated is not a trigger

When a subscriber's next billing date changes, Subscribfy refreshes the SubscribfyProductNextBillingDate property on the Klaviyo profile, but it does not send a "Subscribfy Product Subscription Billing Date Updated" metric. Do not build a flow on that name: it will never fire. Use a segment or a profile-property condition on the updated date instead, or trigger on Charge Reminder, which does fire on a schedule.

Memberships have their own events

A membership uses a different set of names (Subscribfy Membership Created, Subscribfy Membership Charge Reminder, and so on) and its own profile properties. See the Klaviyo Integration for Memberships page for those, along with the churn, win-back, loyalty, and store credit events.


Profile Properties

Subscribfy writes these properties onto the Klaviyo profile. Every property is prefixed with SubscribfyProduct, so they never collide with the membership properties on the same profile.

PropertyKlaviyo TagNotes
Subscription Status{{ person|lookup:"SubscribfyProductStatus"|default:"" }}ACTIVE, PAUSED, or CANCELLED
Next Billing Date{{ person|lookup:"SubscribfyProductNextBillingDate"|format_date_string|default:"" }}Unix timestamp of the next charge
Store Credit Balance{{ person|lookup:"SubscribfyProductStoreCredit"|default:"" }}The subscriber's current balance, including pending credit
Manage Page Link{{ person|lookup:"SubscribfyProductManagePageLink"|default:"" }}Link to the subscriber's management page
Discounted Price{{ person|lookup:"SubscribfyProductPrice"|default:"" }}What the subscriber actually pays per cycle, after all active discounts
Initial Price{{ person|lookup:"SubscribfyProductInitialPrice"|default:"" }}The price before discounts, so you can show a strike-through original amount
Total Discounts{{ person|lookup:"SubscribfyProductTotalDiscounts"|default:"" }}The total amount discounted off the price
Currency{{ person|lookup:"SubscribfyProductCurrencyCode"|default:"" }}The currency the subscriber is billed in

When each property is written

PropertyUpdated on
StatusCreated, Cancelled, Paused, Reactivated, Successful Charge, Failed Charge
Store Credit, Manage Page Link, Price, Initial Price, Total Discounts, CurrencyEvery event above, whenever the value is available
Next Billing DateCreated, Successful Charge, and whenever the billing date changes

Store currency properties are membership-only

Memberships also expose SubscribfyMembershipStoreCurrencyInitialPrice and SubscribfyMembershipStoreCurrencyCode for reporting in your store's base currency. Product subscriptions do not have those two properties; use SubscribfyProductCurrencyCode, which is the currency the customer is charged in.


Charge Reminder Properties

For the Subscribfy Product Subscription Charge Reminder event, these properties are available on the event itself. Use them to show exactly what is about to ship and what it will cost.

PropertyKlaviyo TagNotes
Next Billing Date{{ event.NextBillingDate|default:'' }}The date the subscriber will be charged
Price{{ event.Price|default:'' }}The amount they will pay, after all active discounts
Initial Price{{ event.InitialPrice|default:'' }}The price before discounts
Total Discounts{{ event.TotalDiscounts|default:'' }}The total amount discounted off this charge
Currency{{ event.Currency|default:'' }}The currency they are billed in
Product Name{{ event.ProductName|default:'' }}The subscription plan name
Months Active{{ event.MonthsActive|default:'' }}How many months they have been subscribed
Store Credit{{ event.StoreCredit|default:'' }}Their current store credit balance
Manage Membership Link{{ event.ManageMembershipLink|default:'' }}Link to their management page
Products{{ event.Products|default:'' }}The line items in the upcoming order (see below)

The Products list

event.Products is a list, one entry per line item on the subscription. Loop over it to build a product table inside the reminder email:

{% for product in event.Products %}
  {{ product.title }} x{{ product.quantity }} - {{ product.price }} {{ product.currency }}
{% endfor %}
FieldDescription
titleProduct title
quantityHow many units are in the upcoming order
priceCurrent line price
currencyLine currency code
variantGidShopify variant ID, for deep links or image lookups
productGidShopify product ID

Only product subscriptions carry Products

The membership charge reminder uses the same event shape but leaves Products empty, because a membership is a plan rather than a basket of items. This list is what makes the product subscription reminder worth building separately.


Failed Charge Properties

PropertyKlaviyo TagNotes
Billing Error Message{{ event.billing_error_message|default:'' }}The payment error returned by Shopify, when one is available

Status stays ACTIVE after a failed charge

A failed charge does not cancel the subscription, so SubscribfyProductStatus remains ACTIVE. Branch your dunning flow on the Failed Charge event itself, not on the status property.


Set the Renewal Reminder Window

The Charge Reminder event fires on a daily schedule, a fixed number of days before the next billing date.

Open the Klaviyo details page

Go to SubscribfySettingsIntegrationsKlaviyoView Details.

Set the reminder window

In the Renewal reminder card, enter how many days before renewal the event should fire.

SettingValue
Minimum1 day
Maximum14 days
Default7 days

One window for both subscription types

This setting is shared. Changing it moves the reminder for memberships and product subscriptions together, because both reminders read the same value.


Build Your Flows

Pre-built flows cover memberships only

The Build emails tools on the Klaviyo details page provision ready-made flows for membership events (welcome, cancel, paused, reactivated, successful charge, charge reminder). There are no pre-built flows for product subscriptions yet, so create those flows yourself in Klaviyo using the event names above.

Create a new flow in Klaviyo

In Klaviyo, go to FlowsCreate FlowCreate From Scratch.

Pick the metric trigger

Choose Metric as the trigger and search for the exact event name, for example Subscribfy Product Subscription Charge Reminder.

The metric only appears in Klaviyo after Subscribfy has sent it at least once. If you cannot find it, use the Sync test events tool described in the next tab.

Build the email

Add an email action and pull in the event and profile properties from the tables above.

To make every Subscribfy metric appear in Klaviyo before any real customer triggers it, use the sync tool.

Open the Klaviyo details page

Go to SubscribfySettingsIntegrationsKlaviyoView Details.

Run Sync test events

This sends one of every Subscribfy event to your store's admin profiles in Klaviyo, so each metric becomes selectable as a flow trigger.

These are real events on real profiles. Run this before your flows are live, or the test events will trigger them.


Common Use Cases


Troubleshooting


Disconnecting from Klaviyo

  1. Go to SubscribfySettingsIntegrationsKlaviyo
  2. Click View Details
  3. Click Disconnect

This revokes the OAuth tokens and stops event syncing for both memberships and product subscriptions. Your Klaviyo data remains intact.


Was this page helpful?

On this page

AI Chat

Ask a question about Subscribfy