> For the complete documentation index, see [llms.txt](https://documentation.pushly.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.pushly.com/platform/journeys/journey-builder.md).

# Journey Builder

The Journey Builder is a visual canvas where you design the flow of steps subscribers will move through after enrollment. The builder uses an automatic layout engine that positions nodes and routes connections cleanly, keeping flows readable even with complex branching paths.

<figure><img src="/files/TEJn1g7bAOjJbM71C2CE" alt=""><figcaption></figcaption></figure>

#### Canvas Overview

Every journey starts with an **Entry** node (representing the trigger or schedule configuration) and ends with an **Exit** node. Steps are added between these nodes to define the subscriber's path.

#### Placeholder Steps

New journeys start with a visible **placeholder step** between the entry trigger and exit node. The placeholder makes it immediately clear where to add your first step.

Click the placeholder or use the **+** button on adjacent edges to replace it with a real step. Once replaced, the placeholder is removed from the flow automatically.

#### Adding Steps

<figure><img src="/files/V2DFsfezqLfK7JWt3OKG" alt=""><figcaption></figcaption></figure>

To add a step to the journey, click the **+** button on any edge between nodes, or click a placeholder step. The **Add Step Panel** appears as a floating panel with step descriptions organized by category.

#### A/B/n Split Testing

Journeys support **variant split steps** for A/B and multivariate testing directly within the flow. A split test divides subscribers into 2–4 named variant paths, each with a configurable percentage of traffic. All paths automatically converge at a downstream join point, so the journey continues as a unified flow after the test.

**Adding a Split Test**

1. Click the **+** button on an edge where you want to insert the split.
2. Select **Split Test** from the Add Step Panel.
3. The split test node appears with two default variant branches.

**Configuring Variants**

<figure><img src="/files/joMg9yz51MuARubpU0lB" alt=""><figcaption></figcaption></figure>

Click on the split test node to open its configuration panel:

* **Variant Name** — A customizable label for each variant (e.g., "Variant A", "Variant B").
* **Percentage** — The percentage of traffic allocated to each variant. Percentages must sum to exactly 100%.
* **Add Variant** — Add up to 4 total variants. Adding a new variant automatically redistributes percentages evenly (e.g., adding a third variant sets A: 33%, B: 33%, C: 34%).

> ⚠️ The **Update Step** button is disabled until the variant percentages total exactly 100%. A "Total: 100% / 100%" indicator in the configuration panel confirms this.

**Building Variant Paths**

Each variant branch is fully independent and can contain its own sequence of steps. After adding a split test:

1. Click the **+** button on a variant's edge to add steps to that branch.
2. Add any combination of waits, notifications, and other steps within each variant.
3. All variant branches automatically converge at a shared join point downstream.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://documentation.pushly.com/platform/journeys/journey-builder.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
