After-hours auto-replies that don't annoy people
An out-of-office reply is the easiest automation to build and the easiest to get wrong.
A Business Hours Check is a step that splits your flow in two based on a weekly opening schedule: one path runs when you are open, the other when you are closed. It handles overnight hours and public holidays, and it uses your organisation's timezone unless you set a different one.
This is the second automation most stores should build, after stopping the bot when a human replies. It takes ten minutes and removes the "is anyone there?" follow-up message that otherwise arrives twenty minutes after every late-night enquiry.
Build it
- New automation, trigger Customer Message Received.
- Add a Pause Before Repeating step set to about 360 minutes, so a customer sending four messages at midnight gets one reply rather than four.
- Add a Business Hours Check. Fill in each day's real open and close times, mark your closed days, and add public holidays.
- On the open path, add End Automation. During working hours this flow should do nothing at all.
- On the closed path, add a Send WhatsApp Message with your out-of-office text.
- After it, add Update Conversation Status set to pending, so the chat sits in a queue your team can work through in the morning.
Install it in one click
The flow above, ready to go. You'll need to set your real opening hours and edit the message.
Add this automation to my account It installs as a draft. Nothing is switched on and no customer is messaged until you press Publish.The two mistakes
Mistake one: no cooldown. Without the Pause Before Repeating step, every message a customer sends triggers another out-of-office reply. Someone who types three short sentences gets told three times that you are closed. This reads as broken, and it is the most common complaint about out-of-office automations.
Mistake two: not saying when you reopen. "We're currently closed" tells the customer nothing they did not already infer from the silence. "We're back at 9am tomorrow" ends the conversation satisfactorily.
An out-of-office message is free. The customer messaged you, so the 24-hour window is open and free text is allowed. Meta's pricing documentation confirms service conversations have been free and unlimited since 1 November 2024 — so this automation costs nothing to run, however many people message you at 2am.
Business Hours or Time of Day?
| Business Hours Check | Time of Day Check | |
|---|---|---|
| Models | A full weekly schedule plus holidays | One daily cutoff time |
| Branches | open / closed | before / after |
| Use for | "Are we working right now?" | "Have we missed today's dispatch?" |
They are often both useful in the same store but rarely in the same flow. A same-day dispatch cutoff is a Time of Day question — covered in answering delivery questions automatically.
Write the message properly
Four things belong in it, and nothing else:
- That you have received the message.
- When you will reply — a real time, not "as soon as possible".
- What they can do meanwhile, if anything (track an order, read a policy).
- Nothing promotional. This message goes out at 2am to someone who may be annoyed; an offer here is how you get blocked.
Two or three lines. Long out-of-office messages read as an attempt to avoid answering.
Getting the timezone right
The check uses your organisation's timezone by default, which is what you want if you and your customers are in one place. If you sell across timezones, the schedule still describes your working hours — the customer's local time does not change when your team is at their desks. Saying "we're back at 9am UK time" is more useful than pretending otherwise.
What it will not do
The check answers "are we open right now?" for a message arriving right now. It cannot schedule a message for the moment you reopen — there is no per-contact scheduled send. If you want to greet overnight enquiries at 9am, the practical answer is a person working the pending queue, not an automation.
Doing more with the closed path
Once you have the branch, the closed path is a good place for self-service, since these are exactly the customers who would otherwise wait until morning. A menu offering order tracking or a link to your returns policy resolves a share of them without anyone waking up. Add it after the out-of-office message using an Ask Customer a Question step.
Keep the option to reach a human on that menu regardless. Someone messaging at midnight about a wrong delivery does not want a menu, and a flow with no exit is worse than no flow.
Writing hours that are actually true
The most common mistake is not technical. It is entering the hours you wish you worked rather than the hours someone is genuinely watching the inbox.
| If your schedule says | The customer expects | So enter |
|---|---|---|
| 09:00–18:00, but nobody checks until 10 | A reply at 09:05 | 10:00–18:00 |
| Open Saturday, one person, sometimes | A reply on Saturday | Mark Saturday closed, and be pleasantly surprising |
| Open through lunch, but nobody is there | A reply at 13:15 | Split the day, or accept the gap |
Under-promising costs nothing here. A customer told you reopen at 10 and hearing from you at 09:30 is delighted; the reverse is a complaint.
Holidays are the part people forget
The schedule handles your weekly pattern, but public holidays and closures need adding by hand. A store that closes for a week and leaves its normal hours running tells every customer that someone is available — and then nobody replies for seven days.
Put a recurring reminder in your calendar to add the next quarter's closures. It is a two-minute task that prevents the worst version of this flow, which is one that actively misleads people.
What the closed path is really for
An out-of-office message is the floor, not the ceiling. These are customers who would otherwise wait until morning, and a share of them have questions your flow can already answer.
- Order status. The most common overnight question, and answerable without a human — the lookup flow works at 2am exactly as it does at 2pm.
- Policy questions. Returns, delivery times, sizing. A knowledge base handles these — AI answers from your own website.
- Everything else. Set the conversation to pending and let it queue.
Adding those two turns a dead overnight window into genuine self-service, and because the customer messaged first, every message in it is free text at no cost.
The timer that catches people out
A customer messaging at 11pm on Friday opens a 24-hour conversation window that closes at 11pm on Saturday. If your team returns on Monday, free text will fail with error 131047 and only an approved template will send — so the overnight queue you carefully built can be unanswerable by the time anyone reads it.
Two mitigations. Clear the weekend queue on Saturday morning if you can, or keep one approved utility template for re-opening a conversation, which is charged once and free again as soon as the customer replies. The mechanic is in the 24-hour window, and Meta's documentation sets out the reset behaviour.
Test it at the wrong time of day. The one bug this flow reliably has is a schedule entered in the wrong timezone, and you will not notice it during working hours because the open path does nothing. Message your own shop number late one evening before you rely on it.
Selling across timezones
The check uses your organisation's timezone, and that is the right behaviour even when your customers are elsewhere: the schedule describes when your team is at their desks, which does not change based on where the customer is.
What does need thought is the wording. "We're back at 9am" is ambiguous to someone six hours away, and "we're closed" tells an overseas customer nothing useful about when to expect a reply. Naming the timezone — "we're back at 9am UK time, which is about 8 hours from now" is better still — costs one clause and prevents a follow-up message.
If a meaningful share of your orders come from one distant market, the more honest answer may be to extend your stated hours or say plainly that replies to that region take a day. Customers plan around accurate information; they complain about optimistic information.
What this flow cannot do
- It cannot message people when you reopen. There is no per-contact scheduled send, so a customer who wrote at midnight does not get a "we're open now" message at 9am — and that queue has a deadline of its own, covered in what to do with chats that arrive overnight. A person working the pending queue is the answer.
- It cannot tell whether anyone is actually available — only whether the schedule says you are open. A team all in a meeting looks open to it.
- It cannot vary by team. If your orders desk and your wholesale desk keep different hours, that is two flows with two schedules, each gated by a keyword condition.
A five-minute setup checklist
- Hours entered are the hours someone genuinely watches the inbox.
- Closed days marked closed, including any half-days.
- The next quarter's public holidays added.
- Timezone correct — check it, do not assume.
- A cooldown of a few hours so the reply cannot repeat.
- The open path ends in End Automation, so nothing fires during working hours.
- The closed path sets the conversation to pending, so it queues.
- Tested by messaging your own number outside hours.
Frequently asked questions
Why does my out-of-office message send multiple times?
The flow is missing a cooldown. Add a Pause Before Repeating step — around 360 minutes — so a customer sending several messages gets one reply rather than one per message.
Does an out-of-office auto-reply cost anything?
No. The customer messaged you first, so the 24-hour service window is open and free text is free. Meta made service conversations free and unlimited from 1 November 2024.
Should I use Business Hours Check or Time of Day Check?
Business Hours Check models a full weekly schedule with holidays and branches open/closed. Time of Day Check handles a single daily cutoff and branches before/after — use it for dispatch deadlines.
Can an automation send a message when we reopen?
No. There is no per-contact scheduled send. The flow can only reply when a message arrives, so overnight enquiries are best handled by a person working the pending queue in the morning.