Klaviyo Integration Klaviyo Integration

Klaviyo Integration

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?

  1. 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
  2. Click "Enable" on the Klaviyo integration
  3. 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
  4. Toggle on the integration
  5. Create each "event" you want to pass into Klaviyo
  6. 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
  7. 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:

screenshot-2023-03-30-at-9-48-10-am.png

 

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

  1. Skio: Billing Attempt Failed - Sent every time we fail to charge customer’s card for a subscription
    1. errorCode — the error code why this subscription failed to bill
    2. errorMessage — Why the subscription failed to bill
  2. Skio: Subscription Cancelled — Sent every time a subscription is cancelled
    1. skioSubscriptionCancellationReason — the reason the merchant cancelled
  3. Skio: Billing Reminder Notification — Sent every time a subscription will renew
    1. skioSubscriptionDaysUntilRenewal — how many days until this subscription renews
  4. Skio: Subscription Item Out of Stock — Sent when items in a subscription are out of stock
    1. inventoryPolicy — how the out of stock subscription is handled. Only order items in stock vs retry again next day
  5. Skio: Card Expiration Notification — Sent when a customer card is about to expire
    1. Triggers at 11 am EST
  6. Skio: Surprise and Delight Rule Applied
    1. This event will trigger once the prior order processes that triggers the rule
    2. 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 }}
Why should I use variables? Variables pull in dynamic content specific to the receiver so these variables can be used to build beautiful, dynamic emails for each subscriber.

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:

Screenshot 2023-11-02 at 2.09.08 PM.png

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
Need help setting up your flows? Reach out to success@skio.com and our Success team can help you setup your flows. In fact, we have template flows built out for each metric and copy them into your Klaviyo account for you!
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:


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.