Onboarding flow
A custom first-run questionnaire for your customers
You can put a short, branded questionnaire in front of new customers — "What are you building?", "What's your team size?" — built step by step in the Branding studio's onboarding builder and stored as a validated flow schema (flowSchema).
Anatomy of a flow
{
"version": 1,
"enabled": true,
"intro": {
"title": "Welcome to Acme Studio",
"sub": "Two quick questions so we can set things up."
},
"steps": [
{
"id": "building",
"question": "What are you building?",
"options": [
{ "value": "website", "label": "A website" },
{ "value": "web-app", "label": "A web app" },
{ "value": "online-store", "label": "An online store" }
]
},
{
"id": "goals",
"question": "What matters most right now?",
"multi": true,
"options": [
{ "value": "launch-fast", "label": "Launching fast" },
{ "value": "custom-design", "label": "Custom design" },
{ "value": "integrations", "label": "Integrations" }
]
}
]
}- An optional intro screen (title + subtitle) opens the flow.
- Each step is one question with 2–8 options. Steps are single-select by default; set
multi: truefor checkboxes. - Option values are slugs (lowercase
a-z0-9-), derived from the label if you don't set one. They're what you get back in the answers. - The whole flow is off until
enabledis explicitly true — the builder's toggle.
Limits
| What | Limit |
|---|---|
| Steps per flow | 5 |
| Options per step | 2 minimum, 8 maximum |
| Question text | 120 characters |
| Step subtitle | 160 characters |
| Option label | 48 characters |
| Intro title / subtitle | 80 / 160 characters |
All text is HTML-stripped and truncated to its cap rather than rejected. A step that ends up with fewer than 2 usable options is dropped; extra steps and options past the caps are dropped.
Answers
Submitted answers are validated server-side against your schema: only known step ids with values from that step's options survive, single vs. multi shape is enforced, and anything else is discarded. You get back a clean { stepId: value } (or string[] for multi steps) record per customer.