# How to run A/B/n tests in customer journeys

## Why A/B/n testing is useful

It’s not always obvious which message, offer, timing, or channel will get the best response from your users. A/B/n testing lets you compare several variations at once so you can:

- Find which combination drives the most conversions

- Test ideas quickly in one journey instead of running separate campaigns

- Keep a control group to benchmark against your current communication

For example, an online store can test whether more users complete checkout when they receive: a push with a 10% discount right away, an email with free shipping after 24 hours, or an SMS reminder with no incentive. 

## What you can test with A/B/n split in Pushwoosh

The [A/B/n split element](/product/customer-journey/journey-elements/flow-controls/abn-split/) in Customer Journeys allows you to test many aspects of your campaigns. Common test cases include:

* **Timing**: Compare immediate vs. delayed messages (e.g., cart reminder right away vs. after 24 hours).

* **Personalization**: Test generic vs. personalized content (e.g., “Shop new arrivals” vs. “Anna, your saved items are back”).

* **Channel performance**: See which channel works best.

* **Message content**: Experiment with different formats, including copy, visuals, call-to-action buttons, subject lines, layouts, etc.

Below, we’ll cover some common cases where A/B/n testing can help optimize your customer journeys.  

## Testing discount types for abandoned carts

#### Goal

Find out which discount type drives the highest conversion among users who abandoned their cart:

* 10% off  
* $10 off  
* Free shipping

### Step 1. Set up the entry element

Start the journey with a [Trigger-based entry](/product/customer-journey/journey-elements/entry-elements/trigger-based-entry/) element and select the event trigger `Cart_Abandoned`.

This ensures the journey targets users who added items to their cart but didn’t complete checkout. Optionally, you can filter the audience to include users who abandoned a cart with a minimum value (e.g., $50+).

> For more information on how to configure events, see [Events](/product/audience-data-and-segmentation/events/) documentation.  

![Trigger-based entry configured with Cart_Abandoned event and optional $50+ cart value filter](/how-to-abn-test-customer-journeys-1.webp)

### Step 2. Define the Conversion goal

Set a Conversion goal to measure the test results. For this, click [Conversion goals](/product/customer-journey/journey-settings/#conversion-goals) at the top of the canvas and set the target event to `CheckoutSuccess`. This way, you can see which discount offer results in more completed checkouts.

![Conversion goal element with CheckoutSuccess selected as the journey’s success metric.](/how-to-abn-test-customer-journeys-2.webp)

### Step 3. Configure the A/B/n split element

After the entry element, place an [A/B/n split element](/product/customer-journey/journey-elements/flow-controls/abn-split/) to divide users into three groups. Distribute users evenly across branches.

Choose **Winner is selected automatically by goal** and select `CheckoutSuccess` as the goal for winner selection. This means once Pushwoosh detects a statistically significant winner, weaker branches will be deactivated, and all new users will be routed to the winning branch.

![A/B/n split with three branches](/how-to-abn-test-customer-journeys-3.webp)

### Step 4. Configure the rest of the journey 

Set up the message in each branch. For each branch, add and configure a [push element](/product/customer-journey/journey-elements/channels/push/). 

For example:

* **Branch A (control):** Send a push offering 10% off.  
   *Example content:* “Complete your order today and enjoy 10% off – limited time only!”

* **Branch B:** Send a push offering $10 off.  
   *Example content:* “Here’s $10 off your order – finish checkout now.”

* **Branch C:** Send a push offering free shipping.  
   *Example content:* “We’ve saved your cart! Order today and get free shipping.”

Finally, add an [Exit element](/product/customer-journey/journey-elements/flow-controls/exit/) to complete the journey.  
![Three discount message branches configured](/how-to-abn-test-customer-journeys-4.webp)

### Step 5. Launch the journey

Once all branches are configured, launch the journey. Users who abandoned a cart will be randomly split into three groups, each receiving its assigned discount offer. When statistical significance is reached, Pushwoosh will automatically direct all new users with an abandoned cart to the winning branch.

To analyze the results, double-click the A/B/n split to open detailed statistics. [Learn more](/product/customer-journey/journey-elements/flow-controls/abn-split/#analyze-the-results)
## Testing channel effectiveness for a fitness app re-engagement campaign

#### Goal

Determine which [communication channel](/product/messaging-channels/) (push, email, SMS) best motivates inactive users to return to the app.

<Aside type="caution" title="Important">
To run this test correctly, ensure that each user is reachable via push notifications, email, and SMS, and that all corresponding identifiers (device tokens, email addresses, phone numbers) are [linked under a single custom User ID](/product/pushwoosh-knowledge-hub/omnichannel-campaigns/#linking-devices-for-omnichannel-campaigns). This allows Pushwoosh to accurately identify the same user across channels, deliver messages properly, and correctly distribute users across test branches.

This setup requires developer assistance. Share this guide with your development team: [Set a custom User ID and link it to multiple devices](/developer/pushwoosh-knowledge-hub/users-userids/collecting-user-ids/).

</Aside>

### Step 1. Add an entry element and choose the audience

Start the journey with [Audience-based entry](/product/customer-journey/journey-elements/entry-elements/audience-based-entry/) and select or create the segment **Inactive users** (no workout logged in 14+ days). 

> Learn more about [creating segments](/product/audience-data-and-segmentation/segmentation/create-segments).

![Audience-based entry targeting segment ‘Inactive users’](/how-to-abn-test-customer-journeys-5.webp)

### Step 2. Define the Conversion Goal

Set the `WorkoutLogged` event as the [Conversion Goal](/product/customer-journey/journey-settings/#conversion-goals) to measure which channel drives re-engagement.
> For more information on how to configure events, see [Events](/product/audience-data-and-segmentation/events/) documentation.  

![Conversion goal set to WorkoutLogged](/how-to-abn-test-customer-journeys-6.webp)

### Step 3. Set up the A/B/n split element

Add an [A/B/n split element](/product/customer-journey/journey-elements/flow-controls/abn-split/) after the entry element. Select 3 branches with even distribution and use **Winner is selected automatically by goal** with the chosen Conversion Goal.  
![A/B/n split comparing push, email, and SMS with automatic winner by goal.](/how-to-abn-test-customer-journeys-7.webp)

### Step 4. Configure the rest of the journey 

Configure the journey for the following branches. In each branch, add and configure the appropriate message element (Push, Email, or SMS):  

* **Branch A (control):** [Push element](/product/customer-journey/journey-elements/channels/push/)  
   *Example content:* “It’s time to get moving 💪 Tap to start your workout now!”

* **Branch B:** [Email element](/product/customer-journey/journey-elements/channels/email/)  
   *Example content:* “Your fitness journey is waiting. Log your next session today!”

* **Branch C:** [SMS element](/product/customer-journey/journey-elements/channels/sms/)  
   *Example content:* “Don’t stop now! Track today’s workout and keep your streak alive!”

Finally, add an [Exit element](/product/customer-journey/journey-elements/flow-controls/exit/) to complete the journey.  

![Configured journey: push copy, email subject, and SMS copy](/how-to-abn-test-customer-journeys-8.webp)


### Step 5. Launch the journey
Launch the journey. Users will be split across branches and contacted through one of the channels. Pushwoosh will automatically detect the winner and direct users to the winning branch. 

To analyze the results, double-click the A/B/n split to open detailed statistics. [Learn more](/product/customer-journey/journey-elements/flow-controls/abn-split/#analyze-the-results)