Skip to content
Adoptiv

A/B Split Testing

Two versions of the same cadence, running side by side. Nobody lands on both, and nobody switches sides halfway through, because the side is decided by arithmetic on their own record rather than a coin toss.

See pricing

Which arm a lead takes, and why it never changes

arm B
Run
58e2b3d0-91af-4c67-bd12-3e70a9c81d4b
h = 5381thenh·33 + bytegives49,365,667mod 10067
One hundred units of weight, divided by the arms
Arm A · 50
Arm B · 50
099
port a
  • Send: case study
  • Wait 3 days
  • If replied
port btaken
  • Send: short ask
  • Wait 5 days
  • Exit
ab_assigned { port: "b" } written against the runweights 50 / 50 · no field on the inspector
The remainder of the hashed run identifier against the total weight picks the arm. No random number is drawn, and the assignment is written down as an event rather than read back from one, so nothing has to be remembered between passes.
0
versions a new split arrives holding
0
units of weight the two sides divide between them
0
the fixed number the split arithmetic counts up from

Product figures from the platform’s own defaults - not customer averages

The mechanism

How it works.

01

Nobody's side is a coin toss

The run identifier goes through a small fixed hash and the remainder against the total weight picks the arm. Nothing random is drawn and nothing is stored to remember the choice, so re-running the same step lands the same side every time.

02

A ninety-ten split is two numbers, not a different step

Each arm carries a weight and the engine cuts the range in proportion to them, so a ninety-ten division is two numbers on the box rather than a different kind of step. A box you drag on arrives at fifty apiece, which is the even split most people want first.

03

Each side is a full branch in its own right

Whatever hangs off one side is a full branch of the cadence in its own right, with its own sends, pauses and questions. The two sides never have to meet again, and one of them may simply stop.

04

Which side somebody got is written down, not reconstructed

Before moving on, the box writes down which side it chose against that person's run. So the population either side can be counted from the event record rather than reconstructed from who received what.

Where it sits

One moment in every run.

Every run passes through the same seven. A/B Split Testing is the lit one, and everything either side of it is a different page in this category.

  1. 01
    Trigger

    the thing that happened first

  2. 02
    Enrol

    how somebody gets onto it

  3. 03
    Wait

    the pause, and what governs its length

  4. 04
    Branch

    the fork, and which side is taken

  5. 05
    Act

    the mail, the text, the task that goes out

  6. 06
    Measure

    what counts as it having worked

  7. 07
    Exit

    how somebody comes off it

The specifics.

7 facts
Arms
Two in the box you place. The stored format allows more, each with a port name of its own
How the side is chosen
A remainder of the hashed run identifier against the weights added together. An arm with no weight written on it counts as one
Stability
Deterministic. Nobody changes sides part-way through a cadence
Weights
Fifty and fifty on a new box, held on the arms themselves and changed one arm at a time
Control groups
A different mechanism. A percentage set on the sequence parks those people before they take any step
What it will not do
No significance test, no winner declared, and no promoting the better side afterward
Not the same as
This divides an audience by weight. Reacting to what somebody did is Branch Logic

More in Automation & Flows

13 capabilities

Sequences, dispositions and outside triggers that act without being asked.

Inbound Webhooks

One address per source, sitting outside the login. The same delivery is never counted twice, every exchange is filed, and a new address cuts that source off.

Email Sequences

Enroll a lead once and the cadence carries them at their own pace. Nobody loses their place when the platform updates, and nobody is sent one message twice.

Wait & Timing

Park a lead for minutes or days between steps. The delay you type is a floor rather than an appointment, so the sending hours can push it later, not earlier.

Sending Windows

Nobody gets a message at ten past three in the morning. A pause coming due outside the hours you set is pushed forward before the time is ever written down.

Suppression Lists

One do-not-contact list per workspace, read on enrollment and read again inside the send, so an address added mid-cadence still stops the next message.

Auto-Enrollment

Nobody builds the list by hand. New leads enroll themselves as they are created, and the four checks that can refuse one run on every route into a cadence.

Call Tasks in Sequences

The phone, in the middle of a mail cadence. A rep gets a call task with their name on it, and whatever they log at hang-up decides where that lead goes next.

Disposition Behaviors

The do-not-call mark, the callback and the task happen because a rep picked the code, not because they remembered. Twenty-six behaviors, twenty codes shipped.

Workflow Triggers

Six things set a CRM rule off: stage change, field update, new record, reassignment, schedule, inactivity. A filter stops it waking for everything that moves.

Workflow Actions

Send the mail, assign the owner, raise the task, set the field, move the stage, call a webhook. Six actions, none a placeholder, run in the order you set.

Conditional Logic

The check between a rule firing and an action actually running. Eight comparisons, every one an AND, so a rule covering either of two things gets built twice.

SMS in Sequences

A text step on the same canvas as the mail and the call. It lands in the thread the SMS inbox reads, so the cadence and whoever answers see one conversation.

REST API

A key on a versioned path, seen exactly once, held to the same role and profile a person on your floor is, so it never reaches further than they would.

Automation & Flows

See a/b split testing on your own floor.

Thirty minutes, your numbers and your data. We will set a/b split testing up live and you can decide from the thing itself rather than from this page.

See pricing

14-day trial · no card · migration included