Skip to main content

Restock Events in Klaviyo

This page breaks down the event properties you can expect to populate in Restock's Klaviyo metric payloads — and display dynamically in flows, segments, and dynamic content.

What are Restock's Klaviyo metrics?

Once your Klaviyo integration is connected and Restock is enabled, head to Analytics › Metrics in Klaviyo to see 3 Restock metrics. Each metric fires when a product changes state (inventory or price) AND there are eligible subscribers who showed intent on that product within the lookback window.

Trigger ActionTrigger DelayKlaviyo Metric
Product variant's inventory crosses back above zeroReal-timeBack In Stock Unveild
Product variant's inventory crosses below the configured low-stock thresholdReal-timeLow Stock Unveild
Product variant's price drops past the configured threshold (% or $)Real-timePrice Drop Unveild
note

For every event, Unveild selects recipients from subscribers who interacted the product within the lookback window — and excludes anyone who has already ordered that product. The default lookback is 30 days (max_lookback_period rule), configurable per tenant.

Event properties in Restock metrics

All three metrics share the same flat payload shape — root-level product properties, no Items[] array. The differences are the per-metric extras described below.

Shared root properties

  • id / ProductID — Shopify product ID (duplicated for template flexibility)
  • VariantID — Shopify variant ID
  • SkuID — variant SKU
  • Name / title / untranslatedTitle — product name (three keys carrying the same value, for template flexibility)
  • VariantName — variant title
  • type — Shopify product type
  • Brand / vendor — Shopify vendor (two keys, same value)
  • URL / url — product page URL (two keys, same value)
  • ImageURL — variant image URL, falling back to the product's featured image, falling back to null
  • Price / $value — current variant price (number); $value lets Klaviyo treat the event as monetary for revenue reporting
  • $currencyCode"USD"
  • $currencySymbol"$"
  • window.startISO / window.endISO — the audience-eligibility window used for this firing (the intent lookback range)
  • source — always "restock_unveild"

Back In Stock Unveild

No additional properties beyond the shared root.

Low Stock Unveild

  • previousQty — inventory level before the update
  • currentQty — inventory level after the update

Price Drop Unveild

  • previousPrice — variant price before the change
  • currentPrice — variant price after the change

Price and $value at the root carry the current price.

Example payloads

The objects below are the properties value Klaviyo receives, alongside the metric.name shown in each title.

Back In Stock

Back In Stock Unveild
{
"Price": 29.99,
"type": "Apparel",
"id": "8123456789012",
"ProductID": "8123456789012",
"VariantID": "44123456789012",
"$currencyCode": "USD",
"$currencySymbol": "$",
"url": "https://your-store.com/products/cotton-tee",
"URL": "https://your-store.com/products/cotton-tee",
"SkuID": "TEE-COTTON-M",
"Name": "Cotton Tee",
"title": "Cotton Tee",
"untranslatedTitle": "Cotton Tee",
"VariantName": "Medium",
"Brand": "Your Brand",
"vendor": "Your Brand",
"ImageURL": "https://cdn.shopify.com/s/files/.../cotton-tee.jpg",
"$value": 29.99,
"window": {
"startISO": "2026-04-13T00:00:00.000Z",
"endISO": "2026-05-13T00:00:00.000Z"
},
"source": "restock_unveild"
}

Low Stock

Low Stock Unveild
{
"Price": 29.99,
"type": "Apparel",
"id": "8123456789012",
"ProductID": "8123456789012",
"VariantID": "44123456789012",
"$currencyCode": "USD",
"$currencySymbol": "$",
"url": "https://your-store.com/products/cotton-tee",
"URL": "https://your-store.com/products/cotton-tee",
"SkuID": "TEE-COTTON-M",
"Name": "Cotton Tee",
"title": "Cotton Tee",
"untranslatedTitle": "Cotton Tee",
"VariantName": "Medium",
"Brand": "Your Brand",
"vendor": "Your Brand",
"ImageURL": "https://cdn.shopify.com/s/files/.../cotton-tee.jpg",
"$value": 29.99,
"window": {
"startISO": "2026-04-13T00:00:00.000Z",
"endISO": "2026-05-13T00:00:00.000Z"
},
"previousQty": 25,
"currentQty": 3,
"source": "restock_unveild"
}

Price Drop

Price Drop Unveild
{
"Price": 19.99,
"type": "Apparel",
"id": "8123456789012",
"ProductID": "8123456789012",
"VariantID": "44123456789012",
"$currencyCode": "USD",
"$currencySymbol": "$",
"url": "https://your-store.com/products/cotton-tee",
"URL": "https://your-store.com/products/cotton-tee",
"SkuID": "TEE-COTTON-M",
"Name": "Cotton Tee",
"title": "Cotton Tee",
"untranslatedTitle": "Cotton Tee",
"VariantName": "Medium",
"Brand": "Your Brand",
"vendor": "Your Brand",
"ImageURL": "https://cdn.shopify.com/s/files/.../cotton-tee.jpg",
"$value": 19.99,
"window": {
"startISO": "2026-04-13T00:00:00.000Z",
"endISO": "2026-05-13T00:00:00.000Z"
},
"currentPrice": 19.99,
"previousPrice": 29.99,
"source": "restock_unveild"
}

Per-tenant configuration

Restock thresholds and windows are configurable per tenant:

SettingDefaultApplies toNotes
max_lookback_period30 daysAll eventsHow far back to look for intent signals when selecting the audience
variant_onlytrueAll eventsIf true, audience is matched at the variant level; if false, aggregated to the product
threshold3Back In StockMinimum inventory level that triggers a back-in-stock event
threshold5Low StockInventory level that triggers a low-stock event
drop_threshold10 %Price DropPercentage drop required to trigger
drop_threshold_amount1Price DropAlternative absolute-dollar drop threshold

Tuning is handled by your Unveild POC during onboarding.