====== ✅ Steps to Fill in the QuestionnaireHeader Table (Complete Guide) ====== This guide provides a comprehensive step-by-step approach to correctly populate the **fw_questionnaireheader** table in the database. This table contains the core metadata and configuration settings for each questionnaire, defining how it behaves in both the **backend system** and the **survey interface**. Each entry in this table represents a **unique questionnaire** with associated questions, start/end dates, configurations, and key control settings. You can refer to the detailed structure of the **QuestionnaireHeader Table** here: → [[questionnaireheader|QuestionnaireHeader Table Structure]] ==== 1. Add the ID (id) ==== 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. **Example:** - Leave this field blank when inserting data. ==== 2. Link to Module ID (moduleid) ==== This field connects the questionnaire to a **specific module** in the **modulesettingoptions** table. It determines which module the survey belongs to. **Example:** - For KTO Customer Survey: moduleid = 1001 ==== 3. Set the Start Date (startdate) ==== Defines when the survey becomes active. Enter the date in the format: **YYYY-MM-DD**. **Example:** - startdate = 2025-04-01 ==== 4. Set the End Date (enddate) ==== Defines when the survey expires. Ensure the end date is **after** the start date. **Example:** - enddate = 2025-12-31 ==== 5. Capture Last Question Detail ID (lastqdetailid) ==== Tracks the **last question ID** the respondent answered. Leave this field blank if inserting manually — it is system-generated. **Example:** - lastqdetailid = 34 ==== 6. Capture Last Option ID (lastoptionids) ==== Tracks the **last option ID** the respondent selected. Leave this blank when inserting manually — it is system-generated. **Example:** - lastoptionids = 178 ==== 7. Define Anonymous Options (anonymousoptions) ==== Lists option IDs that will be treated as **anonymous**. Separate multiple option IDs with a comma (,). **Example:** - anonymousoptions = 123,124,125 ==== 8. Track Anonymous Invitation Count (anonymousinvcnt) ==== Keeps track of how many **anonymous invitations** were sent. This count starts at **0**. **Example:** - anonymousinvcnt = 0 ==== 9. Set Case Anonymous Options (caseanonymoptions) ==== Specifies which **action lists** or **data sets** exclude identifiable respondent information. Provide option IDs separated by commas. ==== 10. Set the Status (status) ==== Defines the current state of the survey. **Allowed Values:** - **1** = Active - **0** = Inactive - **2** = Archived ==== 11. Exclude Filter Questions (filterquestions) ==== Defines which questions should be excluded from the survey. Provide question IDs separated by commas. **Example:** - filterquestions = 43,47 ==== 12. Set Number of Tiles per Page (nooftilesperpage) ==== Determines how many question tiles appear per page. **Example:** - nooftilesperpage = 9 ==== 13. Set Number of Columns per Page (noofcolperpage) ==== Defines how many columns should appear per page. **Example:** - noofcolperpage = 3 ==== 14. Define Opt-Out Options (optoutoptionids) ==== Defines the option IDs that **terminate the survey** if selected. Separate multiple option IDs with commas. **Example:** - optoutoptionids = 100,101 ==== 15. Set Language Conversion (languageconversion) ==== Defines the primary language conversion for the survey. This is useful for multi-language surveys. ==== 16. Set Branch Level Question Position (branchlevelqtnposition) ==== The `branchlevelqtnposition` field is used to: * Group questions under section headers. * Define the display order of branch-level questions. * Create separate navigation menus per section. [[branchlevelquestionposition|click here to learn more in detail]] ==== 17. Set Branch Level Menu ID (branchlevelqtnmenuid) ==== Stores the menu ID for branch-level questions. Identifies the section where the question will appear. **Example:** - 80,81,82,83,84^|||^Position1~^|^~Position2~^|^~Position3~^|^~Position4~^|^~Position5^|||^80,81,82,83,84 ==== 18. Set Maximum Tags (maxtags) ==== Defines the maximum number of tags displayed in the tag cloud. **Example:** - maxtags = 50 ==== 19. Set Tag Frequency (tagfrequency) ==== Defines how often a word must appear to qualify as a tag. **Example:** - tagfrequency = 5 ==== 20. Count Tags Only Once (counttagonce) ==== Ensures each word from a respondent is counted only once in the tag cloud. **Example:** - counttagonce = 1 ==== 21. Reference Question Detail ID (vraagreferenceqdetailid) ==== Links to a referenced question detail ID for tailor-made questions. This automatically updates dispcndtn and dispprms. **Example:** - vraagreferenceqdetailid = 234 ==== 22. Set Emotion Question Detail IDs (emotionqdetailids) ==== Defines the question detail IDs linked to emotion-related questions. Separate by commas. **Example:** - emotionqdetailids = 45,67,89 ==== 23. Set Tile Empty Text (settileemptytxt) ==== Allows default text to display if graph content is empty. ==== 24. Set Maximum Open Answers in Export (noofopenansinexport) ==== Defines the number of open-ended answers to include in the export. **Example:** - noofopenansinexport = 100 ==== 25. Set Emotion Library Type (emotionlibrarytype) ==== Specifies the type of emotion library used. ==== 26. Set Topic Library Type (topiclibrarytype) ==== Defines the type of topic library. **Example:** topiclibrarytype = modules/ennatuurlijk ==== 27. Set Topic Library Version (topiclibraryversion) ==== Stores the version of the topic library. **Example:** topiclibraryversion = v1.0 ==== ✅ Notes ==== - Always verify that the **lastqdetaillid** and **lastoptionids** are correct when there are changes in the existing module. - Always verify that the **startdate** and **enddate** are valid. - For **opt-out options**, ensure those options terminate the survey if selected.