Blog/Flows
Flows · 10 Oct 2025 · 12 min

Back-in-stock alerts: how to build the flow and what it is worth

A customer who asks to be told when something returns has given you the clearest purchase intent in ecommerce, with a timestamp attached. Most shops answer it with nothing at all, or with an email that arrives after the restock has already sold out.

Somebody asked to be told. That is the whole advantage.

Every other flow in your account infers intent. Cart abandonment infers it from a cart, browse abandonment from a handful of page views, replenishment from an average interval. A back-in-stock request does not infer anything. Somebody typed their email address into a box underneath a product they could not buy, specifically so that you would tell them when they could.

That makes it the highest-intent audience a shop ever assembles, and the conversion rates on these alerts are unlike anything else you send. The reason shops under-invest in them is not that the value is unclear. It is that the mechanics are slightly awkward — they depend on stock data arriving quickly, on variants being tracked correctly, and on a set of decisions about fairness that nobody enjoys making. All of that is worth the trouble, and none of it is difficult once the decisions are written down.

Why this request is unlike every other signal you collect

It is worth being precise about what a back-in-stock request actually tells you, because the precision is the reason the flow performs.

A cart tells you somebody assembled an order and stopped. There are a dozen reasons for that, and most of them are about your checkout: the shipping cost appeared late, the payment method they wanted was missing, the delivery estimate was longer than they hoped. The message that recovers a cart is fighting whichever of those it was, without knowing which.

A product view tells you considerably less. People arrive from search, realise they are in the wrong place, and leave. Treating a view as intent produces a flow that emails everybody about everything.

A back-in-stock request tells you something narrower and far more useful: this person wanted this exact thing, was ready to act, and was stopped by one specific obstacle that you control and that is temporary. There is no ambiguity about the reason and no persuasion required. When the obstacle is removed, the only job left is telling them.

That is why the flow deserves more engineering attention than its size suggests. It is also why the failure modes are so costly. An alert that arrives late is not a slightly worse email; it is a promise you made to somebody who was ready to buy, broken at the one moment it mattered. Shops that run this badly generate more ill will per message than any campaign they send.

Capturing the request without losing most of them

The form is small, and every additional field on it costs you requests. Treat it as the single-purpose thing it is.

  1. Email address only. Not a name, not a phone number, and not a marketing checkbox as a condition of submitting. You can ask for more later, once you have delivered something useful and earned the right to.
  2. Capture the exact variant. A notify-me button on a product page with size and colour selectors has to record which combination the person was looking at. An alert telling somebody their item is back, in a size they cannot wear, is worse than no alert — it consumes the goodwill and delivers nothing.
  3. Do not require an account. The request itself is the beginning of the relationship. A registration wall in front of it removes the majority of them, and the people it removes are disproportionately first-time buyers, who are exactly the ones you are trying to convert.
  4. Offer the marketing opt-in separately, and afterwards. A back-in-stock request is a specific, limited permission for one message about one product. Treating it as a general newsletter subscription is a compliance problem under any reading of consent rules, and practically it is a fast route to complaints from people who never asked for a newsletter.
  5. Confirm immediately, with the product name and the variant written out in full. This is not a formality. It is how somebody knows the request registered, and it is your only chance to correct a wrong variant before the restock happens.

One further detail that is easy to miss: record the timestamp. It costs nothing at the time and it becomes the fairest possible ordering rule when the restock turns out to be smaller than the queue.

The request is the signal: somebody stopped only because the thing was unavailable
The request is the signal: somebody stopped only because the thing was unavailable

Speed is not a nice-to-have, it is the entire product

This is the flow where synchronisation lag stops being an abstraction and starts being the difference between revenue and an apology.

The chain is short and every link matters. Stock changes in the shop. Your marketing system learns about it. The alert sends. If any of those three is batched rather than immediate, the flow is decorative. A restock of forty units with three hundred people waiting is decided within the first hour, and frequently within the first ten minutes. An alert that goes out on tomorrow morning's catalogue sync reaches people after the thing has gone again — and reaches them with an email that says, in effect, that you told them too late.

