Start for Free
Back to Blog WhatsApp Safe Usage Guide

How Does the 24-Hour Rule Work? Managing Customer Service Window

SaaS Team December 07, 2025
24-Hour Rule Customer Service Session
How Does the 24-Hour Rule Work? Managing Customer Service Window

Understanding the 24-Hour Rule: WhatsApp Business API's Most Critical Rule

In WhatsApp Business API, the "Session" or "24-Hour Window" concept is the platform's most fundamental and most misunderstood rule. Using WhatsApp API without fully understanding this rule can lead to both financial losses and deteriorated user experience.

What is the 24-Hour Rule?

When a user messages your business (or clicks a button, scans a QR code), a 24-hour countdown begins. During this time, your business can send text, images, audio, video, documents, and location to the user without using templates, freely.

This is called the "Customer Service Window" or "Session Message".

Session Message Characteristics:

βœ… Advantages:

  • No template approval needed
  • You can send any content you want
  • Dynamic and flexible responses
  • Low cost (generally free or very low cost)
  • Ideal for bot flows

❌ Restrictions:

  • Only valid within 24 hours
  • User must message first (you cannot initiate)
  • Once time expires, you can no longer send free messages

Example Scenario:

14:00: John sends "Hello" to your business 14:00 - 14:01 (next 24 hours): You can chat freely 14:01 (next day): 24 hours expired, now template message required

What Happens When 24 Hours Expire?

Once the time expires, you can no longer freely write "What's up?", "Can I help you?" or any other message to the user. To restart the conversation, you must send a pre-approved Template Message.

Template Message Characteristics:

  • Paid: Country and category-based pricing (generally $0.01 - $0.20)
  • Pre-approved: Must be reviewed and approved by Meta
  • Categorized: In Marketing, Service, or OTP category
  • Can contain variables: For personalization like {{1}}, {{2}}

Cost Comparison:

Message Type Cost (Example) Freedom Approval Required
Session Message (within 24h) Free - $0.005 Completely free No
Template Message - Service $0.01 - $0.05 Template only Yes
Template Message - Marketing $0.05 - $0.20 Template only Yes

Cost Optimization: You can reduce costs by encouraging users to respond within 24 hours.

Session Initiation and Renewal

When Does a Session Start?

  1. User sends a message: Most common method
  2. User clicks a button: Quick Reply or Call-to-Action buttons
  3. User scans QR code: Click-to-WhatsApp ads
  4. User uses web widget: WhatsApp button on your website

When Does a Session NOT Renew?

❌ Misconception: "If user messages again within 24 hours, does the time extend?"

Answer: NO! Each new user message starts a new 24-hour window. The old window closes, a new window opens.

Example:

  • Monday 10:00: User messages β†’ Window until Tuesday 10:00
  • Monday 15:00: User messages again β†’ Window until Tuesday 15:00 (NEW window)
  • Tuesday 09:00: You can still message freely (Window open until 15:00)

24-Hour Strategies: Reduce Cost

Strategy 1: Fast Response Culture

If users respond within 24 hours, no template message needed.

Tactics:

  • In first message say "You'll get better service if you respond quickly"
  • After 23 hours send "Last chance, please respond" message (as session message)
  • Ask questions that encourage user to write back

Strategy 2: Smart Timing

Send template messages during users' active hours, so they can respond immediately and start a session.

Ideal Times:

  • Morning 09:00-11:00: People starting work
  • Lunch 12:00-13:00: Lunch break
  • Evening 18:00-21:00: After work

Bad Times:

  • Night 23:00-08:00: Sleep hours, low response probability
  • Weekend mornings: Late waking

Strategy 3: Maximum Value Within Session

Provide all important information and services within 24 hours.

Things to Do:

  • Answer user questions immediately
  • Proactively provide additional information
  • Ask "Is there anything else you'd like to ask?"
  • Send valuable content (catalog, video, guide)

24-Hour Rule in Automation

Considerations in Bot Designs:

Scenario 1: User doesn't respond within 24 hours

