Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
louisblythe avatar

Ab Message Testing

  • 189 installs
  • 107 repo stars
  • Updated January 24, 2026
  • louisblythe/salesskills

ab-message-testing is a Claude Code skill that helps developers design automated A/B testing systems for sales bots to optimize message conversion with statistical rigor and consistent variant assignment.

About

ab-message-testing is a skill in louisblythe/Sales-Skills, a 122-skill collection (20 core sales, 22 process, 80 AI SDR bot skills). It guides building automated message-variation tests for sales bots: hypothesis documentation, 50/50 or multi-variant allocation, MD5-consistent variant assignment per contact, result tracking, and z-score significance checks at 95% confidence. Covers opening greetings, qualification question order, objection responses, tone, length, and CTA phrasing. Includes sample-size reference tables—for example 10% baseline needs 3,500 impressions per variant for a 20% lift—and test lifecycle from hypothesis through implementation. Triggers on message testing, A/B testing bots, or message optimization requests. Use when engineering conversational bots that need data-driven copy iteration, not one-off email drafts.

  • MD5-consistent variant assignment: hash(contact_id + test_id) for stable 50/50 splits
  • Sample-size tables: 10% baseline needs 3,500/variant for 20% lift at 95% confidence
  • z-score significance testing with 1.96 critical value at 95% confidence level
  • One of 80 AI SDR bot skills in louisblythe/Sales-Skills (122 total skills)

Ab Message Testing by the numbers

  • 189 all-time installs (skills.sh)
  • +8 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #331 of 853 Sales & Marketing skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/louisblythe/salesskills --skill ab-message-testing

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs189
repo stars107
Last updatedJanuary 24, 2026
Repositorylouisblythe/salesskills

How do you A/B test sales bot messages?

Design sales bot A/B tests with hypothesis docs, MD5 variant assignment, sample-size targets, and z-score significance checks at 95% confidence.

Who is it for?

Engineers building conversational sales bots who need frameworks for statistically valid message A/B testing with tracked conversion metrics.

Skip if: Human-only outbound email campaigns without bot infrastructure or teams lacking sufficient conversation volume for meaningful sample sizes.

When should I use this skill?

User mentions message testing, A/B testing bots, optimizing bot messages, testing variations, or message optimization for sales bots.

What you get

Test hypotheses, variant assignment logic, tracked conversion metrics, significance analysis, and documented winning message baselines.

  • Test hypothesis document
  • Variant assignment logic
  • Significance analysis results

By the numbers

  • Part of 122-skill Sales-Skills repo: 20 core, 22 process, 80 AI SDR bot skills
  • Sample-size table: 10% baseline rate needs 3,500 impressions per variant for 20% lift

Files

SKILL.mdMarkdownGitHub ↗

A/B Message Testing for Sales Bots

You are an expert in building automated testing systems for sales bots. Your goal is to help design systems that automatically test message variations to optimize conversion rates.

Initial Assessment

Before providing guidance, understand:

1. Context

  • What volume of conversations does your bot handle?
  • What outcomes are you trying to optimize?
  • What messages are currently underperforming?

2. Current State

  • Are you running any tests today?
  • How do you decide what messages to send?
  • What data do you have on message performance?

3. Goals

  • What would better testing help you achieve?
  • What metrics matter most?

---

Core Principles

1. Test Everything That Matters

  • Small changes can have big impacts
  • Don't assume you know what works
  • Let data decide

2. Statistical Rigor

  • Enough sample size
  • Long enough duration
  • Proper randomization

3. One Variable at a Time

  • Isolate what changed
  • Otherwise you don't know what worked
  • Test sequentially, not simultaneously

4. Continuous Optimization

  • Testing is ongoing
  • Winners become new baseline
  • Always be testing something

---

What to Test

Message Content

Opening messages:

  • Greeting style
  • Value proposition
  • Question vs. statement
  • Personalization level

Response messages:

  • Tone and voice
  • Length
  • Structure
  • CTAs

Objection responses:

  • Acknowledgment style
  • Reframe approach
  • Proof points
  • Follow-up questions

Message Structure

Length:

  • Short vs. detailed
  • Single message vs. chunked
  • Number of sentences

Format:

  • With vs. without bullets
  • With vs. without emoji
  • Question at end vs. not

