Journeys Overview

Automate Your Message Sequences.

Our visual builder enables easy creation of personalized messaging journeys without any coding. The Journey builder supports a full omnichannel experience including mobile push, web push, in-app messaging, email, and SMS.

Create Journeys for every situation:

  • Onboarding sequences to guide your users to success
  • Re-engagement campaigns to get your users back
  • Abandoned cart workflows to drive sales and revenue
  • Promo, upsells, post-action followups, and more

Example of an Abandoned Cart Journey


To utilize Journeys, subscriptions must be assigned an External ID. Only users with an External ID can enter a Journey. This will enable OneSignal to track a user all the way through a Journey, sending messages from across any of the channels you'd like to use. You can see if you are setting these IDs today by checking your All Users page and turning on the External ID column to see if it is populated.

If you are not setting External ID today and want to make use of Journeys, there are multiple ways to set these including CSV upload or in our web and mobile SDKs.

We currently have an early access program to use Journeys without an External ID. For more information on this change, you can read about Journeys using OneSignal ID.

Journey Settings

Start by giving your Journey a descriptive name for you and your teams to reference. Some common examples include:

  • Abandoned Cart
  • Welcome Campaign or
  • Inactive User Reach Out

Entry Rules

This defines how users will enter your Journey and any filters you want to apply to that audience using a segment.

Entry rules for a Journey

Entry rules for a Journey


Include or exclude the segment(s) of subscriptions that are eligible to enter the Journey. When a user has a subscription that matches the segment rules, they will enter the Journey. If a user stops matching the segment rules while a Journey is in progress, they will not automatically exit a Journey. They will only exit a Journey based on the exit rules configured.

For users with multiple subscriptions, their ability to enter a Journey is based on the segment rules for all of their subscriptions. For example, if a user has a subscription that is in an Included segment, but also a subscription that is in the excluded segment, the user will not be entered into the Journey based on the subscription that excludes them from it.

Future additions only

Segments are dynamic and have users entering and exiting them constantly. Checking this option means any user currently in the included or excluded segment at the time the Journey is set live will never enter the Journey. Even if the user leaves the segment and enters again, they will never enter the Journey. This setting is especially recommended for onboarding Journeys that you may not want users to ever re-enter.

Subscription Reach

The Subscription Reach denotes the number of subscriptions based on the entrance criteria. Use this to help understand what type(s) of messages might reach the most people when creating your Journey. It is displayed in the Journey settings and on the Journey canvas.

A count of subscriptions that can be reached per channel.

A count of subscriptions that can be reached per channel.

Push includes the count of all web and mobile push subscriptions that are subscribed and can receive push.

Email includes the count of all email subscriptions that are subscribed and can receive email.

SMS includes the count of all SMS subscriptions that are subscribed and can receive SMS.

In-App includes the count of all subscriptions that are reachable via iOS and Android. Note that unlike other channels, in-app messages do not require users to subscribe or opt-in, but they do require the user to have the app open to receive the in-app.

Exit Rules

These settings define if and when a user should automatically exit your Journey. They can re-enter a Journey based on the re-entry rules you define.

Journey exit rules.

Journey exit rules.

Exit when user becomes active in your app/website

Use this option if you want users who visit your website or app to exit immediately. This is useful if your Journey is a re-engagement or reactivation campaign.

Exit when user no longer matches the audience conditions

Use this option if you want users to exit immediately in cases where they no longer match the original target audience segment.

Exit when a user enters a segment

If at any time the user falls into one of the selected Segments, they will immediately exit and not enter any more steps or be sent any more messages.

Tag users when they exit early


Tag User on Early Exit

This will add a tag to a user when they get to this step. If value is left empty the tag will be removed if it exists. If your app has reached the tag limit, no tag will be applied.

For example, if you want users to enter another Journey when they exit early, you could tag them (exited-journey-1:true) then create a segment for that tag and value, and set the trigger for the next Journey to be when users enter that segment with tag (exited-journey-1:true).

