Skip to content

Personalised onboarding

In-app onboarding forms that know who the user is, change with what they answer, run as A/B tests and report to PostHog.

What you can build

PieceWhat it doesRead more
AttributesTyped, read-only facts about the user (plan, role, first name) from the URL, the SDK or a lookup. Usable in logic, text and visibility.Attributes and recall
Profile lookupYour backend or PostHog fills attributes and prefill when the form loads, for a signed user id.Profile lookups and signed identity
Skip if knownA question whose answer you already have is not asked, but the value is stored.Attributes and recall
Resume by userProgress follows the user across devices for a time you set.Profile lookups and signed identity
Adaptive AIOne AI follow-up question, answer classification, personalised copy. Opt in per form.Adaptive AI questions
Journeys and decideStages that open on events or days; one call that says what a user should see now.Journeys and the decide endpoint

For product teams

Start from Create form, then Onboarding flow with experiment. Describe your app and who uses it. FormFlow drafts an onboarding form, two or three alternative versions each with a stated hypothesis, and a suggested experiment: the main metric, guardrails and which answers to send to PostHog as person properties. Everything is a draft. Nothing goes live until you publish it and start the experiment.

Open the form to declare the attributes your app will send, choose which questions to skip when the answer is known, and turn on AI features. The experiment page shows results in plain language and the themes view groups open-text answers by variant. Autopilot can propose the next variant to test; each proposal waits in an approval queue and nothing is applied without a person approving it, unless you switch on auto-apply and set its limits.

AI features are off by default, run only for respondents who granted consent when the form names a consent field, and are blocked entirely in protected data mode. If the AI is unavailable the form shows the questions and text you wrote.

For developers

Your app sends uid, uid_sig (an HMAC your server computes) and attrs.<key> values. The mobile SDKs and the Embed SDK already do this. For fully native screens call POST /public/onboarding/decide and render the returned definition yourself.