What triggers the opening of a service conversation?
A Service conversation opens when the customer sends you a message (customer-initiated). That message starts a rolling 24-hour customer service window during which you can send non-template (free-form) messages. This is separate from business-initiated conversations (Marketing, Utility, Authentication), which open when an approved template is sent and delivered, and no same-category window is already open.
Quick navigation
- What exactly opens a Service conversation?
- Business-initiated categories vs Service (matrix)
- 24-hour Service window: what you can send
- Free-Entry (72h) interplay
- How to verify in your UI
- API / logs (copy-paste samples)
- Scenarios & timelines
- Edge cases & limitations
- Expected outcomes
- Related FAQs
- Support & escalation
What exactly opens a Service conversation?
A Service conversation (customer-initiated) opens when:
- The customer sends a message to your WhatsApp Business number (any inbound: text, media, button tap, reply).
- That inbound message is delivered to your business inbox/platform.
- The Service window wasn’t already open (or it resets to 24 hours from this new inbound).
Result: A 24-hour customer service window starts (or resets). During this window you may send non-template messages, plus templates if needed.
Business-initiated categories vs Service (matrix)
Conversation Type | Initiated By | Message Format | What opens it | Window length | Billed? |
|---|---|---|---|---|---|
Service | Customer | Non-template allowed when open | Customer inbound message delivered | 24h (rolling) | ❌ No (session) |
Marketing | Business | Template (promo) | Template sent & delivered; no open Marketing window | 24h | ✅ Yes |
Utility | Business | Template (update) | Template sent & delivered; no open Utility window | 24h | ✅ Yes |
Authentication | Business | Template (OTP/login) | Template sent & delivered; no open Auth window | 24h | ✅ Yes |
24-hour Service window: what you can send
- Inside Service window (≤24h since last customer message): send non-template (free-form) messages, media, quick replies, and templates.
- Outside Service window (>24h): non-template is blocked; send a template to continue or wait for the customer to reply (which will reopen Service).
Free-Entry (72h) interplay
- Free-Entry Point (FEP) window = 72h billing: Starts when a user messages via CTWA/Page CTA and you reply within 24h. While FEP is active, billing is free.
- Service window still applies to non-template: After 24h, non-template messages are blocked even if FEP is active; use a template (still free under FEP).
- FEP can suppress/close other category windows while active; Service logic for non-template remains unchanged.
How to verify in your UI
A) Meta WhatsApp Inbox (example UI)
- Open Inbox → select the conversation.
- Check header for Customer Service Window: Active with a hh:mm countdown.
- If Closed, the composer shows a banner; switch to template or request the customer to reply.
B) Your provider’s dashboard (typical)
- Open ticket details / attributes.
- Locate service_window.status and expires_at (or equivalent labels).
- Attempting non-template when Service is closed triggers an error/prompt.
API / logs (copy-paste samples)
- Inbound that opens a Service conversation
{
"event": "message_received",
"customer": { "wa_id": "+15551234567" },
"message": { "type": "text", "id": "wamid.HBg..." },
"service_window": { "open": true, "expires_at": "2025-12-01T10:00:00Z" },
"conversation": { "category": "SERVICE", "opened": true },
"pricing": { "billable": false }
}
- Template opens a Marketing conversation (no Marketing window open)
{
"event": "template_delivered",
"template": { "name": "promo_launch", "category": "MARKETING" },
"conversation": {
"category": "MARKETING",
"opened": true,
"expires_at": "2025-12-01T14:00:00Z"
},
"pricing": { "billable": true }
}
- Template reuses the existing Utility window (within 24h)
{
"event": "template_delivered",
"template": { "name": "order_update", "category": "UTILITY" },
"conversation": {
"category": "UTILITY",
"window": "REUSED",
"new_charge": false,
"expires_at": "2025-12-01T12:00:00Z"
}
}
- Guardrail: non-template blocked when Service is closed
{
"event": "message_send_attempt",
"type": "non_template",
"service_window": { "open": false },
"error": {
"code": "NON_TEMPLATE_NOT_ALLOWED",
"message": "Customer service window closed. Wait for customer reply or use a template."
}
}
- Cloud API — send a template (copy/paste)
{
"messaging_product": "whatsapp",
"to": "+15551234567",
"type": "template",
"template": {
"name": "follow_up_request",
"language": { "code": "en" },
"components": [
{
"type": "body",
"parameters": [
{ "type": "text", "text": "Alex" }
]
}
]
}
}
Scenarios & timelines
A) Same category within 24h
Time | Action | Result |
|---|---|---|
00:00 | Send Marketing template | Marketing window opens → ✅ Charged |
06:00 | Send another Marketing template | Same Marketing window → ❌ No new charge |
B) Cross-category in parallel
Time | Action | Open conversations | Billed? |
|---|---|---|---|
00:00 | Customer sends a message | Service | ❌ No |
02:00 | Send Utility template | Service + Utility | ✅ Utility |
04:00 | Send Marketing template | Service + Utility + Marketing | ✅ Marketing |
Diagram — Category windows & Service window
Caption: Service opens on customer inbound; business-initiated categories open on template delivery and can overlap with Service.
Edge cases & limitations
- Free-Entry (72h): When active, billing is free, and some UIs suppress other category windows. Service still governs non-template permissions (24h rule).
- Delivery failure: If a template or inbound fails delivery, the relevant conversation does not open.
- Opt-out/Block: Respect user preferences; sends may be blocked regardless of windows.
- Template categorization: Incorrect categories can impact billing and analytics; ensure correct Marketing/Utility/Auth tags.
- Renewal timing: Business-initiated windows extend from template delivery; Service resets from the customer’s latest message.
Expected outcomes
- A customer message opens (or resets) a Service window for 24h → non-template allowed.
- A template delivered with no same-category window open starts a paid category window for 24h.
- Sending another template in the same category within 24h reuses the existing window (no new charge).
Related FAQs
- What is conversation-based pricing?
- How long does a WhatsApp conversation last?
- Why was I charged multiple times for one customer?
- How does a Free-Entry conversation affect other open conversations?
Support & escalation
If behavior differs from this FAQ or billing looks incorrect, open a Support ticket from your admin portal (include message IDs, timestamps, pricing logs, and screenshots), or contact your Customer Success Manager. Typical response time: 1 business day.
Updated on: 21/09/2025