Another good use case is using tags to ensure users are not active in too many Journeys. By tagging users when they start a Journey, finish a Journey, or exit early, you can create segments that exclude these users from other Journeys e.g. at the start of a Journey tag users (in-journey:true), then at the end of the Journey and on exit, remove that tag.

Re-Entry Rules

Journey re-entry rules.

Journey re-entry rules.

Defines how often they can repeatedly enter a Journey. Some message sequences you want to send once, like a Black Friday promotion. Some messages you’ll want to send every time a user is eligible to receive, like an abandoned cart campaign every time a user abandons the card, or a reactivation campaign every time they are inactive. This helps you space out the time in between.


Journey Settings: Scheduling

Scheduling is not currently supported. Once you make your Journey live it is live until you stop or delete it.

Journey Messages

Send a Push Notification

Select the Message Template you would like to send. We strongly encourage naming the template something recognizable so you can easily find it in the dropdown.

Message scheduling is not currently supported. When a user reaches this step in your Journey they will be sent the message immediately.

Send an In-App Message

First, ensure that you’re set up to support sending In-App Messages.

Once set up, you can add an in-app message node to your Journey by clicking on the (+) and selecting “In-App Message”. This will open up a side panel where you can manage the content and format of your message via drag and drop or HTML editor.

Aside from the content of the message, you also have the option to set trigger conditions for the message as well as a delivery schedule, which defines the duration of time the in-app message will remain active and continue triggering for your users.

Currently for In-App Messages (IAM) to display, the user must have reached the Journey IAM node before a new session. A new session is when the app is out of focus for 30 seconds+ and put back into focus.

Users that enter the IAM node during the current session are not eligible to get the IAM until a new session begins. Users go through Journeys in real time so they may not be eligible for IAMs at the time they reach the IAM node. You set the amount of time the user can create a new session to get the IAM using the "Delivery Schedule" within the IAM node.

Send an Email

First ensure you’ve set up your app to support sending email.

Select the Message Template you would like to send. We strongly encourage naming the template something recognizable so you can easily find it in the dropdown.

Message scheduling is not currently supported. When a user reaches this step in your Journey they will be sent the message immediately.

Send an SMS

First ensure you’re set up to support sending SMS.

Next, make sure you’ve created an SMS template with the messaging you’d like to send out from your Journey. You can access this by:

  • Clicking on “Messages” at the top of your screen
  • Then click on “Templates”
  • Finally click “(+) New Template” where you’ll select “New SMS Template”

Then, in your Journey, click on the (+) to add an SMS node. This will open up the side panel where you can select the template you’d like to send out at that specific point in the Journey.
Once users reach that step in the Journey, SMS messages will send out to them immediately.

Journey Actions


Users move the Journey in real-time. Use the wait action to space out your messages and steps. Define your wait time in minutes, hours, days or weeks. When a user enters these steps they will wait here the defined amount of time before leaving and going to the next step.

For example, if you send a message in the Journey and want to split users based on the interaction with that message, you should set a wait node for how long you want the user to interact with the message before continuing.

Time Window

Select the particular days on which users should be allowed to move forward into the next step of the Journey.

For example, if you want to only send a notification to users in the evening at the weekend, you could set up a time before the notification that specifies that the user can only progress to the message node during this time period:

Screenshot showing an example of a time window node

Screenshot showing an example of a time window node

Yes/No Branch

Use the Yes/No Branch to personalize a user's journey based on segment membership or previous message behavior.

Segment Membership

Branches depending on what segment the user is in. For example, if you tag your users with a plan type (lets say “Free” and “Paid”) then you can create a branch for free users and paid users. The free branch may contain more messaging incentivizing users to upgrade, while the paid branch may introduce more paid features.

Previous Message Behavior