The mechanism that works is a webhook on product or stock update, processed immediately, with the send happening on its own rather than waiting for a scheduled window. The mechanism that does not work is a nightly or hourly catalogue import, however reliable it is otherwise.

Measure it rather than assuming it. Record the shop's own timestamp for the stock change alongside the moment your alert went out, and keep the distribution — median and ninety-fifth percentile, not the average, which a single stuck record will ruin. If the ninety-fifth percentile is measured in hours, fix that before touching a word of the copy. No subject line compensates for arriving second.

There is one deliberate exception to sending immediately. If a restock lands at three in the morning in the customer's timezone, sending at once is correct anyway — the people who act on these alerts check their phone at odd hours precisely because they know stock is finite. Holding the message until a polite hour is optimising for an etiquette nobody in this audience asked for.

The chain, and where it usually breaks

From stock landing in the shop to an alert in somebody's hand

0 sStock changes in WooCommerceA delivery is booked in, or an order is cancelled and the unit returns.
~1 sThe shop tells your systemA webhook on product update, sent after the page response has been flushed.
~2 sRequests are matchedBy product and variant, ordered oldest first, with recent buyers suppressed.
~5 sFirst wave sendsSized against available units, not against the length of the queue.
+20 minSecond waveOnly if stock remains. Gap sized so the first wave has a real chance.
A nightly catalogue import replaces the first step with up to 24 hours. Everything downstream is then irrelevant.

What to do when the restock is smaller than the queue

Sending three hundred alerts for forty units creates two hundred and sixty disappointed people, several of whom will write to you about it. This is a fairness problem before it is a marketing problem, and the honest options are all better than the clever ones.

  1. Send in waves, oldest request first. Batch sizes roughly matched to the stock, with a gap between waves so the first group has a genuine chance. First-come, first-served is a rule people understand and accept, and it rewards the person who asked earliest, which is the only defensible ordering.
  2. Say how many there are when the number is genuinely low. "Back in stock — 40 available" sets an expectation that a sell-out then meets rather than breaks. The same sell-out, unannounced, reads as a bait-and-switch.
  3. Never hold a wave back to manufacture urgency. Real scarcity does not need help, and layering invented pressure on top of it is the version of this that turns into a complaint and, in the EU, into a potential unfair-practices question.
  4. Tell the people who missed it. A short note — it sold out again, you are still on the list, we have more arriving — costs nothing, keeps the request alive, and converts a bad experience into a neutral one. Almost nobody does this and it is the cheapest goodwill available in the whole flow.

Waves also give you something operationally useful: a read on how fast this particular product converts. If the first wave of forty clears the stock in twenty minutes, the buyer should know that, because it is a far stronger signal than a sales report.

A thin restock, handled two ways

40 units arriving · 312 people waiting

Wave 1 — alerted40 people
Wave 2 — alerted40 people
Still queued, not yet told232 people
Alert everybody at once312 people
Both approaches sell 40 units. One of them also produces 272 people who were told to hurry and then found nothing.
A thin restock is a fairness problem before it is a marketing problem
A thin restock is a fairness problem before it is a marketing problem

Variants, partial restocks and requests that go stale

The awkward mechanics live here, and they are the reason many shops end up with a flow that technically works and practically annoys people.

  • Alert per variant, not per product. One person waiting on two sizes of the same shirt is two requests. They should receive one alert when either arrives, not two near-identical emails within seconds of each other, and not one alert that fails to say which size came back.
  • Handle partial restocks properly. A product returning in three of its eight sizes should alert only the people waiting on those three. Alerting everybody because the parent product now has stock is the single most common implementation bug in this flow, and it is indistinguishable from carelessness on the receiving end.
  • Expire old requests. A request made fourteen months ago is not intent any more; it is an address that will be surprised to hear from you. Six months is a reasonable life. After that, ask once whether they still want to know, and drop the ones who do not answer.
  • Clear a request once it is fulfilled. Somebody alerted, who then bought, should not remain in the queue for the next restock of the same item.
  • Suppress if they acquired it another way — a different variant, a different channel, in person. Checking the order history at send time costs one query and prevents the most avoidable version of a wasted alert.

