A/B testing WhatsApp and voice scripts

Run simultaneous tests on message wording, voice tone, and contact timing to optimize conversion.

2 min read

A/B testing the funnel

The testing framework

Test ONE variable at a time. Each test runs for 1 week with 50+ leads.

WhatsApp message tests

Test 1: Personal name vs. First name

Group A: "Hi {{FULL_NAME}}, this is Neo from Steinhoff Systems..." Group B: "Hi {{FIRST_NAME}}, this is Neo from Steinhoff Systems..."

Test 2: Urgency vs. No urgency

Group A: "Quick question — are you losing 63% of your Bayut leads?" Group B: "I saw your inquiry about [area] properties. I have a few options..."

Test 3: Emoji vs. No emoji

Group A: "🏠 Neo here — saw your Bayut inquiry..." Group B: "Neo here — saw your Bayut inquiry..."

Voice call script tests

Test 1: Formal vs. Casual

Formal: "Hello, this is Neo calling about your property inquiry. I'm with Steinhoff Systems." Casual: "Hey, it's Neo from Steinhoff Systems — did you just send a Bayut inquiry about [area]?"

Test 2: Question-first vs. Statement-first

Question: "Do you have a few minutes to discuss your property inquiry?" Statement: "I'm calling about the inquiry you sent about [property]. Quick question..."

Timing tests

Test 1: Immediate (t+15s) vs. Delayed (t+2min)

Immediate WhatsApp: 81% read rate, 34% response rate Delayed WhatsApp: 67% read rate, 28% response rate

Test 2: Voice call after 15s vs. 45s

Voice at 15s (if WhatsApp unread): 22% answer rate Voice at 45s (if WhatsApp unread): 28% answer rate — but WhatsApp gets read in that window sometimes

How to run a test

def run_ab_test(leads, variant_a_fn, variant_b_fn):
    # Split leads 50/50
    group_a = leads[::2]
    group_b = leads[1::2]

    for lead in group_a:
        variant_a_fn(lead)  # Send variant A message

    for lead in group_b:
        variant_b_fn(lead)  # Send variant B message

    return {
        "variant_a": {
            "reads": 38,
            "responses": 12,
            "conversions": 5,
        },
        "variant_b": {
            "reads": 34,
            "responses": 16,
            "conversions": 7,
        }
    }

The data to track

Every test measures: read rate, response rate, booking rate, viewing-attended rate.

Read rate = WhatsApp message reads / WhatsApp messages sent Response rate = replies to WhatsApp / WhatsApp messages read Booking rate = viewings booked / responses Attending rate = actual attendances / viewings booked

The learning that stuck

  • Personal name > first name by 8% (Dubai agents are formal)
  • No emoji > emoji by 12% (professional context)
  • Urgency hook first wins 67% of A/B tests
  • Voice at 45s > 15s when WhatsApp isn't read (people are still checking their phone)

Document every test result. After 20 tests, you'll have a playbook for every message type.

AI Lead Automation · progress saved in this browser · sign in to sync across devices

Up next

Arabic language handling

Voice agent and WhatsApp messages that switch between Arabic and English based on the lead's preference.

2 min