How do you retrieve historical subscription data with Klaviyo Toolkit?

Short answer: Klaviyo Toolkit does not backfill. It begins tracking subscription data only after the plugin and the subscription settings are switched on, and it does not reach back into past subscriptions.

To get your existing subscribers into Klaviyo, you do a one-time export and import of current subscription statuses, then let the plugin keep everything in sync from that point forward. The steps below walk through it.

Before you start

  • An active Klaviyo Toolkit license. The export tool is a licensed feature.
  • WooCommerce Subscriptions installed and active.
  • Your Klaviyo private API key saved in the plugin, with Events: Full and Profiles: Full access.
  • Admin access to both WordPress and Klaviyo.

Step 1: Turn on ongoing sync first

Do this before exporting. Order matters here.

  1. In WordPress, go to Klaviyo Toolkit → Settings → Metrics, and under WooCommerce Subscriptions Metric Events enable the events you want: WC Subscription Created, WC Subscription Renewal, WC Subscription Status Change, and WC Subscription Switched.
  2. Go to Settings → Profile Properties and enable Sync Subscription Status Fields to Profile. Optionally enable Sync Subscription ID to Profile as well.
  3. Save.

Why first? From the moment these are on, every new subscription and every status change is written to the customer’s Klaviyo profile automatically. If you import your historical data first and enable sync afterwards, anything that changes in the gap between the two is silently missed.

Step 2: Export your current subscription statuses

  1. Go to Klaviyo Toolkit → Tools.
  2. Under Export WooCommerce Subscription Statuses, select the subscription products you want to include. Leaving the field empty exports every subscription product.
  3. Click Run Export and stay on the page until the progress bar finishes and the download link appears.
  4. Download the CSV.

What the file looks like

The export contains one row per customer email, with one column per subscription product or variation:

Email,wc-sub-product-1234,wc-sub-product-5678
user1@website.com,active,cancelled
user2@website.com,cancelled,active

Possible status values: active, pending-cancel, cancelled, on-hold, expired.

The column headers are already the exact property names the plugin writes to Klaviyo profiles. That is the important detail: import them as-is and your backfilled values land in the same fields that ongoing sync updates. Rename a column and you break the connection, leaving you with two separate properties that drift apart.

Things to know about the export

  • Select products if your catalogue is large. A store with many subscription products or variations can produce a file too large for Klaviyo to import. Exporting in smaller batches by product is the fix.
  • Only the most recent subscription per product is included. If a customer has had multiple subscriptions to the same product, the export carries the status of the latest one.
  • Clean up the file when you are done. The CSV is written to wp-content/uploads/kt-exports/ on your server and contains customer email addresses. Delete it once the import is complete.
  • The export tool is currently marked BETA in the plugin.

Step 3: Import into Klaviyo

  1. In Klaviyo, go to Audience → Lists & Segments and create a temporary list, for example “All WC Subscribers”.
  2. Upload the CSV to that list.
  3. Map each wc-sub-product-XX column to a custom profile property, creating the new property with exactly the same name as the column header.
  4. This step matters: when Klaviyo asks about email marketing subscription status, choose “No, import without updating subscription status.” Choosing otherwise will overwrite your subscribers’ existing consent preferences.
  5. Complete the import, then delete the temporary list. The profile properties stay on the profiles; the list was only a delivery mechanism.

Run the import shortly after the export. If a subscription changes status in between, the import writes the older exported value over the newer live one.

Step 4: Verify it worked

  1. Open a profile in Klaviyo for a customer you know has an active subscription.
  2. Under Custom Properties, confirm you see wc-sub-product-{ID} with the expected status.
  3. Change that subscription’s status in WooCommerce and refresh the Klaviyo profile. The property should update on its own.

If step 3 does not update, ongoing sync is not enabled. Go back to Step 1.

Using the data

Segments

Go to Lists & Segments → Create Segment, choose Properties about someone, select the wc-sub-product-XX property, and match it against a status such as active or cancelled.

Referencing the property in an email or flow

These property names contain hyphens, which Klaviyo’s dot syntax cannot read. Use the lookup filter instead:

{{ person|lookup:'wc-sub-product-1234' }}

{{ person.wc-sub-product-1234 }} will not work.

Alternative: rebuilding status with Klaviyo flows

You can also maintain a status property using a Klaviyo flow: trigger on the WC Subscription Created metric and use an Update Profile Property action to set your own property, for example “Coffee Plan Status” = “Active”.

This is worth doing when you want status stored under your own naming rather than the product ID format, or when you cannot run the export. Be aware of the limitation: a flow only fires for customers who trigger an event after you set it up, so on its own it is not a backfill. It fills in going forward while the CSV import covers everyone who came before.

The full walkthrough is here: Tracking WooCommerce subscription status in Klaviyo with custom profile properties

What cannot be recovered

Current subscription status can be backfilled with the steps above. Historical events cannot.

Metric events such as WC Subscription Created, renewals and past status changes only exist in Klaviyo from the point you enabled them. There is no way to replay them after the fact, which also means any Klaviyo flow triggered by those metrics will only fire for activity that happens after the setting is on.

If you are planning a launch around subscription flows, switch the metric events on well in advance so you have event history to work with.

Related documentation

Would you rather we set this up for you?

We offer a done-for-you configuration service: Klaviyo Toolkit Pro Setup.