A product sells out and the listing stays up. Shoppers keep arriving from search, from ads, from the wishlist they saved months ago, and every visit ends at the same dead end: no add to cart button, no way to leave an email, no record that the demand was ever there. Back in stock alerts exist to catch that moment, and on Shopify the cleanest version is a Klaviyo back in stock flow.

The idea is straightforward. A shopper who finds a sold-out item leaves their details instead of leaving the store, and when the item is back they get one timely message. The sale that slipped away on the day it sold out happens a few weeks later, and the store learns exactly how many people wanted the thing before it restocked.

This guide covers back in stock alerts with Shopify and Klaviyo end to end: the notify me form, what a signup does and does not let you send, the flow that waits for restock, the SMS layer for fast-moving drops, and the test that keeps the first real sell-out from exposing a broken setup. You need a Shopify store, a Klaviyo account and a browser. Everything here happens in the two admin areas you already pay for.

What a back in stock alert does when a product sells out

Once you publish a back in stock form, Klaviyo automatically shows a Notify me button on any product page where inventory is out of stock, and it removes the button again when stock returns. No developer needed, no snippet to reinstall after every theme change, which is why Klaviyo documents it as the standard path for Shopify stores. When a shopper submits the form, Klaviyo logs a Subscribed to Back in Stock event, and that event is what starts the restock flow (Klaviyo's back in stock form guide).

From there the sequence runs itself. A subscriber enters the flow and waits at a step called the back in stock delay until their exact item restocks. When inventory crosses back to available, they move to the next step and receive a single notification, usually one email or one SMS (Klaviyo's guide to building a back in stock flow). The message is deliberately a one-shot alert, because the job is to say the item is available again, then get out of the way (Klaviyo explains how back in stock flows behave).

Two details make the whole thing work. The alert email builds its product image, title, link and price from your catalog at send time, since an item can restock weeks or months after signup and the listing will have changed (Klaviyo's back in stock email configuration guide). And the notification must have Smart Sending switched off, because Smart Sending exists to ration marketing messages per person per window, and a restock alert that gets rationed away defeats the point (how Smart Sending works in Klaviyo).

The trigger also depends on Shopify reporting the truth about stock. Shopify only treats an item as out of stock when inventory tracking is switched on for that product and the level sits at zero or below (Shopify's documentation on out of stock products). Klaviyo's back in stock feature does not work with the Continue selling when out of stock setting, which is the oversell option Shopify offers for preorders and backorders. If that toggle is on, there is no sold-out state for the button to react to.

Prerequisites: tracked inventory, a Klaviyo account and SMS consent

Before the first step, gather these prerequisites and you can finish the whole setup in an afternoon. A flow, for clarity, is a sequence of automated messages that a single event starts; a trigger is that event; consent is the permission a shopper gives before you contact them. The terms come up again below, spelled out where they first appear.

On cost: Klaviyo's free plan includes up to 250 active profiles, 500 email sends per month and USD 5 of mobile messages per month, with the Shopify integration included (Klaviyo's pricing page, AU version). A small store that sells out a handful of products a month stays inside those limits comfortably. The moment restocks get frequent, the send volume decides when a paid tier makes sense.

Step 1: Add the notify me form to sold-out products

Klaviyo ships a dedicated back in stock form template, and the form itself is the piece that turns a dead product page into a capture point.

Create the form from the back in stock template

In Klaviyo, open Forms and create a new form using the back in stock template. The form signs shoppers up for notifications by email, text messaging and WhatsApp. It collects an email address by default, and once SMS is enabled in your account it can take a mobile number as a separate opt-in field. One back in stock form per account covers every product in the store, and that limit applies whether the form is live or still sitting in draft, so an abandoned draft blocks a new one (Klaviyo's back in stock form guide). The form builder covers Shopify and BigCommerce. Stores on Magento 2, PrestaShop, SFCC or Shopware add a code snippet to the theme instead, and a custom catalog feed or the API does the same job for platforms outside that list (Klaviyo's back in stock flow guide). Keep the form copy short, because the shopper is already convinced and only needs a place to leave their details. If the store ever ran Klaviyo's older back in stock code snippet, take it out of the theme before you publish, or shoppers get two buttons and two forms on the same page (Klaviyo's instructions for removing the old snippet).

Set the button placement and publish

Klaviyo gives you placement options for the Notify me button, typically replacing the add to cart area on sold-out products or sitting just below it. Pick whichever your theme renders cleanly, style the button to match the store, then publish. From that moment the button appears automatically on product pages where inventory is out of stock and disappears again when the item is back, with no manual switching between the two states (Klaviyo's back in stock form guide).

Confirm Shopify reports the product as sold out

The button only shows where Shopify says the stock is gone, so three settings need to line up. Inventory tracking must be on for the product or variant, the quantity must be at zero or below, and Continue selling when out of stock must be off (Shopify's out of stock documentation). One more trap: plenty of themes hide a product once every variant sells out, and a hidden product has no page for the button to live on. If yours does that, the waiting list never gets the chance to form. Klaviyo's fix is to edit the product template so sold-out products still render, then add the code snippet yourself rather than relying on the automatic button (Klaviyo's back in stock form guide).

Who the signup lets you contact, and for what

The form only appears on a sold-out product page, so everyone on the waiting list has seen that product and asked to hear when it returns. That request covers the restock alert. Klaviyo keeps email marketing consent as a separate checkbox on the back in stock form, one you can include or remove, and the form's analytics page counts the two actions apart as Back in stock submits and Marketing opt-ins (Klaviyo's back in stock form guide). The submit rate on that page is worked out from back in stock subscriptions only, so a healthy submit rate says nothing about how many of those shoppers agreed to your newsletter.

Text alerts work differently. A shopper who wants the restock by SMS has to give explicit consent to promotional text messages, Klaviyo won't let you make that consent optional, and the disclosure language has to sit on the form. Every phone number the form collects is therefore also an SMS marketing subscriber, while an email address collected with the box left empty is a restock request and nothing else.

What the shopper does on the form What the store can send them How Klaviyo counts it
Enters an email, leaves the marketing box emptyThe restock alert for that itemBack in stock submit
Enters an email and ticks the marketing boxThe restock alert, plus email campaigns and flowsBack in stock submit and marketing opt-in
Enters a mobile numberThe restock alert by text, plus SMS marketing, since text alerts always carry promotional consentBack in stock submit and marketing opt-in

That table is also the answer when someone asks how to alert only the people who viewed a product and opted in. The back in stock form already limits the list to shoppers who stood on that page and asked, so there is no browse-based segment to build. Reaching viewers who never signed up is a different job, a marketing message that needs marketing consent, and we cover it in browse abandonment emails for Shopify and Klaviyo. One limit to know before you design the form: Klaviyo does not support A/B testing on back in stock forms, or opt-in methods such as smart opt-in and tap-to-text.

Step 2: Build the Klaviyo back in stock flow

The form captures the demand. The flow is the automation that delivers on it, and it has a shape that differs from every other marketing flow you will build, so it is worth going through the pieces in order.

Create the flow and wire the trigger

In Klaviyo, open Flows and create a flow from the back in stock template, or start blank and choose the Subscribed to Back in Stock metric as the trigger (Klaviyo's back in stock flow builder). Set the flow status to Live or Manual before signups start arriving; a flow that is still a draft does not accept subscribers into the waiting list (Klaviyo's explanation of back in stock flow behaviour).

Add the back in stock delay and the single alert message

Drag in a back in stock delay as the first step after the trigger. Every subscriber waits at this step until their exact item restocks, which means someone who signed up for a medium waits for the medium, not for the whole product. When the item is available again, the flow moves them forward (Klaviyo's back in stock flow builder).

Add one message after the delay. Email is the default, and the message block pulls the product image, title, URL and price from your catalog at send time, because an item can restock weeks after signup and the listing may have changed (Klaviyo's back in stock email guide). Switch Smart Sending off on this message. Smart Sending stops a profile from receiving too many marketing messages in a window, and when a restock alert is the one message that matters, rationing it away loses the sale (Klaviyo's Smart Sending documentation).

The alert email: Klaviyo's template or your own copy

Klaviyo writes most of this email for you. Flows created from the Flow Library arrive with default email content already configured, and if you built your flow from scratch you can search "back in stock" in the Email templates tab to drop the pre-built alert email into the message (Klaviyo's guide to configuring back in stock alert emails). Start from that template unless you have a reason to write your own, because it already handles the part most people get wrong.

The hard part is time. A shopper can wait months for a restock, and by the time the item returns the price, the image and the URL may all have changed. Klaviyo's answer is a set of dynamic event variables that look up the restocked product in your catalog at send time rather than storing the details at signup, so the email shows what the product costs today. On a Shopify store, the four you will reach for most are these.

Product title
{% catalog event.VariantId integration='shopify' %}
{{ catalog_item.title }}
{% endcatalog %}

Product URL
{% catalog event.VariantId integration='shopify' %}
{{ catalog_item.url }}
{% endcatalog %}

Product price
{% catalog event.VariantId integration='shopify' %}
{% currency_format catalog_item.variant.price|floatformat:2 %}
{% endcatalog %}

Variant image
{% catalog event.VariantId integration='shopify' %}
{{ catalog_item.variant.featured_image.full.src }}
{% endcatalog %}

Klaviyo's table on the same page lists two more variables worth knowing: a variant title, and a variant URL that appends ?variant= to the product link. The image variable also carries a |default: filter in Klaviyo's version, which falls back to the main product image when a variant has none of its own, so use that form if some of your variants share the product photo. Two warnings are worth carrying into the build. The table block inside the email template has to be set to static rather than dynamic, or the product data will not render at all. On BigCommerce, one product's ID can match another product's variant ID, which puts the wrong item in the alert, and Klaviyo's fix is to replace VariantID with ProductID in every variable. Magento 2, PrestaShop, Shopware and SFCC stores have their own variable sets on the same page.

The copy around the product block stays short. The shopper asked to hear about one thing, so name that thing in the subject line and keep the body to a sentence, the product data and a button. An example for a clothing store reads like this.

Subject: The indigo wide leg jean is back, including your size

Preheader: You asked us to tell you when it returned.

Body: It is on the shelf again in every size, at the same price.

Button: Buy the indigo wide leg jean

The preheader is the line most stores leave empty. It sits beside the subject line in the inbox, and it is the cheapest place to explain why the shopper should care. Klaviyo's template sets one for you, so treat it as copy to edit rather than a field to skip.

Set minimum inventory and customer notification rules

Two controls stop the flow from over-promising. A minimum inventory rule makes the flow wait until a restock reaches a usable quantity, so a box of three units does not trigger an alert to three hundred people. Customer notification rules cap how many people get notified per restocked unit. Klaviyo's example: 20 units restock, the rule allows 5 customers per unit, and the oldest 100 subscribers on the list get the alert (Klaviyo's back in stock flow builder). Everyone else stays queued for the next batch, which keeps the promise in the email honest.

The controls that decide who gets told

Five settings sit between a restock and the inbox. Each one is set in a different corner of Klaviyo, which is why a flow can look finished and still behave badly.

Control What it decides Where to set it
Back in stock delayHow long each subscriber waits, which is until their exact variant is available againFlow editor, the first step after the trigger
Minimum inventoryThe stock level a restock has to reach before any alert goes outAccount settings, or the settings on the back in stock delay
Customers to notify per unitHow many people hear about each restocked unitNotification strategy rules on the delay
Wait time between notificationsHow far apart the batched alerts go outNotification strategy rules on the delay
Smart SendingWhether the alert can be skipped because the profile has had a lot of marketing lately. Switch it off hereSettings on the notification message

Klaviyo groups the middle three under notification strategy, and the batching behaviour flows from them: restock 20 units with 5 customers per unit allowed and the oldest 100 subscribers hear first, with the rest held back until your minimum threshold or the next delivery.

Step 3: Turn on SMS so urgent restocks reach phones

Email works, but an inbox can sit unopened for a day. Klaviyo states that text messages are typically read within three minutes, which makes SMS the better channel when the restock will sell through fast (Klaviyo's guide to SMS in back in stock flows). If you want the channel-by-channel argument, we compared Klaviyo SMS versus email for ecommerce revenue in a separate post.

Enable SMS and register a sending number

SMS starts in account settings, not in the flow. Open Settings in Klaviyo, turn on SMS, and follow the prompts to claim a sending number. In Australia, branded sender IDs require verification or registration before they can send, so leave a few days for that step if you want your brand name as the sender (Klaviyo's SMS setup guide).

Add the consent split so SMS goes to the right people

Back in the flow, place a conditional split after the back in stock delay. Profiles with SMS marketing consent take the SMS path and get the text alert; everyone else continues down the email path. Klaviyo recommends limiting SMS in the flow to one or two messages, and with a restock alert one is normally enough (Klaviyo's SMS in back in stock flows guide).

Put disclosure language on the signup form

If the form collects a mobile number, it needs disclosure language above the SMS opt-in. Klaviyo is blunt about this: disclosure is legally required wherever SMS consent is collected, and it must name the service, message frequency, how to opt out with STOP, and where to find your terms and privacy policy (Klaviyo's SMS disclosure guide). Klaviyo provides default wording you can edit, and this is the one field on the form you should not trim.

Step 4: Test the whole flow before the next sell-out

A back in stock flow has more moving parts than a welcome series, and each part can fail silently. Run the full loop on a real product before you rely on it during an actual sell-out. The eligibility rules and this test routine apply to every back in stock tool, not just Klaviyo (the setup checklist in Notify Me's help centre).

Subscribe as a shopper would

Pick a product, set its inventory to zero in Shopify admin, and open your store in an incognito window so Klaviyo does not recognise you as a contact. Visit the product page and confirm the Notify me button appears, then submit the form with a test email address. Back in Klaviyo, confirm the Subscribed to Back in Stock event logged and the profile entered the flow.

Restock in Shopify admin and watch the alert send

In Shopify admin, raise the product's inventory from zero to a positive number. Within a short window the profile in Klaviyo should move out of the waiting state and into the sent step, and the alert should land in the test inbox (Klaviyo's explanation of flow states). Open the email and check the product image, price and link, since those come from the catalog lookup and are the parts most likely to be wrong (Klaviyo's back in stock email guide).

Repeat the test on a second product

Then run the same test on a second product with a variant, such as a size, to confirm variant-level signups behave. Two clean runs and the flow is safe to trust. The waiting list is worth opening while you are in the flow, and the section below on the back in stock report covers where it lives and what it holds.

How to measure the back in stock automation: waiting list size, conversion and recovered revenue

The back in stock report, and the export behind it

Two exports answer the demand question, and they sit in different corners of the account. The queued subscriber list is the raw one. Open the flow, click the back in stock delay, then choose View back in stock reports and Export, and take the Currently Queued Subscribers CSV. It lists every profile still waiting, which product and variant they are waiting on, and how long they have waited. Only account owners and admins can pull it (Klaviyo's queued subscriber export guide). A product with 400 people waiting justifies a bigger purchase order than one with 12.

The scheduled report is the one that comes to you. Subscribe to the back in stock report from the reports page and Klaviyo emails it on a schedule you set under Account, Settings, More, Back in Stock Reports (Klaviyo's back in stock reports section). Read it for the demand signal. When you want to message the people on the list, Klaviyo recommends a campaign rather than another flow (Klaviyo on back in stock reports).

On conversion, the honest position is that the number depends on whose data you read. Omnisend's 2025 ecommerce data puts back in stock signups at a 6.46 percent conversion rate, the highest of any automation type in its report, with back in stock emails at 58.03 percent open rates, 21.19 percent click rates and a 30.5 percent click-to-conversion rate. The same figures put revenue at USD 8.46 per back in stock email against an average order value of USD 131 (Omnisend's back in stock setup guide with its 2025 figures). Ecommerce agencies that specialise in Klaviyo report a similar band: open rates above 60 percent on the alert email, click rates of 15 to 25 percent and conversion rates of 5 to 12 percent (Purposeful Profits' analysis of back in stock flow performance). Treat those as directional. Your own flow report in Klaviyo will settle the number for your store within a few restocks.

Klaviyo also publishes flow benchmarks aggregated across thousands of customers in different revenue bands, which is the reference Klaviyo itself points to when judging a flow's revenue contribution (Klaviyo's flow email benchmarks). Its benchmark tables cover abandoned cart, post purchase and welcome flows rather than back in stock, so compare your flow's revenue per recipient against your store's other flows instead of chasing a published back in stock figure that does not exist.

The metric that ties it together is recovered revenue: sales that arrive from the alert after the item was unavailable. Klaviyo attributes those orders to the flow, and the number sits next to the list size in your flow report. It belongs in the same weekly review as the other demand-capture numbers, which is why we wrote a companion guide on AI cart recovery for Shopify and Klaviyo for the carts that almost happened, and one on win-back flows for buyers who go quiet after they do purchase. Stockouts, abandoned carts and silent lapsers are the three leaks in one funnel, and each has its own flow.

Frequently asked questions about back in stock alerts

Why is the notify me button not showing on my sold-out product?

The product is probably not being reported as sold out. Shopify only treats an item as out of stock when inventory tracking is on and the level is zero or below, and Klaviyo's back in stock form does not work when Continue selling when out of stock is enabled. A theme that hides sold-out products also removes the page the button would sit on.

Can shoppers waitlist one size or colour instead of the whole product?

Yes. Signups are recorded per variant, so a shopper who wants a medium waits for the medium to restock, and the flow releases each subscriber when their exact item comes back. The waiting list export shows the variant level of demand for every product.

How long do people wait before they hear back?

Until that item restocks. The back in stock delay holds every subscriber until inventory crosses back to available, which can be days, weeks or months depending on your supply. The alert email looks up the product at send time, so the price, image and link stay current even after a long wait.

Should restock alerts go by email or SMS?

Email reaches everyone on the list. Klaviyo notes that text messages are typically read within three minutes, so SMS suits time-sensitive restocks where stock will move fast. Run a split that sends SMS to people who gave consent and email to everyone else, and cap SMS in the flow at one or two messages.

What happens if I restock a small batch and hundreds are waiting?

Set a minimum inventory rule so the flow only fires once stock is at a usable level, and set customer notification rules that cap how many people get told per unit. Klaviyo works through an example where 20 units restock with 5 customers notified per unit, which alerts the oldest 100 subscribers so the message never promises more than the shelf holds.

Can the alert go only to people who viewed the product and opted in?

Yes, and the back in stock form does it by design. The Notify me button only shows on a sold-out product page, so the waiting list holds shoppers who were on that page and asked to be told. Email marketing consent is a separate optional checkbox on the same form, and anyone who signs up by text gives promotional SMS consent as part of the signup.

Does Shopify have a native back in stock option?

Shopify does not keep a waiting list for sold-out products on its own. Stores add one through an app, and the Shopify App Store lists dedicated back in stock apps alongside email platforms such as Klaviyo. The Klaviyo route puts the automatic notify me button, SMS and live product details in one place, which is why it is the common choice for stores already on Klaviyo.

How soon after a restock does the alert go out?

It depends on the notification rules. With no batching set, everyone waiting on the item is released once inventory returns and passes any minimum you set. With a cap per restocked unit, Klaviyo sends the first batch, waits for the wait time between notifications, then sends the next batch based on the stock still left. Klaviyo also cannot check stock again after the first message goes out, so keep the flow to one message, because a second one can reach people after the item has sold out again.

What should the back in stock email say?

Name the product and keep the rest short. The shopper asked to hear about one item, so the subject line carries that item's name, and the body shows the product image, the current price and a button. Klaviyo's pre-built back in stock template already pulls those details from your catalog at send time, so the copy you write is the sentence around them.

Set up your first back in stock alert this week

Start with one product that sells out regularly. Publish the form, build the flow, decide on SMS, run the test loop, and leave the flow on for the next sell-out. Within a restock cycle you will have a waiting list size, an alert conversion rate and a recovered revenue figure for that one product, and those three numbers tell you whether to roll the setup across the catalog.

This is the kind of system we build at Supernodes. The pilot starts with an audit of the store, connects Klaviyo, launches the flow and measures recovered revenue on the first restock. If a sell-out week is costing you sales, speak with us.