What it means
WhatsApp draws a hard line between two modes of business messaging. Inside the 24-hour customer service window you are having a conversation, and you can send whatever a conversation needs: plain text, a photo of the part that needs replacing, a PDF invoice, a voice note, a set of reply buttons. Outside it you are interrupting someone, and the only thing you may send is a structure Meta approved in advance.
The clock starts on the customer's message, not on yours. Every inbound message resets it to a full 24 hours. Nothing you send extends it. That asymmetry is deliberate: it means the customer, not the business, decides how long the business gets to speak freely.
The window is scoped to the pair of your business phone number and one customer. Two numbers in the same WABA each keep their own window with the same person, which is worth knowing before you assume a customer who wrote to sales can be answered freely from support.
What the window actually permits
"Free-form" is broader than most teams realise. With the window open you can send every message type the API supports:
- Text, with WhatsApp formatting and link previews.
- Media: image, video, audio, document, sticker, either by uploading to the media endpoint or by re-using a media ID.
- Location, contacts, and reactions to a specific message.
- Interactive messages: reply buttons, list menus, call-to-action URL buttons.
- A WhatsApp Flow, sent as an interactive message with no template approval required.
That last pair matters for design. Buttons, menus and multi-step forms are ordinary messages inside the window, and only become an approval problem when you need them in a template. A support experience built entirely inside the window can be as rich as a native app, and it never waits on a reviewer.
What the window does not do is exempt you from policy. It is a permission on message format, not a licence to send promotional content to someone who asked a support question. The content still has to be something the customer would reasonably expect.
What happens when it closes
A free-form send after the window closes fails immediately with error 131047. The message is never queued and never delivered later. Two design consequences follow.
First, your sender needs a fallback, not an error handler. When an automation reaches a contact whose window has closed, the right behaviour is to switch to the approved template that carries the same meaning, not to log a failure and move on. Building that fallback once removes an entire class of "the customer never got the reply" incidents.
Second, your inbox needs a countdown. Agents cannot see the window in WhatsApp itself. If your CRM does not show it, agents will write long replies to conversations that closed overnight and lose them to a send error. A visible timer changes the behaviour: agents triage the closing conversations first, which is also the correct commercial priority.
Windows, conversations and cost
The word "window" gets used for two different things, and keeping them apart is worth real money.
The service window is a permission: may I send free-form content to this person right now?
The billing model is a separate question. Meta originally billed a 24-hour "conversation" as the unit, in four categories, and has since moved toward charging per delivered template message while leaving free-form service replies uncharged. Because the model has changed more than once, the durable advice is to reason about permission from the window and about cost from Meta's current rate card, rather than assuming one implies the other. Our page on conversation-based pricing covers the money side in detail.
There is one genuinely special case: a conversation that begins because the customer tapped a click-to-WhatsApp ad or a Facebook Page call-to-action. Meta calls these free entry points, gives them a longer unbilled period, and they behave like an open window from the first message. If you run paid social, this is the cheapest inbound you will ever get on the channel.
Why it matters
Everything expensive about WhatsApp lives outside the window. Inside it, conversation is effectively free and completely flexible. Outside it, every message costs money, needs approval in advance, and risks the block that damages your quality rating.
So the operational goal is not "send more templates", it is "spend more time inside open windows". Practically that means asking a question at the end of a notification so the customer replies, routing conversations to agents fast enough that people answer while they still care, and treating the closing window as a queue priority rather than a piece of trivia.
Real-world examples
- An e-commerce support desk. A customer asks about a delayed parcel at 09:00. The team can send photos, PDFs and a refund menu freely until 09:00 the next day. The agent who picks it up at 10:00 the following morning gets a send error and has to use a template instead.
- An appointment reminder that pays for itself. The utility template ends with two quick-reply buttons, "Confirm" and "Reschedule". A tap is an inbound message, which opens the window, so the entire rescheduling conversation that follows is free-form.
- A B2B sales rep working a lead. The lead answered on Tuesday. On Thursday the rep writes a long, thoughtful follow-up and it bounces. The follow-up now has to fit an approved marketing template, which is a completely different piece of writing and a completely different cost.
- A bot handing over to a human. The bot answered inside the window at 23:50. The human replies at 08:00, still inside, and the handover is invisible to the customer. Had the bot answered at 23:50 the previous night, the handover would have needed a template.
Common mistakes
- Believing a delivered template opens the window. It does not. Only the customer can open it.
- Retrying a 131047. The error is deterministic. Retrying produces the same failure and wastes the send budget.
- Measuring from your last message. The clock runs from their last message. A busy outbound thread with no replies has a closed window.
- Hiding the countdown from agents. The information exists in your data. Not showing it guarantees lost replies.
- Assuming one window per customer. It is one window per business number and customer pair.
- Using the open window as a promotion licence. Free-form is a format permission. Sending an unrelated offer to someone with a support question is still what earns you a block.
Related concepts
- Message template: the only thing you may send once the window closes.
- Conversation-based pricing: the cost model that grew out of the same 24-hour unit.
- Interactive message: the richest thing you can send while the window is open.
- Quality rating: what you protect by keeping conversation inside the window.
- Opt-in: what you need before re-opening a conversation from the outside.
- Omnichannel CRM: the inbox that has to render this rule for every agent.
How Pinlyx handles it
Pinlyx tracks the window per contact and per sending number, shows a live countdown on every WhatsApp conversation, and sorts closing conversations to the top of the queue. When the window is shut, the composer switches itself to the approved template picker instead of letting an agent type a message that cannot be delivered, and automated sequences fall back to the mapped template rather than failing on a 131047. Windows are tracked the same way alongside Telegram, Instagram and email threads in the same shared inbox. See WhatsApp CRM.