Skip to main content
OmerH
Partner - Gold
2026 Champion
October 15, 2026

BFCM flow strategy: how I plan, update, and revert Klaviyo flows

Omer Hazer, Klaviyo Champion

How to prep Klaviyo flows for BFCM, from date logic to content swaps and sale cutoffs.

Every October, someone asks whether we can just drop a countdown timer into the abandoned cart flow. Adding urgency is the easy part. What decides whether BFCM goes smoothly is taking it back out.

The year the cleanup tripped us up

I learned this the unglamorous way. The day after BFCM, my team was tired. We switched every flow back correctly, but left the BFCM versions sitting inside the live flows with names that only made sense to whoever built them. One evergreen email also had a label that didn’t match the branch it sat in.

Nothing sent incorrectly. A year later, though, anyone who opened that flow had to stop and work out which version was the real one. A rushed revert does its damage quietly: no error on the dashboard, just a flow nobody fully trusts.

So now I work backwards. Every BFCM message is named with the year. Every change goes into a log with a revert date and an owner. The revert gets the same QA as the launch. If I can’t say when a change comes out, who owns it, and what happens to the people in the queue, the change isn’t ready.

The revert also matters for a bigger reason: the sale doesn’t really end at the cutoff. I’ll come back to that at the end.

Start with the sale window, not the flow

Before anyone opens a flow, I map the actual sale window:

  • early access
  • launch
  • any extension
  • the hard cutoff, including the time zone

Then I put the flow changes on the same campaign calendar. Flows and campaigns are competing for the same inbox, so they need to be planned together.

We plan campaigns about a month ahead and usually schedule them two weeks out. Every BFCM flow change gets the same treatment: a date to switch on, a date to switch back, and a named owner. It goes in the calendar, not in someone’s memory.

If you work with an agency or other external partner, make sure they have the same dates and owners. A clear internal plan won’t help much if the person making the change is working from an older version.

Do you need faster flow timing? Probably not

Usually, we change less than people expect.

Abandoned cart and checkout already send their first message within about an hour, and that timing still works during the sale. The bigger change is usually the message itself.

The timing decision I pay more attention to is which flows should go quiet. We pause winback for the sale window. More on that below.

We also leave Smart Sending off for cart and checkout. Campaign volume roughly doubles for us in November, and Smart Sending can suppress a high-intent flow message if a campaign went out a few hours earlier. Welcome, browse, and other lower-intent flows keep Smart Sending on to help protect the list.

That choice depends on your sending pattern. A brand sending one campaign a week has a different problem from a brand sending every day through November.

Swap in BFCM messaging without rebuilding everything

This is where the mess from that earlier year turned into a system. We don’t edit evergreen emails for BFCM. We duplicate the message inside the existing flow, add “BFCM” and the year to the name, make the seasonal changes, and then switch the statuses:

  • BFCM version live
  • evergreen version in draft

At the cutoff, we switch them back. The evergreen copy stays intact, and there’s no rebuild waiting for us after the sale.

Klaviyo users have also discussed using scheduled flow statuses so the switch happens at a set date and time. That’s useful when the revert would otherwise land on an exhausted Monday morning.

For changes that appear across several flows, Universal Content blocks can save some repetitive editing. Update the shared block once, and the change carries through wherever it’s used.

The biggest BFCM swap is usually the discount. If the whole site is 30% off, an abandoned checkout email offering 10% or 15% is unnecessary at best. At worst, it stacks with the sale and eats margin.

During BFCM, our checkout emails use no-discount versions that point to the sale itself. In the account I work on, checkout emails earn about the same per recipient during the sale as they do during the rest of the year, while cart emails earn roughly 70% more. The sale is already doing the work. We don’t need to add another discount on top of it.

If you want to add an incentive, consider something that isn’t another percentage off: free shipping at a threshold, a gift with purchase, or a spend-and-save offer. We only build a separate flow when the audience is genuinely different, such as early-access subscribers before launch. If the trigger is the same, the BFCM version belongs inside the existing flow.

Don’t forget the people already waiting in the queue

This is the part that’s easy to miss.

Someone who abandons checkout on Sunday night might be sitting in a time delay when the sale ends. They’ll get whichever message is live when they reach that step.

That’s another reason I prefer the status flip. When we switch back at the cutoff, it also fixes the people already moving through the flow. We don’t have to hunt down every queued send.

Every BFCM code also gets a hard end date in Shopify. That way, an old email can’t hand out a working discount after the sale. Countdown timers and “ends tonight” language stay in the BFCM versions, never in evergreen copy, so they disappear with the status change.

