Creating Personalized Onboarding Experiences with Braze

A hand opens the flap of a cardboard meal-kit box on a doorstep, with fresh herbs and a recipe card, showing the first moment of a personalized onboarding journey.

Personalized onboarding in Braze is a routing problem before it is a copywriting problem. Decide what you know at entry, wait only for what you need to see, check the audience again before each send, and define when a user leaves. This post walks through that order using Canvas entry data, Audience Paths, Action Paths, delivery validations and exit criteria.

‍

Key Takeaways

  • Settle four decisions before any copy: what you know at entry, what you must wait to observe, what must still be true at send time, and what ends the journey.
  • Use entry data for what you already know at signup, and Action Paths for what the user does next.
  • Put the narrowest, highest-value audience group first, because users take the first path they qualify for.
  • Add a delay before any Audience Paths step that checks for a reaction to a previous message.
  • Use delivery validations so a nudge does not send for something the user has just done.
  • Set an exit event for the action the journey exists to produce.

‍

How do you build personalized onboarding in Braze?

Start with four decisions, in this order: what you know when the user enters, what you must wait to observe, what must still be true at send time, and what ends the journey. Copy comes after all four. A well-written welcome message sent down the wrong path still lands as the wrong message.

We recommend settling these four decisions before writing any copy. Each one changes which Canvas components you need, and components are harder to change than words.

‍

What can you personalize at entry, and what has to wait?

Use entry data for anything you already know when the user enters. With action-based delivery, users enter "when they take particular actions, such as opening your app, making a purchase, or triggering a custom event". With API-triggered delivery, you add them with the /canvas/trigger/send endpoint, and your own system decides when that is.

Both routes can carry entry properties. If your workspace shows Context Variables, you reference them with {{context.${property_name}}} in any Message step. Entry properties have a documented maximum size of 50 KB.

We suggest sending only the few fields the first messages need and leaving the rest on the profile. Canvas Context is not switched on for every workspace, and the documentation says to contact your customer success manager for access.

Anything the user does after entry is a different case. Event properties from a later action are available in the first Message step following an Action Paths step, and not in the lead Message step.

‍

Which router should you use: Audience Paths or Action Paths?

Use Audience Paths to sort users by what the profile says now, and Action Paths to sort them by what they do next. The documentation is direct about the boundary: to route on an action, "use Action Paths instead". The table sets out how each component behaves in an onboarding journey.

ComponentWhat it evaluatesOnboarding useDocumented behaviour to plan around
Entry propertiesData from the triggering event or API callPlan, source or role captured at signupMaximum object size 50 KB
Audience PathsProfile and segment membership on arrivalSplit by stated goal or acquisition sourceEvaluation is immediate; first matching group wins
Action PathsThe first qualifying action in a windowBranch on first order, first session, profile completionDefault window one day; maximum 31 days
Delivery validationsSegments and filters at send timeStop a nudge the user no longer needsCheck only the criteria added to that Message step
Exit criteriaAn exception event or filterRemove users who have already activatedUsers in a Delay step leave when the delay ends

‍

How should you order audience groups?

Put the narrowest, highest-value group first. Braze sends each user "down the first branch whose criteria they meet", and the order cannot be edited after launch. A broad group placed first swallows everyone and leaves the specific groups with no users.

Our rule of thumb is to name the fallback path before building the specific ones. Write down what the Everybody Else user should receive, make that message good, and only then add groups that improve on it.

Each extra group is a message someone has to write and maintain. Up to eight groups per step is a ceiling and not a target.

Once a user is placed in a group, they "stay in that group even if their user profile changes afterward". That suits onboarding, where a user's first-week path should stay stable. A user who changes their stated goal on day two will not be re-sorted until they reach another Audience Paths step.

‍

How should a hypothetical meal-kit service wire this up?

Take a hypothetical meal-kit service. This is an illustration, not client work, and it uses no figures. New users enter an action-based Canvas when a custom event fires at account creation, and that event carries the plan type chosen at signup.

The first Message step welcomes the user and mentions the plan type from entry data. A Delay step follows, then an Action Paths step waits for a first order.

Users who order go to a second-box message. Users who do not order take the Everyone Else path to a single nudge. The service sets "Place an order" as an exit event, so a late order stops further nudges.

We would copy one design choice: the service never filters the entry audience on the same event that triggers entry. Nor does it personalise the nudge with event properties, because the nudge sits on the Everyone Else path, where no event exists.

The plan type comes from entry data, which is available throughout. Anything that must outlive the Canvas goes onto the profile.

‍

How do you keep a routing decision true until the message sends?

A routing decision is a snapshot, and messages can send later than the snapshot. Audience Paths do not re-check users after they move down a path.

