The WhatsApp 24-hour window, explained properly

The single rule that shapes everything else on WhatsApp Business: you can write freely for 24 hours after the customer's last message, and after that you cannot write at all without an approved template. Most of the frustration people have with the platform is this rule, met unexpectedly.

The Zanii platform team · · 6 min read

What opens the window

Any inbound message from the customer. A reply, a reaction, a button tap on your template, a message started from a click-to-WhatsApp ad. Each one resets the clock to a fresh 24 hours from that moment — not from the start of the conversation.

What does not open it: your own template landing, a delivery receipt, a read receipt. The customer has to act.

Error 131047, in plain terms

131047 is "re-engagement message" — Meta's way of saying the window closed and your free-text message will not be delivered. It is not a bug, a rate limit or an account problem. It means exactly one thing: send an approved template instead.

The reason it feels like a bug is that a good console should make it impossible to reach. If your tool lets you type a paragraph, press send, and then tells you the window closed, it knew before you started typing and did not say.

The window is per contact, per number

A customer who messaged your sales number has not opened a window on your support number. This surprises businesses running several numbers, and it is why the inbox has to show the window per conversation rather than as an account-level state.

The free-entry-point window is different

A conversation started from a click-to-WhatsApp ad or a Facebook page call-to-action opens a 72-hour free window instead of the usual 24, and Meta does not bill it. It only applies to that first conversation, and the attribution identifier that proves it arrives on the first inbound message and never again — lose it and you lose the attribution permanently.

What actually goes wrong

The agent writes a long reply and only then learns it cannot send
The console should show a live countdown above the composer and replace the text box with a template picker when it hits zero. That makes 131047 unreachable rather than merely explained — which is the difference between a tool that knows the rule and one that reports it.
The template you need does not exist yet
Template review takes hours and sometimes days, so the template that re-opens a cold conversation has to be written before the conversation goes cold. Write the three or four you will predictably need — a follow-up, a reminder, a re-engagement offer — during onboarding, not during an emergency.
An automation replies hours later, outside the window
Any workflow that waits — a nightly sync, a webhook retry, a human queue — can easily cross the boundary. Anything that might reply late has to be built as a template send, not a free-text send, or it will fail silently on exactly the conversations that mattered most.

Common questions

How do I reopen a conversation after 24 hours?
Send an approved template. If the customer replies to it, a fresh 24-hour window opens and you can write freely again. If the template is marketing, anybody who opted out will not receive it — a utility template about something they actually did still will.

Read next