Building a Klaviyo back in stock flow that does not annoy people
The alert that sells the restock, and the settings that stop it firing at somebody who bought the thing last week.
A back in stock alert is the rarest thing in the stack: a message the reader asked for. That's exactly why it's worth being careful with. The ones that go wrong go wrong in the same four ways, and every one of them is a setting, not a copy problem.

The customer asked for this one
Nobody asked for the rest of your emails. They asked for this one. They found an out of stock product, handed over an address to be told when it returned, and then waited, and nothing else in the stack starts from that much intent.
It also arrives with a deadline you didn't have to invent. Stock really is limited, so the urgency in this email is true, and true urgency is the only sort worth using.
So the temptation is to overwork it. Almost every way this flow goes wrong is an attempt to squeeze more out of a message that was already going to convert on its own.
What actually fires the alert
The flow fires on the back in stock event your store or your alerts app publishes when a variant returns to a positive inventory level. The word doing the work in that sentence is variant.
- Somebody requests an alert against one variant, not the whole product
- The store publishes an event when that variant is back in stock
- The flow sends only to the people waiting on that variant
- Everybody alerted comes off the waiting list for it
If your integration reports at product level, the person waiting for a small gets told the extra large has landed, and they'll unsubscribe, not complain. Check which level your app publishes before anybody writes a word of copy.
How a welcome alert turns into a nuisance
Four faults account for nearly every complaint we see about this flow, and not one of them is the writing.
- Smart sending switched off, so a shopper gets the same alert twice
- No exclusion for people who already bought it, so the alert chases the buyer
- No stock check before send, so the email lands after the restock has gone
- No cap on alerts per person, so a big restock day sends somebody six emails in a minute
The expensive one is that missing stock check. An alert arriving after the last unit has gone turns the most engaged person on your list into an annoyed one, and they were engaged an hour earlier because they trusted you to tell them.
What the alert should say, and what it should not
Send it quickly, keep it plain, and make the product the whole message. The reader already knows what they asked for, so the job is confirmation and a link. Not persuasion.
Leave the discount out. They wanted it at full price, which is why they signed up in the first place, and a code in the alert teaches the next shopper that waiting for a restock is how you get money off.
Send it from the same name as everything else you send. An alert arriving from a notifications address the reader has never seen is the one email in the account where an unfamiliar sender name reliably reads as a phishing attempt.

The flow is only as honest as your inventory feed
This is the one flow in the library that makes a promise about a physical thing. If the feed is wrong, or the restock is a dozen units against a waiting list of hundreds, the email is promising something the warehouse can't deliver.
Two settings save most of the trouble. Check the inventory again immediately before send, and hold the alert when the count has fallen under the size of the queue waiting for it.
Where the restock is much smaller than the queue, send in batches by request date and say so in the email. Being told you were second in the queue and it sold out is survivable. Being told nothing at all isn't.
How it fits beside the rest of the flows
Back in stock is an intent flow, so it belongs next to browse and category browse, not in the retention layer. Somebody requesting an alert has told you the product, the variant and the moment, which is more than any segment will give you.
- Hold alert recipients out of the category browse flow for a few days, so nobody is chased twice
- Feed the requests into a segment: a waiting list is a demand signal your buying team would like to see
- Keep it out of the campaign calendar, because it's triggered by stock, not by a date
- If you run SMS, this is the alert worth the buzz in the pocket, and it belongs with WhatsApp and SMS
The rest of the library sits on the flows page, and the terms used here are in the glossary. If yours is already built and firing twice, look at the settings before you rewrite the copy. It's almost never the copy.

Alex Gregoriades
Operations director at Engage Commerce, where he runs the accounts the writing comes out of.
FAQs

Do I need an app to run a back in stock flow in Klaviyo?
You need something that publishes the back in stock event. Some Shopify apps do it natively, others need the integration switching on, and a few only report at product level, not variant level. Check which one you've got before building, because variant level is what makes the alert accurate.
How quickly should the back in stock email go out?
As soon as the event fires. Interest is at its highest the moment the stock lands, and any delay you add for tidiness is spending somebody else's patience. The only good reason to hold it is a stock check when the restock is small.
Should a back in stock email include a discount?
No. The reader already wanted the product at full price, which is why they asked to be told. A code in the alert costs you margin on a sale you'd already won, and it teaches everybody else that waiting for a restock is how you get money off.
Is a back in stock flow worth building for a small catalogue?
If anything sells out, yes. It costs one flow and a sign-up unit on the product page, and it replaces the email nobody sends: the one telling a customer who was ready to buy that they can now buy. Small catalogues are also where a single restock matters most.
What stops the same person getting several alerts at once?
Smart sending plus a sensible cap per person. On a big restock day one shopper can be waiting on several variants, and without a limit they get a stack of near identical emails in the same minute. That's the fastest unsubscribe in the whole flow library.
The easiest email in the account to get wrong
A back in stock alert converts because somebody asked for it, so the only real job is not spoiling it. Variant level triggers, an exclusion for buyers, a stock check and a cap on how many one person can receive will fix almost every version of this flow we're asked to look at. Build it once, then leave it alone and let the rest of the stack do the selling.
Klaviyo mechanics
The settings that quietly decide what your flows do, from someone who has rebuilt a flow stack.

The Klaviyo attribution window, and what it is actually counting
What the window credits, where it is set, why Klaviyo and Shopify never agree, and what an honest report has to say out loud.
Read it
How to stop Klaviyo flows overlapping when cart and browse fire together
Cart and browse abandonment keep double emailing the same shopping session, and each flow reports healthy on its own. One list filter referees them.
Read it
Your Klaviyo VIP segment is a badge while your best customers get first-timer emails
The spend report knows who your best customers are. The flow logic treats them like strangers. Closing that gap is the whole job.
Read itWould you rather this was just handled?
Bring your Klaviyo account and the thing annoying you most. We will tell you what we would fix first, on the call, before you spend anything.


Book a call with our founder.
We're all about relationships built on trust, mutual respect and a shared vision for success. If that sounds like your vibe, let's make some waves together 🌊



