Table of Contents
Klaviyo Integration
Updated
by Tyler Yannes
What is the Klaviyo integration?
The integration with Klaviyo allows you to send email and/or sms notifications through Klaviyo instead of within Skio.
Klaviyo has many different filters and an easy stylizing tool which makes sending emails and creating flows extra easy. With Klaviyo's flow logic, you can create sophisticated campaigns to target subscribers based on specific properties or actions taken.
How do I set this up?
- Go to the Skio Integrations page
Note: This is a different setup from our prior Klaviyo integrations and will require this setup even if you already use our current Klaviyo integration - Click "Enable" on the Klaviyo integration
- Input your Klaviyo accounts' Private Key and input a *new* Private keyNote: Create a new private API key in Klaviyo for this v3 integration, especially if you already use our current Klaviyo integration to prevent any issues
- Toggle on the integration
- Create each "event" you want to pass into Klaviyo
- After creating each event, make sure to click "send test" for each event
Why? Klaviyo only populates the metric when a webhook fires so we send over fake data with a test event; without a test event, you would need to wait for the event to actually occur on your store
Data Passed to Klaviyo
Event Metrics:
- Skio: Billing Reminder Notification
- Skio: Billing Attempt Failed
- Skio: New Subscription Created
- Skio: Subscription Cancelled
- Skio: Subscription Next Billing Date Updated
- Skio: Subscription Reactivated
- Skio: Subscription Skipped
- Skio: Surprise and Delight Rule Applied (NEW in V3)
- Skio: Subscription Item Out of Stock (NEW in V3)
- Skio: Subscription Renewed (NEW in V3)
- Skio: Card Expiration Notification (NEW in V3)
- Skio: Paused Subscription (NEW in V3)
- Skio: Unpaused Subscription (NEW in V3)
These are properties Skio sends over into Klaviyo to update the customer profile. Profile properties will appear as custom properties and can be used as "properties about someone" in Klaviyo filters.
Profile properties
Property Name | Description |
skio_activeSubscriptionCount | Number of active subscriptions |
skio_activeSubscriptions | Includes all properties for the active subscriptions |
skio_cancelledSubscriptionCount | Number of cancelled subscriptions |
skio_cancelledSubscriptions | Includes all properties for the cancelled subscriptions |
skio_cyclesCompleted | Number of cycles completed (the order count) |
skio_failedSubscriptionCount | Number of failed subscriptions |
skio_failedSubscriptions | Includes all properties for the failed subscriptions |
skio_hasActiveSubscription | True/False value if they have an active subscription |
skio_hasCancelledSubscription | True/False value if they have a cancelled subscription |
skio_hasFailedSubscription | True/False value if they have a failed subscription |
skio_hasPausedSubscription | True/False value if they have a failed subscription |
skio_hasPrepaidSubscription | True/False value if they have a paused subscription |
skio_nextBillingDate | The next charge charge for the subscription (if they have multiple subscriptions it's the next charge date) |
skio_pausedSubscriptionCount | Count of paused subscriptions |
skio_pausedSubscriptions | Includes all properties for the paused subscriptions |
skio_prepaidSubscriptionCount | Count of prepaid subscriptions |
skio_storefrontUserId | A Skio-specific id to identify the subscriber |
skio_subscribedProductTitles | The product titles included in active subscriptions |
skio_subscribedSKUs | The SKUs included in active subscriptions |
skio_subscribedVariantTitles | The variant titles included in active subscriptions |
Here's an example:

Subscription Data
Sent with EVERY event
cyclesCompleted
- how many subscription cycles have successfully been completedcancelledAt
- the date the subscription was cancelled at or Nonestatus
- ACTIVE, CANCELLED, PAUSED, or FAILEDnextBillingDate
- date of the next billinginterval
- WEEK, DAY, MONTHintervalCount
- a number that represents the number of weeks, days or monthsSubscriptionlines
- contains information for the subscription linesquantity
productTitle
productImage
productVariantImage
productVariantTitle
productImage
productVariantQuantity
quickActions
- if enabled in SkioshippingAddress
address1
address2
city
country
province
zip
Data sent with SPECIFIC event metrics
- Skio: Billing Attempt Failed - Sent every time we fail to charge customer’s card for a subscription
errorCode
— the error code why this subscription failed to billerrorMessage
— Why the subscription failed to bill
- Skio: Subscription Cancelled — Sent every time a subscription is cancelled
skioSubscriptionCancellationReason
— the reason the merchant cancelled
- Skio: Billing Reminder Notification — Sent every time a subscription will renew
skioSubscriptionDaysUntilRenewal
— how many days until this subscription renews
- Skio: Subscription Item Out of Stock — Sent when items in a subscription are out of stock
inventoryPolicy
— how the out of stock subscription is handled. Only order items in stock vs retry again next day
- Skio: Card Expiration Notification — Sent when a customer card is about to expire
- Triggers at 11 am EST
- Skio: Surprise and Delight Rule Applied
- This event will trigger once the prior order processes that triggers the rule
- Eg. If you offer a free gift at order count 3, this event will trigger when order 2 processes
Variables to use within emails:
- Variant Name:
{{ event.subscriptionLines.0.productVariantName }}
- Product Title:
{{ event.subscriptionLines.0.productName }}
- Quantity:
{{ event.subscriptionLines.0.quantity }}
- Account Login:
{{ event.manageSubscriptionUrl }}
- Next Order Date:
{{ event.nextBillingDate }}
- Order price:
{{ event.total }}
- Product image:
{{ event.subscriptionLines.0.productImage }}
- Variant image:
{{ event.subscriptionLines.0.productVariantImage }}
Profile custom properties example:

Recommendations
Suggested Klaviyo Flows
- Subscription started flow - target new subscriptions with their own email flow separate from 1-time customers in Shopify
- Subscription cancellation flow - reach out to subscribers who cancelled to win them back
- Failed payments/dunning - target your subscribers with outdated payment methods to remind them to update their payment method
Suggested Klaviyo Segments
- Active subscribers - create a segment of all your active subscribers
- Cancelled subscribers - create a segment to track the subscribers who cancelled
- Reactivated subscribers - track subscribers who reactivated a cancelled subscription
Emails in Klaviyo, SMS in Skio
Our V3 integration offers full flexibility depending on how you use Klaviyo currently. We recommend sending as many emails through Klaviyo as possible and enabling Skio SMS notifications.
For more info on SMS notifications, please check out this guide: Configuring Skio notifications (text/email)
Klaviyo resources:
- Using transactional emails in flows
- Creating repeat variable blocks (for multiple products)
- How to Format Date Variables in TemplatesAttribution for Subscription Flow Emails
FAQs
Does the Klaviyo integration replace Skio notifications altogether?
It can but it doesn't have to; Klaviyo can replace all or some of your Skio emails. Most merchants will use Klaviyo for sending subscription emails and then use Skio for sending SMS notifications since our SMS notifications are completely free for all merchants and hassle-free.
How do Klaviyo notifications differ from Skio notifications?
All notifications can be send from Skio or Klaviyo
I don't see the metric in Klaviyo, what do I do?
Klaviyo will only pull in the metric once the webhook has fired at least once from Skio
We built out a tool in Skio that allows you to fire a fake webhook to push the metric into Klaviyo (see video below)
Can I send emails as transactional in Klaviyo?
Yes - here's how: Using transactional emails in flows
How do I edit the date format in Klaviyo?
We recommend using this variable for date formatting {{ event.nextBillingDate|format_date_string|date:'F d, o' | default:'soon' }}.
Here's Klaviyo's guide for date formatting: How to Format Date Variables in Templates