> ## Documentation Index
> Fetch the complete documentation index at: https://docs.digifist.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Conversation Window

> The 24-hour customer service window — when free-form messages are allowed, when a template is required, and how free entry-point conversations open it without cost.

WhatsApp's 24-hour customer service window decides whether you can send a free-form message or whether an approved template is required. The rule is simple: a customer messages you, the window opens for 24 hours, and within that window you can reply with anything (text, images, documents, voice). Outside the window, only approved templates can be sent. Understanding this rule directly affects how you configure automations, respond in the Inbox, and time your campaigns.

<Note>
  The 24-hour window is separate from the **conversation categories** (Marketing, Utility, Authentication, Service) that Meta uses for billing on its own side. In Galantis, every delivered template consumes 1 Conversation credit at a flat rate, regardless of category — see [Billing — conversations](/galantis/whatsapp/billing/conversations).
</Note>

## How the window works

The window opens (or resets) every time the customer sends you an inbound message.

| Event                                                      | Effect on the window                         |
| ---------------------------------------------------------- | -------------------------------------------- |
| Customer sends an inbound message                          | Window opens or resets to a fresh 24 hours   |
| 24 hours pass with no new inbound message                  | Window closes                                |
| Agent or automation sends a message **within** the window  | Permitted — free-form (no template required) |
| Agent or automation sends a message **outside** the window | Approved template required                   |

A customer who messages you daily effectively keeps the window open continuously. A customer who hasn't messaged in over a day requires a template to re-open the conversation.

## What's allowed inside the window

Within an active 24-hour window, agents and automation replies can send **session messages** — free-form text, images, documents, audio, or video — without any template approval. This is the most flexible messaging mode and is the entire point of the customer service window.

Session messages are how human-supported customer service feels natural on WhatsApp.

## What's required outside the window

Once the window has closed, the only messages that can be sent are **pre-approved WhatsApp templates**. This applies to:

* **All campaign broadcasts** — campaigns are always proactive outbound, never inside a window
* **All automation-triggered messages** — automations fire on Shopify events (new order, abandoned checkout) or platform events, not customer inbound messages
* **Inbox agent replies** when no active window exists for that customer

<Tip>
  The Inbox UI shows the window state on every conversation. If the window is closed, the reply box switches from free-form to a template picker — you can't accidentally send a session message when a template is needed.
</Tip>

## Free entry-point conversations

Two scenarios open a **free** 24-hour service window with Meta — meaning Meta doesn't charge for the conversation on its side (Galantis credit deduction still applies for any template sent outside that window).

<CardGroup cols={2}>
  <Card title="Click-to-WhatsApp ad" icon="rectangle-ad">
    A customer clicks a Click-to-WhatsApp ad on Facebook or Instagram and is taken into a WhatsApp conversation with your number. The resulting 24-hour window is a free entry-point conversation on Meta's billing.
  </Card>

  <Card title="Storefront chat widget" icon="comment">
    A customer initiates a conversation by clicking the Galantis chat widget on your storefront. The resulting 24-hour window is treated as customer-initiated and qualifies as a free entry-point conversation.
  </Card>
</CardGroup>

Why this matters in practice:

* **Inbound is cheap**: Investing in click-to-WhatsApp ads and the storefront widget converts ad clicks into chats with no Meta conversation cost for the first 24 hours.
* **Reply in time**: Respond inside the 24-hour window with session messages — no template approval bottleneck, no Meta charge for opening the conversation.
* **Capture consent**: A customer messaging you first isn't automatic marketing consent. If you want to send them campaigns later, capture explicit opt-in during or after the conversation. See [Opt-in & consent](/galantis/whatsapp/compliance/opt-in-consent).

## How Galantis tracks the window

Galantis tracks the window state per customer-conversation pair. The Inbox UI surfaces it directly; under the hood, every outbound send checks the timestamp of the customer's most recent inbound message:

```mermaid theme={null}
flowchart TD
  A[Outbound send requested] --> B{Customer messaged us in last 24h?}
  B -->|Yes| C[Window open — session message allowed]
  B -->|No| D[Window closed — template required]
  D --> E{Sender is a campaign or automation?}
  E -->|Yes| F[Send approved template]
  E -->|No, Inbox agent| G[Force template picker in UI]
```

The same logic governs billing: a delivered template counts as 1 Conversation credit regardless of whether it opens a new window or extends an existing one. See [Billing — conversations](/galantis/whatsapp/billing/conversations).

## Impact on Inbox agents

When an agent opens a conversation:

* **Window active** → reply box accepts free-form messages, images, voice notes, documents
* **Window closed** → reply box switches to a template picker; the agent selects an approved template to re-open the conversation

The Inbox interface reflects the current state per conversation. Agents don't manually check timestamps; the interface guides correct behavior. See [Inbox — conversation lifecycle](/galantis/whatsapp/inbox/conversation-lifecycle).

## Impact on automations

**Automation flows always send templates**, regardless of whether a window is open. This is by design — automations fire on Shopify or platform events (new order, abandoned checkout, restock), not in response to a customer message, so they're always treated as proactive outbound.

If you want to incorporate a customer reply into an automation's logic, use a `USER_REPLY_STATUS` condition node to branch the flow based on whether the customer responded to a previous message — see [Automations — conditions](/galantis/whatsapp/automations/conditions).

## Edge cases

<AccordionGroup>
  <Accordion title="Customer replies to an automation message inside the window" icon="reply">
    Their reply opens a new 24-hour window. You can now respond with session messages in the Inbox until the window closes again.
  </Accordion>

  <Accordion title="Multiple inbound messages within 24 hours" icon="messages">
    Each inbound resets the 24-hour clock. Effectively the window stays open as long as the customer keeps engaging.
  </Accordion>

  <Accordion title="Customer is in different time zone" icon="globe">
    The window is based on real (UTC) time, not the customer's local time. A reply 23 hours after their message is still inside the window; a reply 25 hours after is outside.
  </Accordion>

  <Accordion title="Agent uses a template inside an active window" icon="message-pen">
    Allowed but typically unnecessary — session messages are free-form and flexible. Some agents use templates inside the window for consistency on transactional acknowledgements (order status, refund confirmation).
  </Accordion>
</AccordionGroup>

***

<CardGroup cols={2}>
  <Card title="Templates vs session messages" href="/galantis/whatsapp/compliance/templates-vs-session">
    The mechanics of each message type and when to use which.
  </Card>

  <Card title="Opt-in & consent" href="/galantis/whatsapp/compliance/opt-in-consent">
    Consent rules that apply alongside the conversation window.
  </Card>

  <Card title="Inbox — conversation lifecycle" href="/galantis/whatsapp/inbox/conversation-lifecycle">
    How conversation statuses interact with the window in the agent Inbox.
  </Card>

  <Card title="Billing — conversations" href="/galantis/whatsapp/billing/conversations">
    How delivered templates consume credits regardless of conversation category.
  </Card>
</CardGroup>