None of this is conceptually hard. All of it depends on having variant-level stock and order data available quickly, which is the same dependency as the speed requirement above. Get that right and the rest is a modest amount of logic.

Writing the alert

This is the rare marketing email where the writing barely matters, which is itself the instruction: do not get in the way.

  1. Say the thing, in the subject. "Oud Royale 50 ml is back" is the whole message. Nothing clever, nothing withheld. The person already wants this; a teasing subject line only delays them.
  2. Name the variant in the body, exactly as they chose it. Size, colour, capacity. This is the field that stops an alert being useless.
  3. One button, straight to the product with the variant preselected. Every additional step between the email and the cart loses a share of a conversion you had already earned. Landing on a generic category page is the fastest way to waste the best email you will send this month.
  4. Price from the shop at send time, not from the moment the request was made. Prices move, and a stale price in this email produces a support ticket at the exact moment somebody is trying to buy.
  5. No discount, no cross-sell, no newsletter block. The entire value is speed and clarity. Anything else in the message is competing with the one action you want.
  6. Keep it short enough to read on a phone in four seconds, because that is the situation nearly all of these are read in.

The only optional element worth including is quantity, when it is genuinely low, for the reasons in the previous section. Everything else is subtraction.

Outstanding requests, ranked, are the cleanest read on unmet demand a shop can produce
Outstanding requests, ranked, are the cleanest read on unmet demand a shop can produce

The demand signal your buyer is not getting

The revenue from these alerts is the obvious output. The second output is frequently worth more, and almost no shop routes it to the person who needs it.

A ranked list of products by outstanding notification requests is the cleanest read on unmet demand that a shop can produce. It is better than internal search logs, which capture people looking for things you may never have sold. It is better than a wishlist, which captures aspiration rather than readiness. A back-in-stock request comes from somebody who reached the product page, decided, and was stopped only by availability — the last possible moment before a sale.

That list answers questions merchandising otherwise guesses at. Which sizes are chronically under-ordered. Which colourway to repeat next season. Whether a discontinued line still has a queue waiting for it. Which supplier's delays are costing the most, measured in people rather than in units.

Put it in front of whoever does the buying, weekly, ranked by requests and by the revenue those requests would represent at current prices. Include the conversion rate on past restocks of the same product, because a queue that historically converts at sixty per cent is a different argument from one that converts at ten.

One caveat worth stating in the same report: requests accumulate while a product is unavailable, so a long absence inflates the queue relative to genuine ongoing demand. Show the request rate per week alongside the total, and the two together tell the truth.

Outstanding requests, as a buying report

Ranked by requests, with the revenue they represent at current prices

Oud Royale 50 ml312 · €18,720
Refill pack196 · €5,880
Travel atomiser88 · €1,760
Gift set — winter41 · €2,870
Requests accumulate while a product is absent, so read the weekly rate beside the total before ordering against it.

Measuring it, and the one test not worth running

This flow is unusual in that the standard measurement advice mostly does not apply, and it is worth being explicit about why.

A holdout is close to pointless here, and arguably wrong. Withholding an alert that somebody explicitly requested is not a measurement decision, it is a service failure. The counterfactual you would be measuring — what happens to people who asked to be told and were not — is one you should never create deliberately. Run holdouts on cart recovery, on browse, on win-back. Not on this.

What to measure instead:

  • Revenue per alert sent, which will be the highest figure in your whole programme and should be reported separately so it does not flatter your campaign averages.
  • Time from stock change to send, as a distribution. This is the operational number and the one most likely to degrade quietly after an unrelated change.
  • Conversion rate per wave. If the second wave converts far worse than the first, your waves are too large or too far apart.
  • Requests per product per week, for the merchandising report above.
  • Unsubscribes and complaints on alerts, which should be near zero. Anything else means you are sending alerts people did not ask for — usually the partial-restock bug.

