Link Surveys
Data Prefilling in Link Surveys
Data prefilling via the URL allows you to increase completion rate by prefilling data you already have in a different system. Formbricks allows you to prefill multiple questions in a survey.
Purpose
Data prefilling via URL comes in handy when you:
- Have data for some of the respondents, but not all
- Have data you want the respondent to confirm or update
- Have data in a different system (e.g. your database) and want to add it to the user profile in Formbricks
- Want to embed a survey in an email and increase completion by prefilling the choice selected in the email
Quick Example
Example URL
https://app.formbricks.com/s/clin3dxja02k8l80hpwmx4bjy?question_id_1=answer_1&question_id_2=answer_2
How it works
To prefill the questions of a survey, add query parameters to the survey URL. The query parameter should be in the format questionId=answer
. The answer has to match the expected type of the question to pass through the validation. For example, if the first question is a rating question, the answer has to be a number. If the first question is a single select question, the answer has to be a string identical to one of the answer options.
Prefilling Customisation
You can customize the prefilling behavior using the skipPrefilled
parameter in the URL. If you want to skip the prefilled questions and show the next available question, you can add skipPrefilled=true
to the URL. By default, the skipPrefilled
parameter is set to false
.
Prefilling multiple values
Formbricks let's you prefill as many values as you want. You can combine multiple values in the URL using &
so for example name=Bernadette&age=18
. The order of the query parameters does not matter so you can always move around questions or add new ones without having to worry about the order of the query parameters.
Where do I find my question Id?
You find the questionId
in the Advanced Settings toggle at the bottom of each question card in the Survey Editor. As you see, you can update the questionId
to any string you like. However, once you published your survey, this questionId
cannot be updated anymore:
Examples
Here are a few examples to get you started:
Rating Question
Translates to 5 stars / points / emojis:
Rating Question
https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?rating_question_id=5
NPS Question
Translates to an NPS rating of 10:
NPS Questions
https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?nps_question_id=10
Single Select Question (Radio)
Chooses the option 'Very disappointed' in the single select question. The string has to be identical to the option in your question:
Single-select Question
https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?single_select_question_id=Very%20disappointed
Multi Select Question (Checkbox)
Selects three options 'Sun, Palms and Beach' in the multi select question. The strings have to be identical to the options in your question:
Multi-select Question
https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?multi_select_question_id=Sun%2CPalms%2CBeach
Open Text Question
Adds 'I love Formbricks' as the answer to the open text question:
Open Text Question
https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?openText_question_id=I%20love%20Formbricks
CTA Question
Adds 'clicked' as the answer to the CTA question. Alternatively, you can set it to 'dismissed' to skip the question:
CTA Question
https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?cta_question_id=clicked
Consent Question
Adds 'accepted' as the answer to the Consent question. Alternatively, you can set it to 'dismissed' to skip the question.
Consent Question
https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?consent_question_id=accepted
Picture Selection Question
Adds index of the selected image(s) as the answer to the Picture Selection question. The index starts from 1
Picture Selection Question.
https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?pictureSelection_question_id=1%2C2%2C3
All other question types, you currently cannot prefill via the URL.
Validation
Make sure that the answer in the URL matches the expected type for the questions.
The URL validation works as follows:
- For Rating or NPS questions, the response is parsed as a number and verified if it's accepted by the schema.
- For CTA type questions, the valid values are "clicked" (main CTA) and "dismissed" (skip CTA).
- For Consent type questions, the valid values are "accepted" (consent given) and "dismissed" (consent not given).
- For Picture Selection type questions, the response is parsed as an array of numbers and verified if it's accepted by the schema.
- All other question types are strings.
If an answer is invalid, the prefilling will be ignored and the question is presented as if not prefilled.