Skip to content

Flow Components

These components control the non-input steps of a questionnaire flow. They are not form fields — they display information, block ineligible users, mark completion, or redirect to external URLs.

All flow components share the common question fields (questionId, screen, validations). The required field is typically not relevant for these types.


Welcome screen shown at the start of a questionnaire or section. Displays the question title and description in a Centered layout, optionally with info cards.

Use IntroForm to set context before the user begins answering questions — explain what the questionnaire is for, what information they will need, or how long it takes.

Layout: Centered

Strapi props:

Prop Type Description
infoCards array List of cards displayed below the description. Each card has title, description, and optionally icon.

App extension: The app provides CustomIntro, a richer version with enhanced layout options, custom illustrations, and more flexible content blocks. When INTRO is used in certain questionnaires, the app may render CustomIntro instead of the base IntroForm.

Stored value: None. IntroForm does not collect data.


Stop screen for ineligible users. When a user’s answers make them ineligible for a product, rules can navigate them to a Blocker question that explains why they cannot continue and offers alternative actions.

Layout: Standalone (full control over the page)

Strapi props:

Prop Type Description
buttonProps array Action buttons displayed on the blocker page. Each entry has text (button label), href (URL or path), and variant (primary, secondary).

Typical setup:

  1. Create a BLOCKER question in Strapi (e.g., questionId: "ageBlocker")
  2. Set the screen’s question to explain why the user is blocked (e.g., “Unfortunately, this product is not available for your age group”)
  3. Set the screen’s description with additional context or suggestions
  4. Add buttonProps with links to alternative products or the homepage
  5. Create a rule on a previous question that navigates to this blocker when the blocking condition is met

Example buttonProps:

[
{ "text": "Explore other products", "href": "/en/insurance/", "variant": "primary" },
{ "text": "Contact us", "href": "/en/contact/", "variant": "secondary" }
]

Stored value: None. Blocker is a dead end — the user cannot proceed past it.


Completion screen shown after a questionnaire is successfully submitted. Displays a congratulations message, summary information, and next-step actions.

Layout: Standalone (full control over the page)

Strapi props:

Prop Type Description
buttonProps array Action buttons. Each entry has text, href, variant (primary, secondary), and optionally redirectToQuestionId (navigates to another question in the same questionnaire instead of an external URL).
infoCards array Information cards displayed on the success page. Each card has title, description, and optionally icon. Used for next steps, tips, or related information.

Typical setup:

The Success question is usually the last step in a signup flow, placed after the Processing step. It confirms that the policy was created and shows the user what to expect next (e.g., “Check your email for your policy documents”).

Stored value: None. Success is a terminal screen.


Immediately redirects the user to another URL. No visible UI is rendered — the redirect happens as soon as this question is reached.

Layout: Not applicable (no UI)

Used to send users to external pages, other questionnaires, or specific app routes. Common use cases:

  • Redirecting to a partner website after data collection
  • Sending users to a different questionnaire flow based on their answers
  • Routing to the account dashboard after completion

Strapi props:

Prop Type Description
url string The URL to redirect to. Can be absolute (external) or relative (within the app).

Stored value: None. The user is redirected before any value could be stored.