Tone:

  • Formal vs. casual
  • Enthusiastic vs. calm
  • Direct vs. soft

Conversation Flow

Question order:

  • Qualification order
  • Easy first vs. hard first
  • Building vs. direct

Branching:

  • Different paths
  • Skip logic
  • Progressive disclosure

---

Test Architecture

Basic A/B Test

Contact arrives
       ↓
  Random assignment (50/50)
       ↓
    ┌──────┴──────┐
    ↓             ↓
 Variant A    Variant B
    ↓             ↓
   Track        Track
    ↓             ↓
  Analyze results
       ↓
  Implement winner

Multi-Variant Test

When to use:

  • High volume
  • Testing multiple ideas
  • Want faster learning

Structure:

  • Control: 40%
  • Variant A: 20%
  • Variant B: 20%
  • Variant C: 20%

Sequential Testing

When to use:

  • Lower volume
  • Need faster decisions
  • Willing to accept more risk

Structure:

  • Monitor continuously
  • Stop when clear winner emerges
  • Use adaptive algorithms

---

Implementation

Randomization

function assignVariant(contact_id, test_id, variants) {
  // Consistent assignment (same contact always gets same variant)
  hash = md5(contact_id + test_id)
  bucket = hash % 100

  cumulative = 0
  for (variant in variants) {
    cumulative += variant.percentage
    if (bucket < cumulative) {
      return variant.name
    }
  }
}

Message Selection

function getMessage(context, message_key) {
  // Check for active test
  test = getActiveTest(message_key)
  if (!test) {
    return getDefaultMessage(message_key)
  }

  // Get variant assignment
  variant = assignVariant(context.contact_id, test.id, test.variants)

  // Return variant message
  return test.variants[variant].message
}

Result Tracking

function trackResult(contact_id, test_id, variant, outcome) {
  result = {
    contact_id: contact_id,
    test_id: test_id,
    variant: variant,
    outcome: outcome,  // responded, converted, dropped, etc.
    timestamp: now()
  }
  store(result)
  updateTestStats(test_id, variant, outcome)
}

---

Statistical Analysis

Sample Size Calculation

Inputs needed:

  • Baseline conversion rate
  • Minimum detectable effect (MDE)
  • Statistical significance (typically 95%)
  • Statistical power (typically 80%)

Quick reference:

Baseline Rate10% Lift20% Lift50% Lift
5%30,000/variant7,500/variant1,200/variant
10%14,000/variant3,500/variant560/variant
20%6,400/variant1,600/variant260/variant

Significance Testing

function isSignificant(variant_a, variant_b, confidence=0.95) {
  // Calculate z-score
  p_a = variant_a.conversions / variant_a.impressions
  p_b = variant_b.conversions / variant_b.impressions
  p_pooled = (variant_a.conversions + variant_b.conversions) /
             (variant_a.impressions + variant_b.impressions)

  se = sqrt(p_pooled * (1 - p_pooled) *
            (1/variant_a.impressions + 1/variant_b.impressions))

  z = (p_b - p_a) / se

  // Check against critical value
  z_critical = 1.96  // for 95% confidence
  return abs(z) > z_critical
}

When to Call a Test

Don't stop early:

  • Initial results are noisy
  • Novelty effects exist
  • Wait for full sample size

Stop when:

  • Sample size reached
  • Statistical significance achieved
  • Predetermined duration elapsed

Consider:

  • Business impact of waiting
  • Cost of wrong decision
  • Opportunity cost

---

Test Management

Test Lifecycle

1. Hypothesis: Document what you're testing and why. "We believe [change] will improve [metric] because [reason]."

2. Design:

  • Define variants
  • Set sample size and duration
  • Choose metrics

3. Launch:

  • Implement variants
  • Start tracking
  • Monitor for issues

4. Analyze:

  • Wait for significance
  • Check secondary metrics
  • Look for segment effects

5. Decide:

  • Implement winner
  • Document learnings
  • Plan next test

Test Documentation

Test Name: Opening Message Greeting Style
Test ID: T-2024-001
Status: Running

Hypothesis:
A casual greeting will increase response rate because
it feels more human and less corporate.

Variants:
- Control (50%): "Hello! Thanks for reaching out..."
- Variant A (50%): "Hey there! Great to hear from you..."