A delay, Quiet Hours, Intelligent Timing or rate limiting can leave the profile out of step with the message. Braze documents the fix: turn on Validate audience at message send in the Message step's delivery validations.

Braze recommends using validations when Quiet Hours, Intelligent Timing or rate limiting are enabled. We would go further and use them on every onboarding nudge.

A nudge for something the user has just done is the fastest way to look like a template. Validations check only the segments and filters you add to that step, so repeat the relevant criteria there.

‍

When should a user leave the journey?

Add an exit event for the action the journey exists to produce. Braze lets you remove users when they perform an exception event, which stops further messages about something they have already done.

If the user is in a Delay step at the time, they remain there until the delay period ends. They then leave without moving on.

That behaviour matters for analytics as well as for sending. Braze updates Total Exits by Exit Criteria only after a user has fully exited the Canvas. Read exit counts with your delay lengths in mind.

‍

Which mistakes break personalized onboarding journeys?

The failures we would watch for are documented behaviours that were not planned around. Four are worth checking in every review.

  • Routing on a reaction with no delay. Evaluation is immediate. An Audience Paths step placed straight after a message sends everyone to the "did not interact" path, so add a delay first.
  • Filtering entry on the trigger itself. Braze warns of a race condition. The user may not be in the audience when they perform the trigger event, so they never enter.
  • Reading event properties in the lead message. They are not available there, so the first message should rely on entry data.
  • Changing ranking after launch. Braze warns against changing the ranked order setting after launch when users are in the step. Decide it before you launch.

‍

If you add a control group to measure the journey, Braze tracks conversions for control and variant users over exactly the same period. Control users receive no messages.

‍

How does this connect to the rest of the programme?

Personalized onboarding sits inside a wider set of decisions. Our guide to onboarding new mobile users from first open covers the first-session design. Measuring onboarding success covers how to judge a journey once it runs.

The data feeding the routing is covered in tracking user events, and the copy layer is covered in personalisation with Liquid tags. For the timing question, see what resolves when in real-time personalisation, and for sorting users, see segmenting audiences for automated campaigns.

The Braze documentation describes Liquid as pulling in "consented information from your user's account". This post does not settle what consent your own programme needs.

As a Braze implementation partner, CustomerIK recommends building the fallback path first and adding one audience group at a time. Validate at send on every nudge. Set an exit event for the action the journey exists to produce.

‍

Frequently Asked Questions
‍

1. Can you use Liquid defaults in onboarding messages?

Yes. The Braze documentation shows a default tag that falls back to "Valued User" when a first name is missing. A missing attribute then does not leave a blank in the greeting.

2. Should onboarding use Audience Paths or Action Paths?

Use Audience Paths for who the user is and Action Paths for what they do next. Many journeys need both, with a delay between a message and any step that checks for a reaction to it.

3. How long can an Action Paths step wait?

The default evaluation window is one day, and the maximum is 31 days. Users who do not perform a trigger event advance through the Everyone Else group at the end of the window.

4. Can a Canvas keep entry data after the user exits?

Entry data is available in Liquid during the Canvas. A User Update step can copy it onto a custom attribute so you can segment or message on it later.

5. How many steps can an onboarding Canvas have?

The documentation states a limit of 200 steps in a Canvas. An onboarding journey should be far smaller than that.

‍

Sources

  • Braze, Create a Canvas. Retrieved 24 Oct 2026.
  • Braze, Audience Paths. Retrieved 24 Oct 2026.
  • Braze, Action Paths. Retrieved 24 Oct 2026.
  • Braze, Delay. Retrieved 24 Oct 2026.
  • Braze, Exit criteria. Retrieved 24 Oct 2026.
  • Braze, Message. Retrieved 24 Oct 2026.
  • Braze, Context and event properties. Retrieved 24 Oct 2026.
  • Braze, User Update. Retrieved 24 Oct 2026.
  • Braze, Use Liquid. Retrieved 24 Oct 2026.
  • Limits and workspace features described here come from the pages above and can change, so the linked pages are the reference for any build.
  • Written by CustomerIK, a Braze implementation partner.

‍

CustomerIK is a Braze implementation partner working across onboarding, technical integration, marketing operations and customer data management.

If your onboarding Canvas routes users before it has the data to route them well, let's talk.

‍

Preferences

Privacy is important to us, so you have the option of disabling certain types of storage that may not be necessary for the basic functioning of the website. Blocking categories may impact your experience on the website.

Accept all cookies
Accept all cookies

These items are required to enable basic website functionality.

Always active

These items are used to deliver advertising that is more relevant to you and your interests.

These items allow the website to remember choices you make (such as your user name, language, or the region you are in) and provide enhanced, more personal features.

These items help the website operator understand how its website performs, how visitors interact with the site, and whether there may be technical issues.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.