> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://supr-bundles-and-subscriptions.crisp.help/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Using Klaviyo

Klaviyo can send your subscription emails and texts in your own templates and languages, and we tell it what happened. When a subscription starts, renews, pauses, fails or is cancelled, we send Klaviyo an event with the subscription, its products and its dates. You build the message as a Klaviyo flow.

It is useful if your marketing already lives in Klaviyo and you want subscription messages to look and sound like the rest, or if you want to add SMS to your subscription messages.

## Connect your Klaviyo account

1. In Klaviyo, go to **Settings > Account > API keys** and create a **Private API key**. **Full Access** works. If you choose **Custom**, set **Events** to **Full** and **Accounts** to **Read**. A **Read-Only** key cannot send events. Klaviyo does not let you change a key's access afterwards, so if you picked the wrong one, create a new key.
2. Go to [**Supr Bundles & Subscriptions > Settings > Integrations > Klaviyo**](https://admin.shopify.com/apps/super-subscriptions/app/settings/integrations/klaviyo). Paste the key into **Private API key** and click **Connect**.

The page shows **Connected** with your Klaviyo account name. Nothing changes for your customers yet: we keep sending every email until you choose otherwise.

## Send a test event first

Under **Test an event**, pick a notification and a subscription, or use our sample subscription, and click **Send test event**.

The test goes to your store's contact email, not to a customer, and it is marked `test: true` so you can keep it out of a live flow. It works while we are still sending your customer emails, so you can build your flows first and switch the sender afterwards.

A metric appears in Klaviyo once its first event has arrived, which is what the test is for. Klaviyo takes a few seconds, so reload if it is not there straight away.

## Build a flow for each event

In Klaviyo, create a flow and choose a **Metric** as the trigger. Each notification arrives as its own metric:

| Metric in Klaviyo | Sent when |
|---|---|
| Subscription Started | A subscription is started |
| Subscription Restarted | A subscription is reactivated |
| Subscription Paused | A subscription is paused |
| Subscription Cancelled | A subscription is cancelled |
| Subscription Renewed | A subscription is successfully renewed |
| Subscription Updated | A subscription is changed |
| Subscription Next Order Date Changed | The next order date is changed |
| Subscription Renewing Soon | Before a subscription renews, at the lead time you choose |
| Subscription Price Changed | The price of a subscription changes |
| Subscription Item Out Of Stock | An item on an upcoming renewal is out of stock |
| Subscription Failed | A subscription fails |
| Subscription Payment Failed | A renewal fails because of the customer's payment, so they need to fix their card |
| Subscription Renewal Failed | A renewal fails for a reason the customer cannot fix |
| Subscription Pause Reminder | A few days after a subscription is paused |
| Subscription Pause Win-Back | A paused customer is sent an offer to come back |
| Subscription Resuming Soon | A few days before a paused subscription resumes by itself |
| Subscription Auto Resumed | A paused subscription resumes by itself |
| Subscription Auto Cancelled | A paused subscription is cancelled after the pause limit |
| Subscription Win-Back 1, 2 and 3 | 14, 30 and 60 days after a subscription is cancelled |

Every event carries the subscription, its products, totals, next order date and a link to the customer portal. Use the fields in your Klaviyo template, for example `{{ event.customerPortalUrl }}` for the link to manage the subscription, or `{{ event.linesSummary }}` for a readable list of what is in it. To show each product with its image and price, loop over `event.lines`.

Subscription bundles are included. Each product line says which bundle it belongs to and whether it is a product the customer bought or a reward, so a flow can treat a free gift differently from the pack.

## Choose who sends your customer emails

Under **Who sends your customer emails**, pick one:

- **Supr Bundles & Subscriptions**: we keep sending every customer email. This is the default.
- **Klaviyo**: we stop sending customer emails and send the events to Klaviyo instead.
- **Choose per notification**: tick the ones Klaviyo should send, and we keep sending the rest.

Click **Save**. When the change hands emails to Klaviyo, the app asks you to confirm and lists the emails that stop coming from us.

**Build and switch on the flow before you hand an email over.** Klaviyo accepts our events whether or not a flow is listening, so a customer receives nothing until the flow for that metric is live.

Once an email goes through Klaviyo, **Settings > Notifications** shows **Sent through Klaviyo** beside it, and its template there is not what the customer receives. Change the message in Klaviyo instead.

### Keep our emails and also send every event

Turn on **Also send Klaviyo the events we do not hand over**. We keep sending those emails ourselves, and each one also arrives in Klaviyo as an event, so you can tag customers, build segments or run a follow-up there. The customer gets our email and whatever your flow sends. Those emails show **Also sent to Klaviyo** under **Settings > Notifications**.

A customer email has one sender. If Omnisend already sends an email, Klaviyo cannot send it too, and the page tells you which ones. Mirroring is not affected: both can receive the events.

## Good to know

- Each customer email has one sender, us or Klaviyo. With **Also send Klaviyo the events we do not hand over** on, a flow you build on those events can send its own message as well.
- Staff notifications and the **Email me a copy** switches keep coming from us either way.
- A notification turned off under **Settings > Notifications** is off everywhere, Klaviyo included. Turn it on there first. See [Notifications](https://supr-bundles-and-subscriptions.crisp.help/en-us/article/notifications-19cm2cv/).
- If Klaviyo rejects an event, for example because the key was deleted, we send that customer our own email instead so nobody is left with nothing. The Klaviyo page then shows **Klaviyo rejected the last event** with a **Re-check key** button.
- The events we send become part of your Klaviyo account, which you control. If a customer asks you to erase their data, remove them in Klaviyo as well as in Shopify. Erasing them in Shopify does not remove them from Klaviyo.

## Disconnect

Click **Disconnect** on the Klaviyo page. We delete your key and go back to sending your customer emails ourselves. Any Klaviyo flows built on these events stop receiving them.