Back to the journal
Momo Business Guides

The 24-hour window and templates in a flow

What closes WhatsApp's 24-hour window, which step can re-open it with a mapped template, what window_closed means and how to test for it.

WhatsApp lets a business send free-form messages for 24 hours after the customer's last message. Once that window has closed, only an approved template may go out. A flow that talks to customers over hours or days meets this rule constantly, so the builder is explicit about it: some steps can re-open the conversation, most cannot, and every step says what it does when the window is shut.

What closes the window

The clock starts at the customer's latest inbound message and runs for 24 hours. Nothing you send extends it — only the customer writing again does. A flow that waits (a Delay of a day, a Wait until tomorrow morning, a payment that takes a while, an approval a colleague answers next week) will often wake up to a closed window.

Reactions are the exception: a React step works outside the window.

What each kind of step does

Send text is the one step that can re-open the conversation. Give it a purposeorder_update, appointment_reminder, whatever you have named in Templates — and outside the window the approved utility template mapped to that purpose is sent instead of the text. Leave the purpose blank and the default mapping is used. {{vars.__send_route.path}} records which way it went: text, template or blocked.

If no mapped template can honestly carry the message, the flow's On closed window setting decides (Flow settings → onWindowClosed): jump to a step, or end with a message. With neither, the conversation ends with the reason window_closed.

Every other speaking step — media, a pin, a card, the catalogue, buttons, lists, questions, AI answers — has a window_closed branch. Draw it, and the flow goes there instead of ending; leave it, and the flow-wide setting applies. The readiness check on the publish sheet warns when a step's purpose has no approved template mapped to it.

Window gate lets you branch before you speak: open carries on, closed goes to a Send text with a purpose, or to an End. Delay resumes by open or closed for the same reason, so a follow-up a day later can pick a template path deliberately.

Set it up

  1. Get a utility template approved by Meta for each situation the flow will need after a day — a reminder, an order update, a "we are still working on your request". The template guide covers writing and syncing them; Troubleshoot missing WhatsApp templates covers the approval states.
  2. Map each template to a purpose in Templates. The mapping is per workspace; the flow only names the purpose.
  3. In the flow, give every Send text that may run after a wait a purpose, and draw window_closed on the other speaking steps that may.
  4. In the Studio, switch 24-hour window is open off and run the flow again. Every step that goes quiet is a gap.

What the customer sees

Inside the window: your text, exactly as written. Outside it: the template's approved wording, with its variables filled from the flow. A template cannot carry buttons or a list, so a question asked outside the window arrives as the template and the answer re-opens the window for the rest of the conversation.

Where next

Thanks for reading.Explore more stories