Skip to content

Questionnaire Metadata

Every questionnaire in Strapi has a metadata component that defines its identity, configuration, and relationship to other system entities.

Field Type Format Description
name string Free text Display name for the questionnaire (shown in Strapi admin)
slug string ^[a-z]+(-[a-z]+)*$ URL-safe identifier. Used in sync commands, preview URLs, and routing. Must be lowercase with hyphens only.

Slug examples: household, public-health, incoming-es, pet-health-claim


Field Type Description
questionList repeatable Ordered list of question references that defines the default question sequence

Each entry in questionList has:

Field Type Description
name string The questionId of a question in the questions dynamic zone

The order of entries in questionList determines the default flow sequence. Rules can override this order by routing to any question ID.


Field Type Description
vertical relation Links this questionnaire to a Vertical content type in Strapi

The vertical determines insurance type, branding, Stripe product IDs, and other product-level configuration. A questionnaire must be linked to a vertical for signup flows.


Field Type Description
questionnaireType enum Categorizes the questionnaire’s purpose

Enum values:

Value Description
SIGNUP New policy purchase flow
CLAIM Insurance claim submission flow
ADJUST_POLICY Modify an existing policy
CANCEL_POLICY Cancel an existing policy

Field Type Description
regions multi-select Countries/regions where this questionnaire is available

Supports 100+ country codes. Used to determine which questionnaire version to show based on the user’s location or selected region.


Field Type Description
type enum Defines the questionnaire’s structural type

Enum values:

Value Description
singleRegion One questionnaire for one region
multiRegion One questionnaire serving multiple regions
claim Claims flow
adjustPolicy Policy adjustment flow
cancelPolicy Policy cancellation flow

Field Type Default Description
isDependent boolean false Marks this questionnaire as a dependent/secondary questionnaire

Dependent questionnaires are variants that inherit from a main questionnaire. They are used for regional variations or conditional sub-flows.


Field Type Description
constants repeatable Key-value pairs available to the questionnaire at runtime

Each entry has:

Field Type Format Description
key string camelCase The constant name
value string JSON string The constant value (parsed as JSON at runtime)

Example: A constant maxAge with value "65" would be available in rules and validations.


Field Type Format Description
translationKey string camelCase Prefix for i18n translation keys

All translatable strings in the synced questionnaire file are wrapped with this prefix. For example, if translationKey is household, a question title becomes t('household.dateOfBirth.question').


Field Type Description
variants repeatable Regional or conditional variants of the questionnaire

Variants allow a single questionnaire definition to have different behaviors based on region or other conditions, without creating entirely separate questionnaires.


Field Type Description
hiddenFields repeatable Fields that are part of the data model but not shown in the form

Hidden fields can be pre-populated from URL parameters, previous answers, or external data sources. They are included in the submitted data but never rendered as visible questions.


Field Type Description
nestedQuestionIds repeatable Cross-question dependencies

Defines which question IDs are referenced by other questions. Used by the framework to manage state dependencies — for example, when one question’s visibility depends on another question’s answer.


Field Type Description
progressBar auto-calculated Progress bar configuration

The progress bar is automatically calculated from the question ordering. The following question types are excluded from progress calculation:

  • BLOCKER
  • PROCESSING / CLAIM_PROCESSING / CANCEL_POLICY_PROCESSING
  • QUOTE / QUOTE_CUSTOM
  • REDIRECT

This means the progress bar only reflects questions where the user actively provides input.


Field Type Description
adjustmentIdsToPopulate repeatable Question IDs to pre-fill during policy adjustment flows

When a user enters an ADJUST_POLICY flow, the answers from their existing policy are used to pre-fill these question IDs. This avoids asking the user to re-enter information they have already provided.


Field Type Required Format/Constraints
name string Yes Free text
slug string Yes ^[a-z]+(-[a-z]+)*$
questionList repeatable Yes Ordered question ID references
vertical relation No Link to Vertical content type
questionnaireType enum No SIGNUP, CLAIM, ADJUST_POLICY, CANCEL_POLICY
regions multi-select No Country codes
type enum No singleRegion, multiRegion, claim, adjustPolicy, cancelPolicy
isDependent boolean No Default: false
constants repeatable No key (camelCase) + value (JSON string)
translationKey string No camelCase
variants repeatable No Regional/conditional variants
hiddenFields repeatable No Non-visible data fields
nestedQuestionIds repeatable No Cross-question dependencies
progressBar auto N/A Auto-calculated
adjustmentIdsToPopulate repeatable No Question IDs for pre-fill