Onboarding flows
Build a multi-screen welcome, survey or tour that keeps going after a purchase and reports its answers to your app.
An onboarding flow is a series of screens, such as a welcome tour or a survey with a plan offer, that continues after a purchase. You design, build, deploy and place it exactly like a paywall.
Onboarding flows are in early access. Ask us on Discord, or email support@voidhash.com on a paid plan, to turn them on for your team.
How it differs from a paywall
| Paywall | Onboarding flow | |
|---|---|---|
| After a purchase or restore | Closes, and the app learns it sold. | Keeps going to the next screen. |
| How it usually ends | A purchase, a restore, or closing | A Finish flow button, or closing |
| Close paywall action | Available | Not available; end the flow with Finish flow |
Everything else is the same: screens, variables, states, buttons, translations and A/B tests.
Create one
- Open Paywalls, click New paywall, and set Kind to Onboarding flow. The kind can't change later.
- Design the screens as described in Design a paywall. With nothing selected, the Flow section of the Interaction tab shows the kind and the Start screen.
- Build and deploy it, then place it at a location, such as the one your app opens on first launch.
A typical onboarding flow:
- Asks a question on each of a few screens and stores each answer with Set variable.
- Saves the answers on the person with Set user attribute, so you can group people by them later.
- Offers a plan with Purchase product.
- Ends with Finish flow, whose Result names the outcome, such as
completed.
What your app receives
When a Finish flow button runs, the app receives the Result name and the flow's variables, such as the survey answers. Your developers decide what the app does next, so agree on the Result names with them. Closing the flow reports that it was closed.
A purchase inside an onboarding flow doesn't end it, so the app checks the person's access after the flow instead.
What your app allows
Your app decides what a flow may do on the device. Purchases, restores, closing and Track event always work. These need your app's permission, set by your developers:
| Action | Notes |
|---|---|
| Open URL | Allowed unless your app turns it off. |
| Request permission → Notifications | Asks the person to allow notifications. |
| Request permission → App tracking | iOS only. On Android the answer is always no. |
| Set user attribute | Saves answers on the person. |
An action your app doesn't allow is skipped, and the flow carries on. For developers: setup is on the Swift, Kotlin and React Native paywall pages.
Saved progress
A flow remembers its variables on the device, per person. When the same flow opens again, the answers are still there, but it starts again from its start screen. Finish flow clears the saved answers, and so does signing in as someone else. A purchase inside the flow keeps them.
If something's off
- No Onboarding flow kind: onboarding flows are in early access separately from paywalls.
- A permission prompt never appears: your app doesn't allow that action. Ask your developers.
- The app doesn't react to the end of the flow: check that the Result name matches what your developers expect.
Next steps
Still stuck? Check Troubleshooting, ask us on Discord, or email support@voidhash.com on a paid plan.
Something wrong or missing on this page? Tell us by email or on Discord.