Finally, resist the temptation to expand the flow. The moment a back-in-stock alert starts carrying a promotion, a related-products grid or a newsletter signup, its performance decays and its complaint rate rises, because you have converted a service message into a marketing one. It is the most valuable email you send precisely because it is the least commercial.

Sources and further reading (5)
  1. EDPB — Guidelines 05/2020 on consent under the GDPR
  2. EU — Directive 2005/29/EC on unfair commercial practices
  3. WooCommerce — Webhooks
  4. Google — Email sender guidelines
  5. PHP — fastcgi_finish_request

Checked on 23 September 2026. Provider prices, mailbox rules and legal guidance change — verify anything you plan to act on.

Stock changes that arrive in seconds

Alerts that go out while the stock is still there

Auralata learns about a stock change from your shop as it happens rather than on a nightly sync, and records the exact variant somebody asked about — so an alert reaches the right person while there is still something to buy, and never for a size that did not come back.

Waiting on stockby variant
Oud Royale 50 ml312 waiting
Refill pack196 waiting
Alert sent within4 s
40 units arriving. Sending the oldest 40 requests first.
More from the blog

Everything else we have written down.

Leaving Klaviyo: what actually moves, what has to be rebuilt, and what you lose Migration · 11 min Leaving Klaviyo: what actually moves, what has to be rebuilt, and what you lose Profiles, consent, suppressions, lists, segments and events come across through the API. Flows do not, and neither does your sending reputation. The honest inventory, endpoint by endpoint. Ecommerce SEO: the four things that compound, and the rest that does not SEO · 8 min Ecommerce SEO: the four things that compound, and the rest that does not Product data, structured markup, one canonical page per product and copy a person would actually read. Everything else is a rounding error on a catalogue of a thousand items. Gmail clips your email at about 102 kB. Here is what it costs you. Deliverability · 7 min Gmail clips your email at about 102 kB. Here is what it costs you. The unsubscribe link, the tracking pixel and half your products end up behind a “View entire message” link. The fix is boring and takes ten minutes. An email opt-in is not an SMS opt-in, and it is definitely not a WhatsApp opt-in Compliance · 8 min An email opt-in is not an SMS opt-in, and it is definitely not a WhatsApp opt-in Four channels, four legal bases, one checkout form. What you can reuse, what you have to ask for again, and what auditors look at first. The bulk sender rules are not new any more. Most shops still fail one of them. Deliverability · 8 min The bulk sender rules are not new any more. Most shops still fail one of them. SPF, DKIM, DMARC, one-click unsubscribe and a complaint rate under 0.3 %. A checklist you can finish this afternoon, and the one item that quietly breaks later. The abandoned cart flow that does not sound desperate Flows · 7 min The abandoned cart flow that does not sound desperate Three messages, one discount at most, and a condition that checks whether they already bought. Plus the legal detail most shops get wrong about cart reminders. The open rate has been broken since 2021. Here is what to report instead. Measurement · 7 min The open rate has been broken since 2021. Here is what to report instead. Apple's Mail Privacy Protection pre-loads your tracking pixel whether or not anyone read the message. Four metrics that survived, and one that got more important. WhatsApp now charges per message, not per conversation. Budget accordingly. Channels · 7 min WhatsApp now charges per message, not per conversation. Budget accordingly. The 24-hour conversation window stopped being the billing unit in July 2025. What changed, what is still free, and when a WhatsApp campaign beats an email. AI product images: generate the scene, never the product Content · 8 min AI product images: generate the scene, never the product Generated backgrounds are fine and legal. Generated labels, generated fabric and generated features are a returns problem and, since August 2026, a disclosure problem. Segments that survive contact with a real catalogue Audiences · 7 min Segments that survive contact with a real catalogue Six definitions that still work when the shop has 1,200 products, half of them seasonal, and someone renames a category on a Tuesday. Your customer list is still the best ad audience. It is just harder to upload now. Advertising · 7 min Your customer list is still the best ad audience. It is just harder to upload now. Consent Mode v2, hashed matching and server-side events, explained for people who have to run the campaign rather than argue about it. Never send marketing and receipts from the same subdomain Infrastructure · 6 min Never send marketing and receipts from the same subdomain One bad campaign should not stop order confirmations from arriving. Separating the two takes an afternoon and is the cheapest insurance in email. The welcome series is the only flow that pays for itself in week one Flows · 7 min The welcome series is the only flow that pays for itself in week one Three emails to people who have just decided they are interested in you. What goes in each, why the first one should not sell, and the two mistakes that waste the best audience you will ever have. Browse abandonment is not cart abandonment, and sending the same email costs you both Flows · 7 min Browse abandonment is not cart abandonment, and sending the same email costs you both A cart is an interrupted decision; a browse is an open question. The email that recovers one reads as surveillance when you send it for the other. Timing, wording and the threshold worth having. The second order is the one that matters. A post-purchase flow that earns it. Flows · 8 min The second order is the one that matters. A post-purchase flow that earns it. Most shops say nothing for a fortnight after an order, then ask for a review on day two. What to send between delivery and the second purchase, and why the timing comes from your own data. Win-back flows: what to send at 90 days, 180 days and never Flows · 7 min Win-back flows: what to send at 90 days, 180 days and never A lapsed customer is not a prospect. Three tiers by how long they have been gone, why the discount belongs last rather than first, and the point at which stopping beats escalating. Replenishment reminders: the right day is already in your order table Flows · 7 min Replenishment reminders: the right day is already in your order table If you sell anything that runs out, the best automation you own is a reminder timed to when it runs out. How to compute the interval per product from real repeat orders, and what to do when it is bimodal. RFM segmentation for ecommerce: how to build it without a spreadsheet Audiences · 7 min RFM segmentation for ecommerce: how to build it without a spreadsheet RFM needs three fields you already have. How to score customers, why four groups beat 125 cells, and the message each group should get — without exporting anything to a spreadsheet. Sending from a new domain: how to get the first thousand emails delivered Deliverability · 7 min Sending from a new domain: how to get the first thousand emails delivered A new sending domain has no reputation, and mailbox providers treat that closer to bad than good. Authentication, the first audience, volume ramp, and the three signals that decide the next hundred thousand. Double opt-in in the EU: when it is required and how to implement it Compliance · 8 min Double opt-in in the EU: when it is required and how to implement it The GDPR never says "double opt-in", but several national regulators effectively require it. Where it is expected, where single opt-in holds up, and how to build a record that survives a complaint. SMS marketing in Europe: what it costs and how to launch it properly Channels · 7 min SMS marketing in Europe: what it costs and how to launch it properly Sender IDs are registered per country, opt-out handling is mandatory, and the price per message varies more than tenfold across the EU. The practical checklist before your first campaign. Product photography for AI: how to shoot images a model can work from Content · 7 min Product photography for AI: how to shoot images a model can work from The source photo decides almost everything about a generated lifestyle image. What to shoot, how to light it, and the four mistakes that make a product impossible to place convincingly. Revenue per recipient: how to calculate it and why it beats open rate Measurement · 7 min Revenue per recipient: how to calculate it and why it beats open rate One number that compares a campaign to a flow to a channel. What to include, what to exclude, the attribution window it depends on, and the two variants worth reporting beside it. Customer match after consent mode: how to keep uploading audiences lawfully Advertising · 7 min Customer match after consent mode: how to keep uploading audiences lawfully Your customer list is still the strongest ad audience you own. What consent mode changed, why hashing is not anonymisation, and how to keep uploads lawful without shrinking the audience to nothing. Lost webhooks: how to catch the drift with a nightly reconcile Infrastructure · 7 min Lost webhooks: how to catch the drift with a nightly reconcile WordPress will drop a hook eventually, and nothing errors when it does. Why webhooks alone are never enough, how to build a nightly checksum reconcile, and the three bugs that make it lie to you. Migrate from Mailchimp: what it takes and how to do it Migration · 8 min Migrate from Mailchimp: what it takes and how to do it Contacts and tags export cleanly; consent history, automations and sending reputation do not. What actually moves, what has to be rebuilt, the order to do it in, and how to avoid a deliverability cliff. Product page SEO: how to earn a second visit from search SEO · 7 min Product page SEO: how to earn a second visit from search Most product pages are a photo, a price and the manufacturer's paragraph — the same page a hundred other shops have. What to add so it is worth ranking, in the order that pays back. Engagement gating: how to set it up and why it belongs at send time Audiences · 7 min Engagement gating: how to set it up and why it belongs at send time Filtering dormant addresses is the cheapest deliverability work available. Why the gate has to run at send time rather than at list build, what window to use, and how to exempt transactional mail correctly. SPF, DKIM and DMARC: how to set all three up and what each one stops Deliverability · 8 min SPF, DKIM and DMARC: how to set all three up and what each one stops Three DNS records explained by what breaks without each one. The ten-lookup limit that silently kills SPF, why DKIM needs a selector per service, and how to move DMARC to reject without losing mail. Data processing agreements: what has to be in one and how to get it signed Compliance · 7 min Data processing agreements: what has to be in one and how to get it signed Article 28 requires a contract with specific contents before a supplier touches customer data. What must be in it, which of your tools need one, and the three clauses worth actually reading. The WhatsApp 24-hour window: how it works and how to plan around it Channels · 7 min The WhatsApp 24-hour window: how it works and how to plan around it One clock, started by the customer, decides whether you may write freely or must use a pre-approved template. How the window works, what template approval involves, and how pricing follows from both. One photo into six formats: how to write a brief that holds Content · 7 min One photo into six formats: how to write a brief that holds Six surfaces, six framing problems, one source photo. How to write a format brief that produces all of them consistently — and the safe areas that decide whether the crop survives. Attribution windows: how to choose one and stick to it Measurement · 7 min Attribution windows: how to choose one and stick to it Seven days or thirty, click or view, last touch or first. Every answer is defensible; changing answers mid-year is not. How to pick a window, write it down, and read platform numbers against it. Product feeds for Google and Meta: how to keep price and stock honest Advertising · 7 min Product feeds for Google and Meta: how to keep price and stock honest A feed is a continuous promise that a product exists at that price and can be bought today. How often to refresh, which fields decide whether you rank, and the mismatches that get an account suspended. Idempotency for shop integrations: how to build it and why it is the whole contract Infrastructure · 7 min Idempotency for shop integrations: how to build it and why it is the whole contract Any system that retries will deliver the same event twice. How to choose an idempotency key, why a duplicate must answer success rather than 500, and the three places double-counting actually shows up. Move your sending domain: how to migrate without losing reputation Migration · 7 min Move your sending domain: how to migrate without losing reputation Reputation attaches to the domain and the IP, and neither transfers. Why to change one thing at a time, how to split traffic during the move, and the DNS record that must be removed afterwards. Product structured data: how to implement it so it matches the page SEO · 7 min Product structured data: how to implement it so it matches the page Markup tells search engines what a page means. Which properties matter, why price and availability must match the visible page, and the review markup that earns a manual action. Segment size and revenue: how to find the smaller list that earns more Audiences · 7 min Segment size and revenue: how to find the smaller list that earns more The instinct before a big campaign is to widen the audience. How to test the opposite on your own data, why revenue per recipient falls as the list grows, and where the real ceiling sits. Spam traps: how they get onto a clean list and how to get them off Deliverability · 7 min Spam traps: how they get onto a clean list and how to get them off A spam trap is an address that could not possibly have consented. The three kinds, how each arrives on an otherwise clean list, and why deleting them is not how you fix the problem. One-click unsubscribe: how to implement RFC 8058 and stay compliant Compliance · 7 min One-click unsubscribe: how to implement RFC 8058 and stay compliant Two headers and an endpoint, required by Google and Yahoo for bulk senders. What to send, what the endpoint must do, the two-day rule, and why the footer link still has to exist. Viber or WhatsApp: how to choose for a European shop Channels · 7 min Viber or WhatsApp: how to choose for a European shop The answer is mostly geography and partly pricing. How to find out which app your customers actually use, what each costs, and why running both is usually worse than running one well. Email subject lines: how to write ones that survive the preview pane Content · 7 min Email subject lines: how to write ones that survive the preview pane A subject is read in about forty characters beside a preheader you probably did not write. What survives the preview pane, how to use the preheader properly, and why most A/B tests prove nothing. Holdout groups: how to run one and what it will tell you Measurement · 7 min Holdout groups: how to run one and what it will tell you Attribution tells you which message a buyer saw last; a holdout tells you whether it changed anything. How to size one, where to run it permanently, and how to read a result that comes back at zero. Retargeting with a shrinking pool: how to keep it working Advertising · 7 min Retargeting with a shrinking pool: how to keep it working Consent banners and browser restrictions have cut retargetable audiences to a fraction of site traffic. What still works, why first-party segments outperform pixel pools, and when to stop spending on it. Storing prices with tax and currency: how to get totals right for every shop Infrastructure · 8 min Storing prices with tax and currency: how to get totals right for every shop A number in a price column means nothing alone. Why currency, tax inclusion, rate and shipping must each be stored, and the four calculations that go wrong when any of them is assumed. Rebuilding flows after a migration: how to recreate what will not export Migration · 7 min Rebuilding flows after a migration: how to recreate what will not export Automations have no useful export format. What to document before you lose access, the order to rebuild in, and why exit conditions matter more than the copy you are worried about. Faceted navigation and crawl budget: how to stop wasting it SEO · 7 min Faceted navigation and crawl budget: how to stop wasting it Three filters with four values each produce more URLs than most shops have products. How to decide which facets deserve indexing, and the four controls that stop the rest eating your crawl budget. Lookalike audiences: how to pick a seed that actually works Audiences · 7 min Lookalike audiences: how to pick a seed that actually works The platform's model is rarely the problem; the seed is. How to choose one, why a smaller high-value seed beats your whole customer list, and how often to refresh it. Domain warm-up: how to ramp sending volume week by week Deliverability · 7 min Domain warm-up: how to ramp sending volume week by week A concrete four-week ramp, what to check before each increase, and the hold rule that matters more than the schedule itself. Plus why consistency beats volume for a new sender. Proof of consent: how to record it so it holds up with a regulator Compliance · 7 min Proof of consent: how to record it so it holds up with a regulator Article 7 puts the burden on you to demonstrate consent was given. What a defensible record contains, how to version the wording, how long to keep it, and what to do about consents you inherited. Push notifications for ecommerce: when to use them and how to write them Channels · 7 min Push notifications for ecommerce: when to use them and how to write them Web push is cheap, instant, and the fastest permission to lose for ever. What it is actually good for, how to ask for the permission, and the frequency that quietly destroys the channel. Alt text for email and ecommerce: how to write it and why it is read first Content · 7 min Alt text for email and ecommerce: how to write it and why it is read first Many inboxes block images by default, making alt text the first thing read. How to write it for products, decorative images and image-only emails, and the mistakes that make it useless. Ecommerce analytics: how to count people instead of clicks Measurement · 7 min Ecommerce analytics: how to count people instead of clicks A visitor who refreshes ten times is one visitor. Why session-based metrics mislead, the four numbers worth reporting, and how to handle the traffic that consent rules make invisible. Conversions API: what it fixes, what it does not, and how to set it up Advertising · 7 min Conversions API: what it fixes, what it does not, and how to set it up Server-side events recover measurement that ad blockers and browser limits removed. What they genuinely fix, why deduplication matters, and why this is not a route around a visitor's refusal. Sync lag: how to find out your data is an hour behind, and fix it Infrastructure · 7 min Sync lag: how to find out your data is an hour behind, and fix it Stale data does not announce itself — everything renders and every number looks plausible. How to measure real end-to-end lag, the three causes worth checking first, and what to put on screen. Running two marketing tools at once: how to plan the overlap Migration · 7 min Running two marketing tools at once: how to plan the overlap The fortnight where both platforms are live is cheap insurance and an easy way to send everything twice. What to switch when, the three rules that prevent duplicates, and how to compare fairly. Category page SEO: how to make them the pages that rank SEO · 7 min Category page SEO: how to make them the pages that rank People search for the category and buy from the product. Why category pages carry the ranking, what copy belongs on them, and how to handle pagination, sorting and thin categories. Profile merging across devices: how identity resolution actually works Audiences · 7 min Profile merging across devices: how identity resolution actually works A phone and a laptop are two records until something connects them. What the identifiers are, what should happen at the moment of a merge, and why creating the profile early is the whole point. Bounce handling: how to tell a soft bounce that should be treated as hard Deliverability · 7 min Bounce handling: how to tell a soft bounce that should be treated as hard A hard bounce is permanent and a soft bounce is temporary — until you meet the ones that repeat for ever. How to classify by code and by repetition, and the retry schedule that stops the damage. Data retention for ecommerce: how long to keep customer data and how to delete it Compliance · 7 min Data retention for ecommerce: how long to keep customer data and how to delete it There is no single retention period, because different data has different clocks. How to set one per category, why deletion means anonymisation for orders, and what a deletion request actually requires. Choosing a channel per message: a framework that holds up Channels · 7 min Choosing a channel per message: a framework that holds up Email, SMS, WhatsApp and push have different costs, permissions and tolerances for interruption. Three questions that decide where a message belongs, and a table of the common cases. AI product images: when to use them and when not to Content · 7 min AI product images: when to use them and when not to Generating a background is ordinary image editing at scale. Generating the product, or a claim about it, is not. Where the line sits, what EU rules require, and the four checks before publishing. Reconciling ad platform numbers: why they never match and what to trust Measurement · 7 min Reconciling ad platform numbers: why they never match and what to trust Meta says 340, Google says 210, your shop recorded 402 orders total. Five structural reasons they disagree, which number to plan with, and the ratio worth tracking instead. Splitting ad budget without reliable attribution: how to decide Advertising · 7 min Splitting ad budget without reliable attribution: how to decide Attribution got worse and is not coming back. How to allocate budget using holdouts, marginal tests and a stable baseline rather than waiting for a number you will never have. Time zones in reporting: how to stop them breaking one report a quarter Infrastructure · 7 min Time zones in reporting: how to stop them breaking one report a quarter A day is not a fixed thing. Where to store times, where to convert them, why scheduled sends need the shop's clock, and the daylight-saving cases that break a report twice a year. After a migration: what to check on day one Migration · 7 min After a migration: what to check on day one Most migration problems that become expensive were visible on day one. A checklist in priority order, the two numbers to watch for a fortnight, and what to keep before cancelling anything. Ecommerce blog strategy: which posts to write and which to skip SEO · 7 min Ecommerce blog strategy: which posts to write and which to skip Most shop blogs are company news and seasonal filler. The four kinds of post that earn traffic which converts, the three that never do, and how to link them to the products. Review requests: how to ask so people actually answer Flows · 12 min Review requests: how to ask so people actually answer Reviews are the cheapest high-converting content a shop can produce. When to ask, why one specific question beats a star widget, what to do with bad reviews, what EU law now requires, and how to get the value back out. VIP customers: how to identify them and what to actually do for them Flows · 12 min VIP customers: how to identify them and what to actually do for them Most shops define VIPs by lifetime spend and reward them with the discount everyone gets. How to define the group so it stays current, why recognition outperforms discounting, the entry message, and how to handle people falling out.