Branch depending on what behavior the user had for other messages in the same Journey. For push those options are “Clicked” and “Delivered”. For email those options are “Delivered”, “Opened” and “Clicked”. For example, if a user did clicked a previous notification, maybe you want to follow up with another notification or add a data tag to those users

Safari does not support Confirmed Delivery so keep this in mind when you create branched messages.

Split Branch

Split branches send randomized portions of your audience down each branch and is a way to test various things like message content, channel performance at that step of your Journey, or even larger flow structures.

The randomization works at each audience member which means you may not always see perfectly proportioned groups, especially with smaller sample sizes. For example, with a 50/50 split on a 6-person audience, you may see 4 go down one path and 2 down another. However, this will look much closer with larger sample sizes.


User Re-entry Branch Path

Users that re-enter the Split Branch Step will continue to follow the same path. For example, a user that followed Branch A will continue to do so upon re-entering the Journey.

To track which branch a user followed, you can utilize the Tag Step.

ABN Tests (Multi-Variant Testing)

You can set up ABN tests by nesting your Split Branches and setting the percentages in accordance with your ideal sample group structure.

For example, if you want to set up a test with 3 variants with equally proportioned, randomized sample groups, then you start by adding a Split Branch set to send 33% of the audience down one path, and 67% down the other. Next, under the 67% branch, you’ll nest another Split Branch, sending 50% of that group down each branch. This will give you approximately a 1/3 breakdown across each of your 3 branches.

Control Groups

See how audience members naturally behave without a touch point by keeping one path free of message nodes.

Choosing a Winner

Once you’ve assessed and concluded that one branch is the highest performing, the split branch node can be edited to send 100% of the audience down that particular path.

Tag User

Use the tag user action to add tags to users. Examples of why you might add a tag include tagging them with the Journey and step they are on in case you want to creates a segment or target this group later.

You can also use tags to make use of in-app messaging in Journeys. Tag users at a particular step in a Journey and then set up an in-app message that targets an audience with that tag.


If you'd like to adjust when a customer sees a message, you can drag and drop messages and actions on the canvas while your Journey is in Draft.

Managing Active Journeys

"Refresh Stats" Button

Clicking Refresh Stats will refresh all of the Journey statistics to see an updated view of users passing through the Journey.

"More Options" Dropdown

  • Journey Examples— will open a new browser window to a page that shows examples of pre-built Journeys inside of our documentation
  • Delete — will delete a Journey. Once deleted you cannot retrieve it.
  • New Journey — will bring you to a new instance of Journey.
  • Stop + Archive — stops the Journey and gives it an archive status. These can still be accessed and duplicated. Once a Journey has been stopped, all users within the Journey will halt from finishing the Journey.
  • Duplicate — creates a copy of that Journey which you can then edit and make live.
  • Export as Image — will automatically download a PNG image of your Journey. The image will only capture what is visible on your screen.

"Edit" Button

Clicking Edit will enter "Edit Mode" allowing you to update your Journey.

Saving changes in edit mode will be made live immediately for Journey steps. As soon as steps are added or changed, audience members will be able to enter into or other experience those changes, as applicable.

Saving changes to Journey Settings will go live for future users who match your updated rules. Any users who have already entered, exited, or re-entered will not be affected.

Supported Edits

  • Journey Name
  • Update Entry Segments
  • Update Exit Criteria
  • Update Re-entry Rules
  • Add new steps between existing steps
  • Update details of existing steps
  • Delete Message steps
  • Delete Tag steps
  • Delete Wait periods - note that deleting a wait node will immediately move your users into the next node

Not yet supported Edits

The following list of edits is not yet supported. To make any of these changes, you can Stop and Archive the Journey, then duplicate it. When duplicating it, we also recommend that you exclude any previous users who have already received/experienced the Journey.

  • Delete branches
  • Pause a Journey

"View Stats" Button

The View Stats button will exit the "Edit mode"and enter "Stat Mode" allowing you to view the statistics of the message.

For more information on the stats that are included for Journeys, please see Journeys Analytics.

What’s Next