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 Action | Trigger Delay | Klaviyo Metric |
|---|---|---|
| Product variant's inventory crosses back above zero | Real-time | Back In Stock Unveild |
| Product variant's inventory crosses below the configured low-stock threshold | Real-time | Low Stock Unveild |
| Product variant's price drops past the configured threshold (% or $) | Real-time | Price Drop Unveild |
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 IDSkuID— variant SKUName/title/untranslatedTitle— product name (three keys carrying the same value, for template flexibility)VariantName— variant titletype— Shopify product typeBrand/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 tonullPrice/$value— current variant price (number);$valuelets 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 updatecurrentQty— inventory level after the update
Price Drop Unveild
previousPrice— variant price before the changecurrentPrice— 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
{
"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
{
"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": 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:
| Setting | Default | Applies to | Notes |
|---|---|---|---|
max_lookback_period | 30 days | All events | How far back to look for intent signals when selecting the audience |
variant_only | true | All events | If true, audience is matched at the variant level; if false, aggregated to the product |
threshold | 3 | Back In Stock | Minimum inventory level that triggers a back-in-stock event |
threshold | 5 | Low Stock | Inventory level that triggers a low-stock event |
drop_threshold | 10 % | Price Drop | Percentage drop required to trigger |
drop_threshold_amount | 1 | Price Drop | Alternative absolute-dollar drop threshold |
Tuning is handled by your Unveild POC during onboarding.