Your Late-Night Cyber Monday Text Can Now Wait Until Morning. Decide If It Should.

Every Cyber Monday someone on the team asks the same question around 7 p.m.: can we send one more text? And every year the answer is "it depends where they live." A 7:30 p.m. Pacific text is fine in Los Angeles. In New York it's 10:30 p.m., which is past the 9 p.m. federal cutoff for marketing texts.

Here's why it matters more than it sounds. SMS is not a channel to sleep on. We see it pull its weight in accounts pretty much every day, and BFCM is when it works hardest. That makes the last-night text worth getting right, not skipping.

Klaviyo flows have handled this for a while with quiet hours. Campaigns didn't, so most brands worked around it by hand: splitting the list by time zone, sending earlier than they wanted, or just skipping SMS on the last night of the sale. As of this month, that protection covers campaigns too. Here's what changed and the one setting I'd actually spend time on before Black Friday.

What Klaviyo shipped

Quiet hours now apply to any campaign with SMS, MMS or RCS content (Klaviyo's October update). When you schedule or send, there's a new section called "Manage messages sent in quiet hours" with two choices (help article):

  • Delay to next compliant time. The message waits until that person's quiet hours end, then sends. You can add a maximum delay from 1 to 12 hours. If the wait would hit that number, the message is skipped instead.
  • Skip messages. Anyone in quiet hours at send time doesn't get it at all.

The check happens per recipient at send time, based on where each person is. So two people on the same campaign can get it hours apart. Someone outside quiet hours gets it right away. Someone inside gets it delayed or skipped. Delay is the default.

One SMS campaign sent at 7:30 p.m. Pacific across four US time zones: delayed in Eastern, skipped in Central, sent right away in Mountain and Pacific

The cap is the real decision

Delay vs. skip sounds like a yes/no setting. It isn't, because of the cap. The way I'd think about it: the cap is how many hours the message stays true.

Klaviyo's own example makes the math easy. Say your quiet hours run 9 p.m. to 8 a.m. and you send at 10:30 p.m. in someone's time zone. That message waits 9.5 hours and lands at 8 a.m. Set the max delay to 9 hours and it's skipped. Set it to 10 and it goes out at 8 a.m.

Now apply that to BFCM week:

  • "Early access starts tomorrow." Still true at 8 a.m. Delay, no cap needed.
  • "Black Friday is live" at 9 a.m. Eastern. That's 6 a.m. for your West Coast list, so they're in quiet hours. Delay is right. It lands when their quiet hours end, which is still the morning of the sale.
  • "Last chance, sale ends at midnight." Delivered at 8 a.m. the next day, this text is wrong. Skip it. A skipped text costs you one touch. A text announcing a sale that already ended costs you an unsubscribe and probably a support ticket.
  • "Order by Dec 15 for Christmas delivery." Delay, but set the cap so a held message can't land after the cutoff. If you send the night before the cutoff, skip.
  • Low-stock or restock alerts. Short cap. If it waits 10 hours, the size is probably gone.

The pattern: anything that points to a future moment should delay, and anything that points to a deadline should skip or have a tight cap. Klaviyo's help doc lands in the same place: delay when the message stays useful, skip for flash sales, expiring offers and event reminders.

Delay or skip guide for BFCM text messages by message type

Accurate location data is the whole game

The campaign setting only decides what happens inside quiet hours. Your account settings decide what quiet hours *are*, so look at those before you schedule anything (text message settings).

A few things worth knowing:

  • Klaviyo's standard window is 8 p.m. to 11 a.m., which is more conservative than the law. In the US, the TCPA bars sending before 8 a.m. and after 9 p.m., and Florida cuts it off at 8 p.m. Country and state rules can override your custom hours.
  • For campaigns there's a Profile location option, which uses each person's profile location and time zone. If that's missing, it falls back to the phone's area code in the US and Canada and the country's default time zone elsewhere.
  • Area codes aren't addresses. Plenty of people kept a number from a city they left years ago. Klaviyo says this directly: the default window doesn't guarantee compliance everywhere. So if you're unsure what applies to your list, that's a question for your lawyer, not for a blog post.

That's the part most brands skip. Every delay, skip and send time in this post is only as good as the location on the profile. If the data is wrong, the text either lands at the wrong hour or gets held when it didn't need to be. So before BFCM, fix the data:

  • Ask for it. Add a ZIP code or state field to your SMS sign-up form. One extra field beats guessing from an area code.
  • Make sure your store data flows in. Shipping addresses from past orders are the most reliable location you have. Check that your ecommerce integration is syncing customer profiles into Klaviyo.
  • Size the gap. Build a segment of SMS subscribers with no location or time zone on their profile. That's the group running on area-code guesses. If it's big, that's your first project, not the copy.

My general setup: leave the stricter standard window alone unless you have a reason to widen it, use profile location for campaigns, and don't plan BFCM texts that need to go out at 8:01 a.m. to work.

Read the results a day later

This one catches people. A campaign can show Sent while some messages are still being held for quiet hours. If you pull results at 11 p.m. on Cyber Monday, you're looking at a partial send.

Here's where to look instead:

  • The campaign's Overview page shows a quiet-hours banner with messages sent vs. held.
  • Recipient activity > Skipped lists everyone marked Skipped: Quiet Hours.
  • For delayed messages, each person's Received Text Message event has a Quiet Hours Hold Duration field, rounded up to the hour.

Klaviyo's advice is to give delayed messages time to finish before judging performance. I'd go further for BFCM: compare SMS campaigns the morning after, not the night of. Otherwise your late-night send looks worse than it was, and you'll make the wrong call for next year.

How I'd set it up for BFCM week

  1. Review the account quiet-hours settings, switch campaigns to profile location, and check how many SMS subscribers are missing a location.
  2. Go through the SMS calendar and tag every send as "future moment" or "deadline."
  3. Future moment: delay. Add a cap only if a much later arrival would read oddly.
  4. Deadline: skip, or a cap short enough that it can't land after the deadline.
  5. Write the copy so it survives a delay where you can. "Ends tonight" breaks after a delay. "Ends Monday at midnight PT" doesn't.
  6. Pull SMS results the next morning, and check the skipped count. If a big share of a list got skipped, the send time was the problem, not the message.

None of this is complicated. But it's the kind of thing that gets decided at 7 p.m. on Cyber Monday if nobody decides it in October, and that's when the wrong choice gets made.

About the Author
Frank Field

Frank Field

$70mm in media managed, avg. 40% revenue increase. 7+ Year Strategist. Masters in Business Management. As a volleyball player, competed professionally overseas and on the American Pro Beach Volleyball Tour. Dean's List every semester, then graduated with Merit from Durham University's prestigious business program.

LinkedIn