---
title: "Skio event and profile properties in Klaviyo"
slug: "skio-properties-sent-to-klaviyo"
updated: 2026-04-16T13:19:28Z
published: 2026-04-16T13:19:28Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://help.skio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Skio event and profile properties in Klaviyo

## What are event and profile properties?

Skio automatically sends subscription events and customer data to Klaviyo via [event metrics](/help/docs/all-skio-event-metrics), giving you the properties you need to build targeted flows and segments. This guide lists the Skio event and profile properties included with Skio subscription events.

> [!WARNING]
> While this guide uses Klaviyo terminology and examples, the same Skio properties are also sent to other Skio messaging and engagement integrations (such as [Postscript](/help/docs/integrating-postscript-with-skio)). How these properties appear and where they’re accessed may vary by platform, but the underlying event and profile data is the same.

### How Skio sends data to Klaviyo

![](https://cdn.us.document360.io/a953bba6-c70d-43ce-bc77-d7f32a8fc514/Images/Documentation/Mind Maps (15).png)

**Example:** When a new subscription is created, Skio sends a `subscriptionCreated` event metric that includes three types of properties: event properties (like `nextBillingDate`), profile properties (customer information), and custom properties.

Skio sends three types of data to Klaviyo with each event:

- **Event properties**: Sent each time a subscription event occurs (like a renewal, cancellation, or product swap). These are tied to specific moments in the subscription lifecycle.
- **Profile properties**: Updated on the customer's Klaviyo profile and persist across all events. These reflect the customer's current subscription state.
- **Custom properties**: These properties may change depending on what type of event is being sent.

> [Learn more about how to add personalization to your flows in Klaviyo here.](https://help.klaviyo.com/hc/en-us/articles/18986347580827)

## Common Klaviyo flows and the properties you need

### Renewal reminder flows

> [!TIP]
> Send reminders before a subscription renews to reduce surprises and payment failures.

| Property | Type | Description | Example use |
| --- | --- | --- | --- |
| `nextBillingDate` | Event | When the subscription will renew | Trigger flow 3 days before this date |
| `skioSubscriptionDaysUntilRenewal` | Event | Days until next renewal | "Your order ships in `{{ event.skioSubscriptionDaysUntilRenewal }}` days" |
| `netSubscriptionTotal` | Event | Total order value before shipping | "Your upcoming charge: $`{{ event.netSubscriptionTotal }}`" |
| `deliveryPrice` | Event | Shipping cost | Show total including shipping |
| `productName` | Event | Product in the order | Remind them what's coming |
| `manageSubscriptionUrl` | Event | Direct link to Customer Portal. Alternatively, use a [Quick Action link](/help/docs/features-quick-actions). | "Update your order: `{{ event.manageSubscriptionUrl }}`" |

**Flow structure example:**

- Trigger: Skio renewal event
- Time delay: Wait until 3 days before `nextBillingDate`
- Email: "Your [product] ships in 3 days"

### Winback flows (post-cancellation)

> [!TIP]
> Re-engage customers who cancelled their subscription.

| Property | Type | Description | Example use |
| --- | --- | --- | --- |
| `cancelledAt` | Event | Timestamp of cancellation | Trigger flow immediately or with delay |
| `cyclesCompleted` | Event | Number of orders before cancelling | Segment by loyalty: "Thanks for 6 orders with us" |
| `productName` | Event | What they were subscribed to | Personalize: "Missing your [product]?" |
| `skio_hasCancelledSubscription` | Profile | Whether customer has any cancelled subs | Use in segments to exclude active subscribers |
| `skio_cancelledSubscriptionCount` | Profile | Total cancelled subscriptions | Identify high-risk customers |

**Flow structure example:**

- Trigger: Skio cancellation event
- Time delay: Wait 7 days
- Conditional split: If `skio_hasActiveSubscription` = false (they have no other active subs)
- Email: Winback offer with incentive

### Payment failure recovery flows

> [!TIP]
> Recover revenue when a subscription payment fails.

| Property | Type | Description | Example use |
| --- | --- | --- | --- |
| `status` | Event | Subscription Status | Trigger when status = "FAILED" or "PAST_DUE" |
| `skio_hasFailedSubscription` | Profile | Whether customer has failed subs | Segment for follow-up campaigns |
| `skio_failedSubscriptionCount` | Profile | Number of failed subscriptions | Prioritize high-value recovery |
| `manageSubscriptionUrl` | Event | Direct link to update payment | "Update your payment method: [link]" |
| `skio_hasBackupPaymentMethod` | Profile | Whether backup payment exists | Split messaging based on payment status |
| `email` | Event/Profile | Customer email | Coordinate with email dunning |

**Flow structure example:**

- Trigger: Skio payment failed event
- Email 1: Friendly reminder to update payment
- Wait 3 days
- Email 2: IMPORTANT - update your payment method

## All event properties sent to Klaviyo

### Event properties

> These variables can be used as **Trigger filters and splits**in addition to being used to display dynamic information about the event in a message.
> 
> - Learn more about [trigger filters here](/help/docs/klaviyo-integration#trigger-splits).
> - Learn more about [using variables to personalize your messages here](/help/docs/how-to-preview-and-test-klaviyo-flows-with-skio#step-2-preview-event-variables-inside-the-flow).

| Property | Brief description |
| --- | --- |
| `subscriptionId` | Unique identifier for the subscription associated with the event |
| `subscriptionLinePlatformId` | Platform-level ID of the subscription line related to the event |
| `status` | Subscription status at the time the event occurred |
| `statusContext` | Additional context explaining the subscription status |
| `nextBillingDate` | Next scheduled billing date at the time of the event |
| `subscriptionWillRenewAtTimezoneAdjusted` | Timezone-adjusted renewal timestamp |
| `skioSubscriptionDaysUntilRenewal` | Number of days until the next renewal when the event fired |
| `interval` | Billing interval unit (e.g., week, month) |
| `intervalCount` | Number of intervals between billings |
| `cyclesCompleted` | Number of billing cycles completed at event time |
| `price` | Price of the product involved in the event |
| `quantity` | Quantity of the product involved in the event |
| `total` | Total amount associated with the event |
| `netSubscriptionTotal` | Net subscription total after discounts |
| `netSubscriptionTotalSiteCurrency` | Net subscription total in the site’s currency |
| `deliveryPrice` | Shipping price applied at the time of the event |
| `totalDiscount` | Total discount amount applied at event time |
| `discounts` | Standard discounts applied during the event |
| `surpriseDiscounts` | Surprise discounts applied during the event |
| `hasSurpriseDiscount` | Indicates whether a surprise discount was applied |
| `currencyCode` | Currency code used for pricing (e.g., USD, CAD) |
| `currencySymbol` | Currency symbol used for display |
| `siteCurrencyCode` | Store’s base currency code |
| `productName` | Name of the product involved in the event |
| `productVariantName` | Name of the product variant involved |
| `productVariantSku` | SKU of the product variant |
| `productPlatformId` | Platform-level product ID |
| `productVariantPlatformId` | Platform-level product variant ID |
| `productImage` | Product image URL |
| `productVariantImage` | Product variant image URL |
| `isOneTimeUpsell` | Indicates whether the product was a one-time upsell |
| `isPrepaid` | Indicates whether the subscription is prepaid |
| `isPrepaidGift` | Indicates whether the prepaid subscription is a gift |
| `isTemporarilyPaused` | Indicates whether the subscription was temporarily paused |
| `skipped` | Indicates whether the item was skipped |
| `skipCount` | Total number of times the subscription has been skipped |
| `outOfStock` | Indicates whether the item was out of stock |
| `originOrderId` | Original order ID associated with the subscription |
| `manageSubscriptionUrl` | URL used by customers to manage their subscription |
| `qaToken` | Secure token used for authenticated actions related to the event |
| `storefrontUserId` | Storefront user ID associated with the event |
| `customerPlatformId` | Platform-level customer ID associated with the event |
| `email` | Customer email address associated with the event |

### Profile properties

| Property | Brief description |
| --- | --- |
| `firstName` | Customer’s first name |
| `lastName` | Customer’s last name |
| `email` | Customer email address |
| `phone` | Customer phone number |
| `address1` | Primary street address |
| `address2` | Secondary street address |
| `city` | City |
| `province` | State or region |
| `zip` | Postal or ZIP code |
| `country` | Country |
| `locale` | Customer locale or language setting |
| `recipientTimeZone` | Customer’s time zone |
| `latitude` | Geographic latitude, if available |
| `longitude` | Geographic longitude, if available |
| `uniqueId` | Unique identifier for the customer profile |

### Custom properties

> These variables can be used as **Conditional filters and splits**in addition to being used to display dynamic information about the event in a message.
> 
> 
> 
> - Learn more about [conditional filters here](/help/docs/klaviyo-integration#conditional-splits).
> - Learn more about [using variables to personalize your messages here](/help/docs/how-to-build-a-klaviyo-flow-with-skio).

| Property | Brief description |
| --- | --- |
| `skio_storefrontUserId` | Storefront user ID tracked by Skio |
| `skio_hasActiveSubscription` | Indicates whether the customer has an active subscription |
| `skio_activeSubscriptionCount` | Total number of active subscriptions |
| `skio_hasPrepaidSubscription` | Indicates whether the customer has prepaid subscriptions |
| `skio_prepaidSubscriptionCount` | Total number of prepaid subscriptions |
| `skio_hasPausedSubscription` | Indicates whether the customer has paused subscriptions |
| `skio_pausedSubscriptionCount` | Total number of paused subscriptions |
| `skio_pausedSubscriptions` | List of paused subscriptions |
| `skio_hasFailedSubscription` | Indicates whether the customer has failed subscriptions |
| `skio_failedSubscriptionCount` | Total number of failed subscriptions |
| `skio_failedSubscriptions` | List of failed subscriptions |
| `skio_hasCancelledSubscription` | Indicates whether the customer has cancelled subscriptions |
| `skio_cancelledSubscriptionCount` | Total number of cancelled subscriptions |
| `skio_cancelledSubscriptions` | List of cancelled subscriptions |
| `skio_totalItemQuantity` | Total quantity of items across all subscriptions |
| `skio_nextBillingDate` | Next billing date across subscriptions. For prepaids, this aligns with the next *order*date. Use the `skio_nextRenewalDate `below for next*billing*date for prepaids specifically. |
| `skio_cyclesCompleted` | Total number of completed billing cycles |
| `skio_remainingCyclesUntilRenewal` | Number of orders remaining before the subscription bills again for the next prepaid period. Value returns null if not prepaid. |
| `skio_nextRenewalDate` | Estimated date when the subscription will actually charge for the next prepaid period. Value returns null if not prepaid. *This is the actual billing date, not the delivery date.* |
| `skio_nextBillingActiveSubscriptionId` | ID of the active subscription that will bill next |
| `skio_hasBackupPaymentMethod` | Indicates whether a backup payment method exists |
| `skio_qaToken` | Secure token for authenticated subscription actions |
| `skio_credits` | Available Skio credits balance |
| `skio_credits_currency_value` | Monetary value of Skio credits |
| `skio_credits_currency_code` | Currency code used for Skio credits |
| `skio_membership_tier` | Customer’s current membership tier in Skio (ie. example, Silver, Gold, or VIP) |
| `skio_referralCode` | The unique referral code assigned to a customer through Skio [Referrals](/help/docs/how-to-set-up-referrals). |

#### Conditional filters & splits

| Property | Brief description |
| --- | --- |
| `skio_activeSubscriptions_conditionSplit` | Active subscriptions used for conditional logic and splits |
| `skio_pausedSubscriptions_conditionSplit` | Paused subscriptions used for conditional logic and splits |
| `skio_failedSubscriptions_conditionSplit` | Failed subscriptions used for conditional logic and splits |
| `skio_cancelledSubscriptions_conditionSplit` | Cancelled subscriptions used for conditional logic and splits |
| `skio_subscribedProductTitles_conditionSplit` | Subscribed product titles used for segmentation |
| `skio_subscribedVariantTitles_conditionSplit` | Subscribed variant titles used for segmentation |
| `skio_subscribedSKUs_conditionSplit` | Subscribed SKUs used for segmentation |

### Loyalty Loss Aversion properties

| **Property Name** | **Description** |
| --- | --- |
| `loyaltyCurrentTierName` | The name of the customer's current loyalty tier |
| `loyaltyNextTierName` | The name of the next tier above the customer's current tier (if applicable) |
| `loyaltyCurrentTierRewards` | Array of rewards available in the customer's current tier |
| `loyaltyNextTierRewards` | Array of rewards available in the next tier (if applicable) |
| `loyaltyCurrentTierAtRisk` | Whether the customer is forecasted to fall off track for maintaining their current tier (if tier expiration is enabled) |
| `loyaltyTierExpiringInDays` | Number of days until the customer's current tier expires (based on current expiry date, not forecasted) |
| `loyaltyCreditsExpiringDays` | Number of days until the customer's credits expire |
| `loyaltyCreditsExpiringCount` | Number of credits the customer has that are expiring |
| `loyaltyCurrentLtvDistanceToNextTier` | Dollar amount (LTV) needed to reach the next tier based on current state |
| `loyaltyCurrentLtvDistanceToCurrentTier` | Dollar amount (LTV) above the threshold for the current tier based on current state |
| `loyaltyCurrentOrderCountDistanceToNextTier` | Number of orders needed to reach the next tier based on current state |
| `loyaltyCurrentOrderCountDistanceToCurrentTier` | Number of orders above the threshold for the current tier based on current state |
| `loyaltyCurrentOrderProductCountDistanceToNextTier` | Number of products ordered needed to reach the next tier based on current state |
| `loyaltyCurrentOrderProductCountDistanceToCurrentTier` | Number of products ordered above the threshold for the current tier based on current state |
| `loyaltyFutureLtvDistanceToNextTier` | Forecasted dollar amount (LTV) needed to reach the next tier |
| `loyaltyFutureLtvDistanceToCurrentTier` | Forecasted dollar amount (LTV) above the threshold for the current tier |
| `loyaltyFutureOrderCountDistanceToNextTier` | Forecasted number of orders needed to reach the next tier |
| `loyaltyFutureOrderCountDistanceToCurrentTier` | Forecasted number of orders above the threshold for the current tier |
| `loyaltyFutureOrderProductCountDistanceToNextTier` | Forecasted number of products ordered needed to reach the next tier |
| `loyaltyFutureOrderProductCountDistanceToCurrentTier` | Forecasted number of products ordered above the threshold for the current tier |

## Additional resources

- [Creating Winback Flows in Klaviyo](/help/docs/creating-winback-flows-in-klaviyo)
- [Integrating Skio Loyalty Events in Klaviyo](/help/docs/integrating-skio-loyalty-events-in-klaviyo)

The Customer Portal is an interface that allows subscribers to manage their subscriptions, including options to pause, modify, or cancel their subscription plans.

Subscription Status indicates the current state of a subscription, such as Active, Failed, Paused, or Cancelled, affecting billing and management.