Primary Metric: Response rate
Secondary Metrics: Sentiment, conversion rate
Sample Size Target: 1,000 per variant
Duration: 2 weeks or until significant

Results:
[To be completed]

Test Calendar

Always have:

  • Current test running
  • Next test planned
  • Backlog of ideas

Avoid:

  • Testing too many things at once
  • Overlapping tests on same messages
  • Testing during anomalous periods

---

Advanced Testing

Multi-Armed Bandit

Concept: Dynamically allocate more traffic to winning variants.

Benefits:

  • Faster optimization
  • Less regret (fewer impressions to losers)
  • Continuous optimization

Trade-off:

  • Less statistical purity
  • Harder to analyze
  • May miss longer-term effects

Use when:

  • High volume
  • Speed matters
  • Clear conversion signal

Personalized Testing

Concept: Different messages work for different segments.

Implementation:

  • Test within segments
  • Analyze segment interactions
  • Deploy segment-specific winners

Example:

  • Message A wins for enterprise
  • Message B wins for SMB
  • Deploy both, targeted appropriately

Sequential Testing

Concept: Test in phases, eliminate losers early.

Process: 1. Test 4 variants with 25% each 2. Eliminate bottom 2 3. Test remaining 2 with 50% each 4. Implement winner

---

Measuring Success

Primary Metrics

Response rate: % of messages that get a response

Conversion rate: % that complete desired action (book meeting, qualify, etc.)

Engagement rate: Continued conversation vs. drop-off

Secondary Metrics

Sentiment: Positive/negative reaction

Conversation length: Engagement depth

Time to conversion: Speed through funnel

Guardrail Metrics

Opt-out rate: Are we annoying people?

Complaint rate: Negative feedback

Brand perception: Are we hurting the brand?

---

Common Testing Mistakes

1. Stopping Early

Problem: Calling winners before statistical significance Fix: Commit to sample size before starting

2. Testing Too Many Variables

Problem: Can't isolate what caused change Fix: One variable per test

3. No Hypothesis

Problem: Testing randomly, no learning Fix: Document hypothesis and reasoning

4. Ignoring Segments

Problem: Average hides segment differences Fix: Analyze by segment

5. Not Implementing Winners

Problem: Running tests but not acting on results Fix: Have implementation plan before testing

6. Novelty Effects

Problem: New thing wins initially, then regresses Fix: Run tests long enough, monitor post-implementation

---

Test Ideas for Sales Bots

Opening Messages

  • Formal vs. casual greeting
  • Question vs. statement opener
  • Personalized vs. generic
  • Short vs. detailed introduction

Qualification Questions

  • Direct vs. soft ask
  • Single vs. multiple choice
  • Order of questions
  • Number of questions

Value Propositions

  • Benefit-focused vs. feature-focused
  • Specific numbers vs. qualitative
  • Social proof inclusion
  • Customer quotes

CTAs

  • "Book a call" vs. "Learn more"
  • Specific time vs. open
  • Single CTA vs. options
  • Urgency vs. no urgency

---

Questions to Ask

If you need more context: 1. What conversation volume do you have for testing? 2. What messages do you suspect are underperforming? 3. What metrics are you trying to improve? 4. What testing have you done before? 5. What tools/infrastructure do you have for testing?

---

Related Skills

  • conversational-flow-management: What to test
  • performance-analytics: Measuring results
  • personalization-at-scale: Segment-specific testing
  • ab-test-setup: General A/B testing principles

Related skills

How it compares

Use ab-message-testing for bot message experiments with statistical controls—not ab-test-setup which covers general sales outreach tests outside bot infrastructure.

FAQ

What metrics does ab-message-testing optimize?

ab-message-testing focuses on sales bot message performance: primary metrics include response rate and conversion rate, with secondary metrics like sentiment and conversation length. Guardrail metrics cover opt-out rate, complaint rate, and brand perception to prevent harmful cop

How does ab-message-testing assign variants consistently?

ab-message-testing recommends MD5 hashing of contact_id plus test_id to derive a stable bucket, ensuring the same contact always receives the same variant. This consistent assignment prevents crossover contamination when measuring response and conversion rates across bot message

Sales & Marketinglifecyclecontent

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.