Replenishment Events in Klaviyo
This page breaks down the event properties you can expect to populate in Replenishment's Klaviyo metric payloads — and display dynamically in flows, segments, and dynamic content.
What are Replenishment's Klaviyo metrics?
Once your Klaviyo integration is connected and Replenishment is enabled, head to Analytics › Metrics in Klaviyo to see 4 Replenishment metrics. Unveild runs a daily batch that scores every eligible purchaser, predicts the moment they're most likely to take a next action, and fires one of the four metrics onto the matching subscriber profile when that moment arrives.
The table below breaks down the triggers that power each metric:
| Trigger Action | Trigger Cadence | Klaviyo Metric | Klaviyo Flow |
|---|---|---|---|
| Customer enters their predicted reorder window for a product they've purchased | Daily batch | Reorder Recommendation Unveild | Replenishment flow |
| Non-subscriber customer enters the window where they're most likely to convert to a subscription | Daily batch | Push To Subscribe Recommendation Unveild | Replenishment flow |
| Customer is in their next-purchase window AND has affinity for a complementary product they haven't bought | Daily batch | Cross-sell Recommendation Unveild | Cross-sell flow |
| Lapsed customer has passed the expected reorder interval for a previously purchased product | Daily batch | Winback Recommendation Unveild | Win-back flow |
Do not add a wait time before the first message in a Replenishment, Cross-sell, or Win-back flow. The metric fires at precisely the moment Unveild estimates the customer is most likely to act — adding wait time pushes the message past the predicted window.
Event properties in Replenishment metrics
All four metrics use a shared payload envelope. The same set of root keys and the same products[] item shape are sent regardless of which metric is firing — what differs is which products the recommender selected and out-of-stock filtering.
Shared root properties
responsive_checkout_url— a deep-link cart URL pre-populated with the recommended products' variants (e.g.https://your-store.com/cart/44123456789012:1,44123456789013:1?storefront=true). Use as the primary CTA link in your email creative.products— array of recommended product objects (see schema below).checked_for_out_of_stock—true(Unveild verified inventory against Shopify and dropped any out-of-stock variants before sending).
Dynamic product properties
Each entry in the products array carries:
id— Shopify product IDtitle— product nameimageUrl— variantfeatured_image.srcwhen available, falling back to the product's first image, falling back to an empty stringURL— product page URL with the variant pre-selected (e.g.https://your-store.com/products/cotton-tee?variant=44123456789012)url— duplicate ofURL, included so liquid templates can use either casingvariant— the full Shopify variant JSON for the recommended SKU (use this for variant-specific liquid such as price, inventory state, orfeatured_image)
In Push To Subscribe Recommendation Unveild payloads, each product object may also include:
tags— array of product tags pulled fromproduct_details.product.tags. Only present if the product has tags configured in Shopify.
Profile-level metadata
After firing each event, Unveild also writes the event payload to the subscriber's Klaviyo profile as custom properties, so segments and dynamic content can reference the most recent recommendation without needing to query event history. The property names are per-metric:
| Metric | Profile properties written |
|---|---|
Reorder Recommendation Unveild | unveild_replen_reorder_products, unveild_replen_reorder_checkout_url |
Push To Subscribe Recommendation Unveild | unveild_replen_pushtosubscribe_products, unveild_replen_pushtosubscribe_checkout_url |
Cross-sell Recommendation Unveild | unveild_replen_crosssell_products, unveild_replen_crosssell_checkout_url |
Winback Recommendation Unveild | unveild_replen_winback_products, unveild_replen_winback_checkout_url |
The *_products property contains the same products[] array sent in the event; the *_checkout_url property contains the same responsive_checkout_url string.
Example payloads
The objects below are the properties value Klaviyo receives, alongside the metric.name shown in each title.
Reorder Recommendation
{
"responsive_checkout_url": "https://your-store.com/cart/44123456789012:1?storefront=true",
"products": [
{
"id": "12345",
"title": "Vitamin C Serum",
"imageUrl": "https://cdn.shopify.com/s/files/.../vitamin-c-serum.jpg",
"URL": "https://your-store.com/products/vitamin-c-serum?variant=44123456789012",
"url": "https://your-store.com/products/vitamin-c-serum?variant=44123456789012",
"variant": {
"id": "44123456789012",
"title": "50ml",
"available": true,
"price": "29.99",
"featured_image": {
"src": "https://cdn.shopify.com/s/files/.../vitamin-c-serum.jpg"
}
}
}
],
"checked_for_out_of_stock": true
}
Push To Subscribe Recommendation
{
"responsive_checkout_url": "https://your-store.com/cart/44123456789013:1?storefront=true",
"products": [
{
"id": "12346",
"title": "Monthly Protein Powder",
"imageUrl": "https://cdn.shopify.com/s/files/.../protein-powder.jpg",
"URL": "https://your-store.com/products/protein-powder?variant=44123456789013",
"url": "https://your-store.com/products/protein-powder?variant=44123456789013",
"variant": {
"id": "44123456789013",
"title": "2kg",
"available": true,
"price": "59.99",
"featured_image": {
"src": "https://cdn.shopify.com/s/files/.../protein-powder.jpg"
}
},
"tags": ["subscription-eligible", "bestseller"]
}
],
"checked_for_out_of_stock": true
}
Cross-sell Recommendation
{
"responsive_checkout_url": "https://your-store.com/cart/44123456789014:1,44123456789015:1?storefront=true",
"products": [
{
"id": "12347",
"title": "Retinol Night Cream",
"imageUrl": "https://cdn.shopify.com/s/files/.../retinol-cream.jpg",
"URL": "https://your-store.com/products/retinol-night-cream?variant=44123456789014",
"url": "https://your-store.com/products/retinol-night-cream?variant=44123456789014",
"variant": {
"id": "44123456789014",
"title": "30ml",
"available": true,
"price": "44.99",
"featured_image": {
"src": "https://cdn.shopify.com/s/files/.../retinol-cream.jpg"
}
}
},
{
"id": "12348",
"title": "Hyaluronic Acid",
"imageUrl": "https://cdn.shopify.com/s/files/.../hyaluronic-acid.jpg",
"URL": "https://your-store.com/products/hyaluronic-acid?variant=44123456789015",
"url": "https://your-store.com/products/hyaluronic-acid?variant=44123456789015",
"variant": {
"id": "44123456789015",
"title": "30ml",
"available": true,
"price": "24.99",
"featured_image": {
"src": "https://cdn.shopify.com/s/files/.../hyaluronic-acid.jpg"
}
}
}
],
"checked_for_out_of_stock": true
}
Winback Recommendation
{
"responsive_checkout_url": "https://your-store.com/cart/44123456789012:1?storefront=true",
"products": [
{
"id": "12345",
"title": "Vitamin C Serum",
"imageUrl": "https://cdn.shopify.com/s/files/.../vitamin-c-serum.jpg",
"URL": "https://your-store.com/products/vitamin-c-serum?variant=44123456789012",
"url": "https://your-store.com/products/vitamin-c-serum?variant=44123456789012",
"variant": {
"id": "44123456789012",
"title": "50ml",
"available": true,
"price": "29.99",
"featured_image": {
"src": "https://cdn.shopify.com/s/files/.../vitamin-c-serum.jpg"
}
}
}
],
"checked_for_out_of_stock": true
}