The cutoff is a calendar event with a named owner. “Someone will sort it out Tuesday” is not a process.

Which flows should change?

Here’s the version I use as a starting point. Your product, shipping timeline, and offer structure may call for different decisions.

Flow What changes for BFCM How and when to revert
Welcome series New sign-ups go into a separate early-access flow instead of the standard welcome discount. Once the sale is live, the welcome flow carries a BFCM banner and points to the sale. In our account, welcome revenue per recipient nearly triples during BFCM. Move the early-access flow to draft the day after cutoff and bring the welcome discount back the same day. Nobody should buy at 10% off and then see 30% off a week later.
Abandoned cart and checkout Swap discount emails for no-discount BFCM versions. Keep Smart Sending off. Leave timing unchanged. Switch statuses at the cutoff. Keep the BFCM versions in draft and label them clearly for next year.
Browse abandonment Leave it running with a sale banner. Browse activity usually spikes during BFCM, and these shoppers are already showing interest. Remove the banner at cutoff.
Post-purchase Time messages from fulfillment or delivery rather than the order date. Shipping slows down during peak season, and a “how are you loving it?” email before the parcel arrives is a bad look. Pull cross-sell offers during the sale and flag BFCM first-time buyers into their own segment. Return to normal once the shipping backlog clears. Give the BFCM cohort its own second-purchase path.
Price drop and back in stock Leave back in stock alone because it’s high intent. For price drop, decide what should happen if the sale uses Shopify price changes. The flow may fire for every affected product when the sale launches. Restore evergreen copy at cutoff. Prices going back up should not trigger a price-drop message.
Winback Pause it for the sale window. Lapsed customers are already receiving the BFCM campaign, and another discount adds volume where you may not need it. Turn it back on the week after the sale to reach customers who didn’t come back for BFCM.
Birthday and date-triggered If the birthday offer is weaker than the sale, suppress it for the window. A 10% birthday code in the middle of a 30% sale feels like a downgrade. Return to normal after cutoff.
Sunset and list cleaning Leave it alone. Let it run after the sale. The list you build in November is the list you’ll send to in January, so clean it before then.

Then the sale ends, and the real test begins

The flows are back to evergreen. The codes have expired. The dashboard shows your biggest November yet. It’s tempting to call it done.

But look at who just joined your list: a wave of first-time buyers, many of whom bought once because of the discount. Some will become loyal customers, and others were only ever there for 30% off. The next 90 days decide whether BFCM was a good acquisition event or just an expensive spike in November revenue.

Most BFCM planning stops right before that question gets answered. I think that’s where the most valuable flow work starts.

Turning first-time buyers into second-time buyers

Tag the cohort. Build a segment of first-time buyers whose first order landed in the BFCM window. That’s the audience I’d watch for the next 90 days.

Onboard before you sell again. Help new customers use what they bought, understand what to expect, and get to the first useful moment with the product. People who get value from a product have a reason to come back. Another discount on day three mostly teaches people to wait for the next sale.

Time the second ask to the product, not the calendar. For a consumable, the next message might land just before the customer is likely to run out. For something they buy less often, a relevant cross-sell a few weeks later may make more sense.

Also look for gift buyers. Gift notes, gift wrap, a different shipping name, and gifting apps can all be clues. A “how are you finding it?” message doesn’t make sense for someone who bought a present. They may need an occasion reminder or a gift guide instead.

If you use an incentive, try something other than another percentage off: free shipping, a gift with purchase, early access, or loyalty points.

And measure the right number. BFCM revenue tells you what happened in November. The more useful retention measure is the share of BFCM first-time buyers who place a second order within 90 days, compared with first-time buyers acquired at full price.

The post-BFCM retention conversation has some good ideas for looking at that next step, including post-purchase follow-ups and re-engagement for customers who haven’t bought again.

What changes when you plan this way

When the off switch is planned first, the cutoff stops being a scramble. It becomes the start of the part of BFCM that tells you whether the sale actually worked.

The short version:

  • Plan the off switch before you flip the on switch.
  • Duplicate messages instead of editing evergreen emails.
  • Remember the queue. People in a time delay get whatever is live when they reach the message.
  • Let the sale be the incentive when a sitewide offer is already running.
  • Keep planning after the cutoff. The second purchase is where you learn whether the acquisition paid off.

Over to you

What’s the first thing you do in the 30 days after BFCM to help new customers buy a second time? Would love to hear how you’re approaching it in your own account.

Founder & Chief Executive, Atlas Studios | Shopify Plus & Klaviyo Master Gold Partner

Growth strategy, retention marketing, and smart Shopify development for mid-market brands.

www.atlasstudios.agency