User: "Hello" (Monday 10:00)
Bot: "Welcome! How can I help you?" (Monday 10:01)
[User doesn't respond]
Bot (23 hours later): "Do you still need help? We can assist you better if you respond." (Tuesday 09:00)
[User still doesn't respond]
[24 hours expired - Window closed]
Bot: [Must send template message] "Hello {{name}}, you contacted us before. We'd like to help you!" (Tuesday 11:00)

Scenario 2: User responds at 23rd hour

User 1st Message: Monday 10:00
[23 hours pass]
User 2nd Message: Tuesday 09:00
Bot: [NEW 24-hour window started, free until Wednesday 09:00]

Automation Logic (Pseudo-code):

if (last_user_message + 24_hours) > now:
    # Session active, send free message
    send_free_message(user, message)
else:
    # Session ended, template required
    send_template_message(user, template_id, parameters)

Special Cases and Exceptions

1. First Contact

Question: "How do we message someone we've never talked to?"

Answer: Only with template message. If the user has never messaged you before, there's no session window.

Flow:

Business β†’ [Template Message] β†’ User
User β†’ [Response] β†’ Business
[24-hour window started]
Business β†’ [Free messages] β†’ User

2. User Blocked You

Situation: If user blocked you, you cannot send either session messages or template messages.

Symptoms:

  • Messages in "failed" status
  • Error code: 1009 (user blocked)

Solution: Mark user as "blocked" in your database and stop sending messages.

3. Number Change

If user changes their number, the old session becomes invalid.

Cost Optimization: Real Examples

Bad Approach (High Cost):

Scenario: E-commerce store sends "Deal of the day" template message to all customers daily.

  • Customer count: 10,000
  • Daily template messages: 10,000
  • Monthly template messages: 300,000
  • Cost (example $0.05/message): $15,000/month

Problem: Most users don't respond, money wasted.

Good Approach (Low Cost):

Scenario: Same store sends messages only to interested users.

  1. First message (Template): "Would you like to see today's deal?" + [Yes] [No] buttons
  2. Those who say "Yes": Session starts, freely send catalog and product info
  3. Those who say "No": Remove from list, don't send again
  4. Non-responders: Try again after 3 days (different template)
  • First template message: 10,000 people Γ— $0.05 = $500
  • Response rate: 20% = 2,000 people
  • Session messages: 2,000 Γ— 5 messages Γ— $0.001 = $10
  • Total cost: $510 (30x cheaper!)

Advanced Tactics

Tactic 1: "Session Rescue" Message

At the 23rd hour, encourage user to respond by sending valuable information.

Example:

[After 23 hours]
"Write 'YES' to receive your exclusive discount code! ⏰
(If you respond to this message within 1 hour, we can send the code instantly)"

Tactic 2: "Reengagement" Loop

If user doesn't respond for 24 hours:

  • Day 1: First template message (product/service focused)
  • Day 3: Second template message (different approach, value focused)
  • Day 7: Third template message ("Can we help you?")
  • Day 30: Last template message ("Still interested?")
  • If no response: Remove from list

Tactic 3: Cross-sell Within Session

Within 24 hours, offer additional products that might interest the user.

Example:

User: "What's the price of iPhone 15?"
Bot: "iPhone 15 Pro 256GB: $999
In stock, you can order now!

By the way, have you checked out our iPhone cases? 30% off! πŸ“±"

Common Mistakes

Mistake 1: "Sending free message after 24 hours"

❌ Wrong: Sending "How are you?" message after 24 hours

Result: Message won't send, you'll get error

Solution: Use template message

Mistake 2: "Using template within session"

❌ Wrong: Sending template message even within 24 hours

Result: Unnecessary cost

Solution: Use free messages within session, save money

Mistake 3: "Not tracking session time"

❌ Wrong: Messaging user without knowing how many hours since last message

Result: Sometimes failed messages, sometimes unnecessary template usage

Solution: Keep last_user_message_time field in your database and check before each message

Technical Implementation Example

Database Structure:

CREATE TABLE conversations (
    user_id INT,
    last_user_message_time TIMESTAMP,
    session_active BOOLEAN,
    last_bot_message_time TIMESTAMP
);

Message Sending Function:

function sendMessage(userId, message) {
    const conversation = db.getConversation(userId);
    const now = new Date();
    const diff = now - conversation.last_user_message_time;
    const twentyFourHours = 24 * 60 * 60 * 1000; // milliseconds
    
    if (diff < twentyFourHours) {
        // Session active, send free message
        sendFreeMessage(userId, message);
        console.log("Session message sent (free)");
    } else {
        // Session ended, template required
        sendTemplateMessage(userId, "reengagement_template", [message]);
        console.log("Template message sent (paid)");
    }
}

Summary: 24-Hour Rule Cheat Sheet

Situation Action Cost Approval Required
User messaged within 24h Free message Low/Free No
24h passed, restart Template message High Yes
First time messaging Template message High Yes
User blocked Don't send! - -
At 23rd hour Send "rescue" message Low/Free No

Conclusion

The 24-hour rule, though initially confusing, provides both cost savings and better user experience when properly understood and applied.

Golden Rules:

  1. Encourage users to respond quickly
  2. Always track session time
  3. Send "rescue" message at 23rd hour
  4. Don't use unnecessary template messages
  5. Provide maximum value within session

Reminder: WhatsApp API pricing varies by country. Check current prices for your region in Meta Business Manager.