Lifecycle flows that
run themselves.
A journey is a small program your audience walks through: enter on a segment or an event, send a push, wait, branch on what the person did, tag them, split them into arms with a holdout. On OpenPush it is free, uncapped, and built in a visual editor that saves every revision.
Five node kinds. That is the whole vocabulary.
Enough to express every lifecycle flow we have ever shipped in a game — and few enough that a new teammate reads a journey in one look.
Segment or event
Enter everyone in a segment as they join it, or enter one person the moment your app records an event like level_up or purchase. Exit rules: on session, on an event, or when they leave the audience. Re-entry after a cool-down you choose.
Send a template
Any template, with personalization tokens, images and actions. Frequency caps and quiet hours apply inside the journey exactly as they do to a broadcast — held, not dropped.
Durable timers
From one minute to a year. Timers survive restarts, and pausing a journey shifts every waiting person by the length of the pause.
Branch on behaviour
Did they click, receive or confirm the last push? Are they in a segment right now? Two arms, evaluated live.
Weighted arms and holdouts
Two to twenty arms with weights that sum to a hundred. An empty arm is a holdout — the control group you need to know whether the journey earns anything.
Write back to the person
Set or merge data tags as people move — so the next segment, and the next journey, already know what happened.
New players, first three days.
A segment entrance for players whose first session was in the last day; three pushes, each one skipped if the previous one was tapped.
first_session within 24 hours; exit when they leave the segment
template "Welcome", with the player's name
yes → skip ahead · no → the nudge
template "Daily Reward"
Illustrative — the exact schema is in the Journeys API reference.
The moment someone levels up.
One line in your app — OpenPush.trackEvent("level_up", ["level": 10]) — enters that person into the journey within seconds. Every qualifying event starts its own run, so two level-ups are two rewards.
where level is greater than or equal to 10
template "Level Up Reward", the level filled in from the event
yes → done · no → one offer
template "Skin Sale A"
Lapsed spenders, and proof it worked.
The journey vendors love to show you — with the part they leave out: a control arm. Without the holdout you cannot tell whether the push brought people back or they were coming anyway.
last purchase over 30 days ago and level at least 20; exit on session
ten percent are the holdout and get nothing
template "Comeback D7"
a session exits the journey early — that is the win
entered, completed, exited early — per arm
Segment and event entrances; push and in-app message steps; wait, wait-until-event and time windows; tag; yes/no on segment membership and on what the person did with the previous push; weighted splits with holdout; Live Activity and webhook steps; goals that end a run when the person converts; exit and re-entry rules; per-node counts; a visual editor with saved revisions; and the REST API. From your coding agent: the MCP server reads journeys and their stats and prepares journey drafts — activation stays with you, in the console. Personal journeys, opt-in per app, choose each person's next step from options you define. Email and SMS steps are not part of OpenPush.
Journeys questions.
How many journeys can I run?
As many as you like, with as many steps as you like. There is no plan tier that raises a cap, because there is no cap.
Do caps and quiet hours apply inside a journey?
Yes — exactly as they do to a broadcast. A push a journey wants to send during someone's quiet hours is held and released when the window opens; a push over their frequency cap is held, not dropped, and the journey's report shows it.
Can I see it before I trust it?
Yes. Install the OpenPush.ai App, link your phone, and the sample workspace lets you run the welcome ladder, the level-up trigger and the win-back journey against your own device in minutes — with the waits compressed so you are not waiting a day to see step two. The app →
Can I edit a journey that is running?
Yes. Every save is a revision; a live revision cannot remove a node someone is currently standing on, and pausing shifts every timer by the length of the pause. Resume, and nobody is skipped.