Outline:
Overview
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 key with full access
Note: 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 - If you would like us to clone over Skio's pre-made Klaviyo flows please give Manager + FULL access to success@skio.com in your Klaviyo account settings.
Note: the invitation to Klaviyo access only lasts 12 hours so please inform success@skio.com immediately after giving access to ensure it is accepted.
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
- Skio: Subscription Item Out of Stock
- Skio: Subscription Renewed
- Skio: Card Expiration Notification
- Skio: Paused Subscription
- Skio: Unpaused Subscription
- Skio: Automation Action Ran
- Skio: Subscription Paused
- Skio: Subscription Unpaused
- Skio: Subscription Split
- Skio: Subscription Merged
- Skio: Subscription Mergeable
- Skio: Subscription Billing Auto Merged
- Skio: Family Plan User Joined
- Skio: Family Plan New User Welcome
- Skio: Family Plan Member Removed
Profile properties
What are profile properties?
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 conditional filters.
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 paused subscription |
skio_hasPrepaidSubscription |
True/False value if they have a prepaid 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 |
skio_nextBillingActiveSubscriptionId |
The subscription ID of the customer's subscription with the closest next billing date |
skio_lastCancelledSubscriptionId |
The subscription ID of the customer's subscription that was most recently cancelled |
skio_lastPausedSubscriptionId |
The subscription ID of the customer's subscription that was most recently paused |
skio_storefrontUserId |
The id associated with this customer in Skio |
skio_qaToken |
A token id used for quick actions so subscribers can take the action without logging in |
Here's an example:
Subscription Data
Sent with EVERY event
-
cyclesCompleted
- how many subscription cycles have successfully been completed -
cancelledAt
- the date the subscription was cancelled at or None -
deliveryPrice
- the shipping price -
email
- customer's email -
hasSurpriseDiscount
- a boolean (true/false) value if they have a Surprise & Delight discount applied to this subscription -
hasSurpriseProduct
- a boolean (true/false) value if they have a Surprise & Delight free gift applied to this subscription -
isPrepaid
- a boolean (true/false) value if the subscription is prepaid; false = normal subscription -
isPrepaidGift
- a boolean (true/false) value if the subscription is prepaid; this only applies to subscriptions that are gifted using Skio's prepaid gifting functionality -
skioSubscriptionDaysUntilRenewal
- provides a count of days until the next billing date for the subscription; this does not dynamically update so it provides the count when the event metric initially fires -
storefrontUserId
- a unique customer ID used in Skio -
subscriptionId
- a unique subscription ID used to identify the subscription in Skio -
total
- the total price of the subscription -
status
- Active, cancelled, paused, or failed -
nextBillingDate
- date of the next billing -
interval
- Week, day, month, year -
intervalCount
- a number that represents the number of weeks, days or months -
Subscriptionlines
- contains information for the subscription lines-
quantity
- quantity of units for this product -
productTitle
- product title found in Shopify for this product -
productImage
- product image in Shopify for this product -
productVariantImage
- variant image in Shopify for this specific variant -
productVariantTitle
- variant title in Shopify; if there is no variant, "Default title" populates"
-
-
shippingAddress
-
address1
- line 1 of the address for this subscription -
address2
- line 2 of the address for this subscription -
city
- the shipping city -
country
- the shipping country -
province
- the shipping province (if applicable) -
zip
- the shipping zip code
-
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 bill -
errorMessage
— 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 }}
How to Use Splits in Flows
One of Klaviyo's most powerful features is Klaviyo Flows. Within Flows, there are 2 types of splits that you can use: conditional and trigger.
Conditional Splits
Conditional splits are used to target specific customer profiles or metrics triggered for specific customers.
Trigger Splits
Trigger splits are used to filter for data that Skio passes in for the specific subscription in that flow. Skio passes over an abundance of data that can be used to create trigger splits to send targeted emails based on what is in the subscription itself including:
-
cyclesCompleted
- how many subscription cycles have successfully been completed -
cancelledAt
- the date the subscription was cancelled at or None -
deliveryPrice
- the shipping price -
email
- customer's email -
hasSurpriseDiscount
- a boolean (true/false) value if they have a Surprise & Delight discount applied to this subscription -
hasSurpriseProduct
- a boolean (true/false) value if they have a Surprise & Delight free gift applied to this subscription -
isPrepaid
- a boolean (true/false) value if the subscription is prepaid; false = normal subscription -
isPrepaidGift
- a boolean (true/false) value if the subscription is prepaid; this only applies to subscriptions that are gifted using Skio's prepaid gifting functionality -
skioSubscriptionDaysUntilRenewal
- provides a count of days until the next billing date for the subscription; this does not dynamically update so it provides the count when the event metric initially fires -
storefrontUserId
- a unique customer ID used in Skio -
subscriptionId
- a unique subscription ID used to identify the subscription in Skio -
total
- the total price of the subscription -
status
- Active, cancelled, paused, or failed -
nextBillingDate
- date of the next billing -
interval
- Week, day, month, year -
intervalCount
- a number that represents the number of weeks, days or months -
subscriptionLines_conditionSplit
contains information for the subscription lines
What are the "_conditionSplit" values?
Skio passes over arrays as both array values and string values. Klaviyo cannot parse through array values in trigger splits so we pass this over as a string. The value can be a little confusing so make sure you use the "contains" operator to parse through the long string. Here's a screenshot for context:
In the above example, we pass through all the nested array values for the subscriptionLines event as strings. The contains operator IS case sensitive so make sure to match the spelling used in your store and to be as specific as needed.
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 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 sent 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
Add comment
Please sign in to leave a comment.