Flows and questions
Link screens into a flow, ask questions with single choice, multiple choice or text answers, and receive the answers on your site.
Use this page to build an onboarding, a survey or a cancel flow: several screens in a row, with questions whose answers reach your code.
Build a flow
A flow is ordinary screens linked by buttons. The first screen is the one your placement shows, so A/B tests, schedules and targeting apply to the whole flow.
Create each screen. Or start from a template that makes several at once. See Start from a template.
On a button, set Type to Go to another screen and choose the next Screen.
On later screens add a Back to previous screen button if people may return. Publish every screen in the flow.
See Actions and links for these actions.
Questions
In Components, the Questions group has three layers.
| Layer | Use |
|---|---|
| Single choice | The visitor picks one answer. |
| Multiple choice | The visitor picks several. |
| Text field | The visitor types. |
Progress bars and step counters are built from regular layers (stacks and text); there is no special component.
Single and multiple choice
New questions start with three answers. Settings:
| Setting | What it does |
|---|---|
| Field ID | The name your site reads, such as goal. Lowercase letters, numbers and _, starting with a letter, up to 40 characters. Unique on the screen. |
| Must answer to continue | Required. |
| Limit how many they pick (multiple only) | Turns on At least and At most. Keep At least no more than At most, and At most no more than the number of answers. |
| Answers | A list. Add answer adds one; the remove button deletes one. A question needs at least 2. |
Click an answer in the list to edit it. An answer has an Answer ID (same format as the Field ID, unique within the question), the look of its Default and When selected states, and, for single choice, When picked: Just select it or Select it and go to another screen.
Text field
| Setting | What it does |
|---|---|
| Field ID | As above. |
| Must fill in to continue | Required. |
| Keyboard | Text, Email, Number, Phone, Website. Email and Website turn off auto-capital letters, and a badly formatted value counts as not filled in. |
| Placeholder | The hint text, per language. |
| Look | Text size, Height, Corner radius, Text, Placeholder and Background colors, Border. |
What visitors type never goes to Miniwall. Only your site receives it.
Required questions
When a screen has a required question that is not answered, every Run your code and Go to another screen button is dimmed and cannot be pressed. Back, Close and purchase buttons are not blocked. In a multiple choice with a maximum, the other answers dim once the limit is reached. The editor canvas does not block buttons, so you can still click them.
Receive answers
Answers are collected across all screens in the flow, keyed by Field ID: a chosen answer ID, a list of IDs for multiple choice, or the typed text. Going back keeps earlier choices.
const result = await presentPaywall({
paywall: { placement: 'onboarding' },
onAnswer: ({ fieldId, value }) => console.log(fieldId, value),
onAction: ({ actionId, answers }) => {
if (actionId === 'finish_onboarding') save(answers.goal, answers.email);
},
});Miniwall Analytics counts each chosen answer ID (never typed text) and each screen's views. See Answers and Analytics.