--- title: "Build a multi-stage journey" slug: "build-multi-stage-journey" updated: 2026-10-12T16:28:58Z published: 2026-10-12T16:28:58Z canonical: "docs.xtremepush.com/build-multi-stage-journey" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.xtremepush.com/llms.txt > Use this file to discover all available pages before exploring further. # Build a multi-stage journey ## Create the campaign To create a multi-stage journey navigate to **Campaigns > Create campaign** > and then select **Multi-stage** as the first step. ![1260](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/1051ccd-Screenshot_2022-10-11_at_11.47.01(1).png?sv=2026-02-06&spr=https&st=2026-11-12T13%3A54%3A59Z&se=2026-11-12T14%3A54%3A59Z&sr=c&sp=r&sig=PNmhurr2ohQ68JF7%2FUPcCisSLgOxy57xcxBDACt2WM0%3D) > [!NOTE] > Can't see this option? > > Multi-stage journeys are an optional feature and not enabled by default. If you wish to use this feature please [contact us](/documentation/docs/contact-us). Next is the choice of what triggers the campaign. As with a regular campaign, this will be the method which kicks the campaign off, the only difference here will be that instead of sending the individual messages to the user profile, it will instead push them into the workflow. > [!NOTE] > Optimise your workflow > > Users flow through workflows one by one. Because of this, time-based workflows addressing a very large audience will take some time to process and the best use case for them are for triggered sends. ![1230](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/a94f491-Screenshot_2022-10-11_at_11.47.59(1).png?sv=2026-02-06&spr=https&st=2026-11-12T13%3A54%3A59Z&se=2026-11-12T14%3A54%3A59Z&sr=c&sp=r&sig=PNmhurr2ohQ68JF7%2FUPcCisSLgOxy57xcxBDACt2WM0%3D) Triggers available for multi-stage journeys: based on a specific schedule (time-based) or triggered by events, locations or external API requests. > [!NOTE] > Update November 2020 > > These guides describe the process of creating a multi-stage journey campaign after the November 2020 release. Before this release, you may have been used to assigning an event on a workflow's *start* action. The same effect can now be achieved by selecting **Event triggered workflow** and choosing the event on the new campaign's **Event** tab. > > Any existing workflows have automatically been migrated. You can read more in our [pre-release blog](https://xtremepush.com/november-product-release-preview-campaign-workflows/). ## Build the workflow To build the workflow within the campaign, switch to the **Content** tab and click on **Edit workflow** to open the Journey builder. ![](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/7df6094-Screenshot_2020-10-26_at_16.16.56(1).png?sv=2026-02-06&spr=https&st=2026-11-12T13%3A54%3A59Z&se=2026-11-12T14%3A54%3A59Z&sr=c&sp=r&sig=PNmhurr2ohQ68JF7%2FUPcCisSLgOxy57xcxBDACt2WM0%3D) ### Actions Actions are the building blocks of a workflow. They are called *actions* as they allow you to perform an action when a user profile enters them, before allowing the user profile to pass through to the next action. To create a new action in your workflow, click an open ➕**Plus** icon at the end of the current workflow and choose which action you want to add next. - [Message](/documentation/docs/journey-action-message) - [Delay](/documentation/docs/journey-action-delay) - Branches - [Decision](/documentation/docs/journey-action-decision) - [Multi-decision](/documentation/docs/journey-action-multi-decision) - [Split](/documentation/docs/journey-action-split) - User actions - [Ad Retargeting](/documentation/docs/journey-action-ad-retargeting) - [Promotion](/documentation/docs/journey-action-promotion) - End ![](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/f249ca5-ezgif-3-f2d512e911(1).gif?sv=2026-02-06&spr=https&st=2026-11-12T13%3A54%3A59Z&se=2026-11-12T14%3A54%3A59Z&sr=c&sp=r&sig=PNmhurr2ohQ68JF7%2FUPcCisSLgOxy57xcxBDACt2WM0%3D) Actions are editable by selecting them to open the small toolbox. This will usually contain a preview or overview of the set-up for the selected action. ![](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/1eb33d2-Screenshot_2020-11-12_at_22.22.33(1).png?sv=2026-02-06&spr=https&st=2026-11-12T13%3A54%3A59Z&se=2026-11-12T14%3A54%3A59Z&sr=c&sp=r&sig=PNmhurr2ohQ68JF7%2FUPcCisSLgOxy57xcxBDACt2WM0%3D) To modify them, click the **Edit** button, which will open a larger toolbox. It contains the relevant editing tools for the action selected. ![](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/153d781-Screenshot_2020-11-12_at_22.22.10(1).png?sv=2026-02-06&spr=https&st=2026-11-12T13%3A54%3A59Z&se=2026-11-12T14%3A54%3A59Z&sr=c&sp=r&sig=PNmhurr2ohQ68JF7%2FUPcCisSLgOxy57xcxBDACt2WM0%3D) An overview of the main workflow editor can be seen below: ![3660](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/97f3017-1(1).png?sv=2026-02-06&spr=https&st=2026-11-12T13%3A54%3A59Z&se=2026-11-12T14%3A54%3A59Z&sr=c&sp=r&sig=PNmhurr2ohQ68JF7%2FUPcCisSLgOxy57xcxBDACt2WM0%3D) > [!TIP] > Journey end actions > > All loose ends in a workflow must be closed by adding an end action (otherwise the workflow will show errors). If your workflow has several end actions, use a unique name for each of them to be able to identify them later from [analytics](/documentation/docs/analytics-campaign-analytics#end-actions-reached). > [!CAUTION] > **Decision action after the start** > > For best performance results, the use of decision actions after the start of a journey is not allowed. If using a decision at the beginning of a workflow is required, the condition or conditions evaluated in the decision should be added as part of the segmentation instead. ## Workflow validation A running validation check is available in the top right toolbar. Here it is possible to click the validation number to see a list of errors which stop the workflow from running. Each error can be clicked to be taken directly to the action which has the error so it can be dealt with. ![](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/ec0e733-Screenshot_2020-11-12_at_22.24.28(1).png?sv=2026-02-06&spr=https&st=2026-11-12T13%3A54%3A59Z&se=2026-11-12T14%3A54%3A59Z&sr=c&sp=r&sig=PNmhurr2ohQ68JF7%2FUPcCisSLgOxy57xcxBDACt2WM0%3D) > [!WARNING] > Workflow validation at campaign level > > Any errors will be picked up in the campaign and prevent it from being scheduled. Therefore, it is important to make sure all errors are dealt with before launching the campaign. ## Application Targeting and Segmentation For details on building segments for your campaign, see [Segment the audience](https://docs.xtremepush.com/docs/campaign-segment). ### Application targeting Application targeting lets you choose which applications or websites your push and in-app messages are sent to. It also controls which users can enter the journey. You can set application targeting in two ways: - **Campaign level**: When you select application targeting at a campaign level: For example, if you select App 1, App 2, and App 3: > [!NOTE] > If you select **All Applications**, users need a device profile for at least one app or website on your project to enter the journey. - Every push and in-app message node in your journey only sends to these applications or websites, unless you change application targeting at a node. See *Node level* below for more information. - Only users with a device profile for at least one of these applications or websites can enter the journey. - Every push and in-app message node sends to App 1, 2, and 3 only. - A user with device profiles for App 2 and App 4 enters the journey, because they have a device profile for at least one selected application. - A user without a device profile for App 1, 2, or 3 does not enter the journey. - **Node level**: You can also set application targeting for each push or in-app message node in your journey. By default, these nodes use the same selection as your campaign (**Use Campaign Settings**). When you choose **Select Applications** at a node: For example, you select App 1 and App 2 in the **Segment** tab, and choose **Select Applications** with App 1 only at a push node. A user with device profiles for App 1 and App 2 receives the push message on App 1 only. A user with a device profile for App 2 only does not receive the push message. When you choose **All Applications**, the message is sent to every application or website the user has a device profile for. For example, you select App 1 and App 2 in the **Segment** tab, and choose **All Applications** at a push node. A user with device profiles for App 1 and App 3 receives the push message on both App 1 and App 3. To set application targeting at the node level, go to **Target Applications** in the **Setup** tab of a web push, mobile push, or in-app node. - The message only sends to the selected applications or websites. This overrides your selection in the **Segment** tab for that message only. - Users without a device profile for any of the selected applications stay in the journey but do not receive the message. ## Recipient count For a single-stage campaign, the [recipient count](/documentation/docs/campaign-segment#calculate-recipients) includes a channel breakdown and will automatically filter out available recipients based on subscription status and addressability for these channels. A multi-stage journey will simply show *all* available recipients based on the segmentation of the campaign. It is not possible to filter based on channel subscriptions as there may be many reasons to push a user into a journey including the possibility of following different paths and arriving at different messages. Also, as it can take an extended length of time for users to pass through a journey, there is plenty of time for subscriptions to change as they make their way through to the end actions. Instead, whether a user is eligible to receive a particular message or not is assessed at the point each message is due to be sent. ![554](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/a8b0103-Screenshot_2022-10-11_at_11.55.02(1).png?sv=2026-02-06&spr=https&st=2026-11-12T13%3A54%3A59Z&se=2026-11-12T14%3A54%3A59Z&sr=c&sp=r&sig=PNmhurr2ohQ68JF7%2FUPcCisSLgOxy57xcxBDACt2WM0%3D)