This guide provides a step-by-step approach to correctly fill the QuestionnaireDetailsLang table. This table is used to store language-specific text for each question in the survey. It supports multi-language surveys, allowing the same question to appear in multiple languages with corresponding text, labels, and media files.
The table is linked to the QuestionnaireDetails table via qdetailid, meaning each question from QuestionnaireDetails has a corresponding language text entry in fw_questiondetailslang.
You can find the detailed structure of the QuestionnaireDetailsLang table here: 👉 QuestionnaireDetailsLang Table Structure
This is the primary key (auto-incremented) for the table.
Do not manually enter this value if inserting data directly via the database.
It is automatically generated.
qdetailid refers to the ID of the question from the QuestionnaireDetails table.
This creates a link between the question text and the question details.
Without this linkage, the text will not appear in the survey.
Example:
Suppose your question in QuestionnaireDetails has:
id = 1001 (This is the question ID in fw_questiondetails)
majorqid = 1, minorqid = 0
You need to link the text to this question using: qdetailid = 1001
This column specifies the language in which the question text appears.
Use standard language codes like:
Example: For an English version of the question: language = EN
For a Dutch version of the same question: language = NL
This column holds the actual text of the question in the specified language.
Example: For an English version: question = “How satisfied are you with our service?”
For a Dutch version: question = “Hoe tevreden bent u met onze service?”
This text appears specifically on the Client Sheet (CS) report.
It is usually a shorter version of the full question text for reporting purposes.
Example: For the full question: question = “How satisfied are you with our service?”
For the client sheet: clientsheetqtext = “Service satisfaction”
This text will appear in the Excel/CSV export of the survey data.
It should be a simplified version of the question text to fit within the download file.
Example: For the full question: question = “How satisfied are you with our service?”
For download purposes: downloadqtext = “Service Satisfaction Rating”
This text will appear if the survey data is being imported (bulk response data).
It should clearly reflect the question context for easy data mapping.
Example: For an NPS: importqtext = “NPS Score”
For service satisfaction: importqtext = “Service Satisfaction Level”
The reportqtext is used in drill-down reports to generate a natural language summary of the respondent's answer instead of showing the raw question text.
The placeholder ^answerQ^ should be used in the text to indicate where the respondent's answer will be inserted.
This helps make the report easier to read and more conversational when reviewing answers.
Example: If the response was: Answer: 8/10
The report will display: The respondent rated us 8 out of 10.
Here is a reference table for the reportqtext:
| Question Type | Actual Question in Survey | Suggested Report Text (reportqtext) |
|---|---|---|
| NPS | How likely are you to recommend us to a friend? | The respondent rated us ^answerQ^ out of 10. |
| Satisfaction | How satisfied were you with our service? | The customer satisfaction rating was: ^answerQ^. |
| Open Text | What can we do to improve our service? | The customer suggested: ^answerQ^. |
| Multiple Choice | Which service did you use? | The customer used: ^answerQ^. |
| Yes/No | Did the doctor listen to your concerns? | The customer answered: ^answerQ^. |
This text appears in the mobile app case details screen if the survey is accessible via an app.
Example: For service satisfaction: appqtext = “Satisfaction”
For NPS: appqtext = “NPS Score”
This defines the category in which the question falls in the Client Sheet.
Common categories include:
Example: For Service Satisfaction: cscategory = “Service Quality”
For NPS: cscategory = “Recommendation”
The basis text is shown in the Voorbeeld Vragenlijst (Example Questionnaire).
It explains why this question is being asked.
Example: basistext = “This question is asked when variable client is Swiesktly.”
For NPS: basistext = “This question is asked when the respondent is a promoter.”
This is a technical flag to indicate if the text was auto-generated from module settings.
Use:
1 → Yes, text was added from module language settings
0 → No, manually added text
Example: If you manually entered the text: addedfrommodlangsettings = 0
This is an optional column where you can upload an audio recording of the question.
The file should be uploaded as a BLOB (binary large object).
Supported formats:
- MP3
- WAV
This is an optional column where you can upload a video file related to the question.
The file should be uploaded as a BLOB.
Supported formats:
- MP4
- MOV
Here’s an example of a complete record for a single question:
| id | qdetailid | language | question | clientsheetqtext | downloadqtext | importqtext | reportqtext | appqtext | cscategory | basistext | addedfrommodlangsettings | audiofile | videofile |
| 1 | 1001 | EN | How satisfied are you with our service? | Service Satisfaction | Service Rating | Satisfaction Level | The respondent rated us ^answerQ^. | Satisfaction | Service Quality | Understand customer satisfaction |
Always ensure the qdetailid matches the ID from QuestionnaireDetails.
The reportqtext should always use ^answerQ^ to dynamically insert the response.
💡 In most cases: