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.
Up next
Arabic language handling
Voice agent and WhatsApp messages that switch between Arabic and English based on the lead's preference.
2 min