addedInput schema / properties / schema / properties
Added value: +{
+ "description": {
+ "description": "Optional intro text shown on the welcome screen.",
+ "type": "string"
+ },
+ "sections": {
+ "description": "Survey sections, each with questions. Use a single section for simple surveys.",
+ "items": {
+ "properties": {
+ "description": {
+ "description": "Optional section description.",
+ "type": "string"
+ },
+ "questions": {
+ "description": "Questions in this section.",
+ "items": {
+ "oneOf": [
+ {
+ "properties": {
+ "description": {
+ "description": "Optional helper text shown under the question label.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Question text shown to the respondent.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options the respondent chooses exactly one of.",
+ "items": {
+ "properties": {
+ "hasTextInput": {
+ "description": "Set true for an \"Other: ___\" option that lets the respondent type a free-text value.",
+ "type": "boolean"
+ },
+ "label": {
+ "description": "Option text shown to the respondent.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "label"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "required": {
+ "description": "Whether an answer is required. Defaults to false.",
+ "type": "boolean"
+ },
+ "showIf": {
+ "description": "Only show this question if the condition on an earlier question is met.",
+ "properties": {
+ "operator": {
+ "description": "eq = referenced answer equals value; neq = not equal; contains = multi_choice selection includes value; answered = respondent gave any answer.",
+ "enum": [
+ "eq",
+ "neq",
+ "contains",
+ "answered"
+ ],
+ "type": "string"
+ },
+ "questionId": {
+ "description": "ID of the earlier question to check. IDs are assigned in order of appearance as q_0, q_1, q_2, ... across all sections. Must reference a question before the one where showIf is set.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Option ID (opt_0, opt_1, ...) for eq/neq/contains — numbered per-question in option order. Omit for the answered operator.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "questionId",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "const": "single_choice",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "label",
+ "options"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "description": {
+ "description": "Optional helper text shown under the question label.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Question text shown to the respondent.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options the respondent can pick one or more of.",
+ "items": {
+ "properties": {
+ "hasTextInput": {
+ "description": "Set true for an \"Other: ___\" option that lets the respondent type a free-text value.",
+ "type": "boolean"
+ },
+ "label": {
+ "description": "Option text shown to the respondent.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "label"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "required": {
+ "description": "Whether an answer is required. Defaults to false.",
+ "type": "boolean"
+ },
+ "showIf": {
+ "description": "Only show this question if the condition on an earlier question is met.",
+ "properties": {
+ "operator": {
+ "description": "eq = referenced answer equals value; neq = not equal; contains = multi_choice selection includes value; answered = respondent gave any answer.",
+ "enum": [
+ "eq",
+ "neq",
+ "contains",
+ "answered"
+ ],
+ "type": "string"
+ },
+ "questionId": {
+ "description": "ID of the earlier question to check. IDs are assigned in order of appearance as q_0, q_1, q_2, ... across all sections. Must reference a question before the one where showIf is set.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Option ID (opt_0, opt_1, ...) for eq/neq/contains — numbered per-question in option order. Omit for the answered operator.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "questionId",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "const": "multi_choice",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "label",
+ "options"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "description": {
+ "description": "Optional helper text shown under the question label.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Question text shown to the respondent.",
+ "type": "string"
+ },
+ "required": {
+ "description": "Whether an answer is required. Defaults to false.",
+ "type": "boolean"
+ },
+ "showIf": {
+ "description": "Only show this question if the condition on an earlier question is met.",
+ "properties": {
+ "operator": {
+ "description": "eq = referenced answer equals value; neq = not equal; contains = multi_choice selection includes value; answered = respondent gave any answer.",
+ "enum": [
+ "eq",
+ "neq",
+ "contains",
+ "answered"
+ ],
+ "type": "string"
+ },
+ "questionId": {
+ "description": "ID of the earlier question to check. IDs are assigned in order of appearance as q_0, q_1, q_2, ... across all sections. Must reference a question before the one where showIf is set.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Option ID (opt_0, opt_1, ...) for eq/neq/contains — numbered per-question in option order. Omit for the answered operator.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "questionId",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "const": "text",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "label"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "description": {
+ "description": "Optional helper text shown under the question label.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Question text shown to the respondent.",
+ "type": "string"
+ },
+ "max": {
+ "description": "Highest scale value. The range (max - min + 1) must be ≤ 11.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "maxLabel": {
+ "description": "Label shown at the max end, e.g. \"Very likely\".",
+ "type": "string"
+ },
+ "min": {
+ "description": "Lowest scale value (usually 0 or 1).",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "minLabel": {
+ "description": "Label shown at the min end, e.g. \"Not likely\".",
+ "type": "string"
+ },
+ "required": {
+ "description": "Whether an answer is required. Defaults to false.",
+ "type": "boolean"
+ },
+ "showIf": {
+ "description": "Only show this question if the condition on an earlier question is met.",
+ "properties": {
+ "operator": {
+ "description": "eq = referenced answer equals value; neq = not equal; contains = multi_choice selection includes value; answered = respondent gave any answer.",
+ "enum": [
+ "eq",
+ "neq",
+ "contains",
+ "answered"
+ ],
+ "type": "string"
+ },
+ "questionId": {
+ "description": "ID of the earlier question to check. IDs are assigned in order of appearance as q_0, q_1, q_2, ... across all sections. Must reference a question before the one where showIf is set.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Option ID (opt_0, opt_1, ...) for eq/neq/contains — numbered per-question in option order. Omit for the answered operator.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "questionId",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "const": "scale",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "label",
+ "min",
+ "max"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "columns": {
+ "description": "Columns of the matrix — each column defines the options used for every row.",
+ "items": {
+ "properties": {
+ "label": {
+ "description": "Column label.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options shown in each cell of this column. Every row uses the same column options.",
+ "items": {
+ "properties": {
+ "hasTextInput": {
+ "description": "Set true for an \"Other: ___\" option that lets the respondent type a free-text value.",
+ "type": "boolean"
+ },
+ "label": {
+ "description": "Option text shown to the respondent.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "label"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "label",
+ "options"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "description": {
+ "description": "Optional helper text shown under the question label.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Question text shown to the respondent.",
+ "type": "string"
+ },
+ "required": {
+ "description": "Whether an answer is required. Defaults to false.",
+ "type": "boolean"
+ },
+ "rows": {
+ "description": "Rows of the matrix — usually items or criteria being evaluated.",
+ "items": {
+ "properties": {
+ "label": {
+ "description": "Row label — usually an item or criterion being evaluated.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "label"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "showIf": {
+ "description": "Only show this question if the condition on an earlier question is met.",
+ "properties": {
+ "operator": {
+ "description": "eq = referenced answer equals value; neq = not equal; contains = multi_choice selection includes value; answered = respondent gave any answer.",
+ "enum": [
+ "eq",
+ "neq",
+ "contains",
+ "answered"
+ ],
+ "type": "string"
+ },
+ "questionId": {
+ "description": "ID of the earlier question to check. IDs are assigned in order of appearance as q_0, q_1, q_2, ... across all sections. Must reference a question before the one where showIf is set.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Option ID (opt_0, opt_1, ...) for eq/neq/contains — numbered per-question in option order. Omit for the answered operator.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "questionId",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "const": "matrix",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "label",
+ "rows",
+ "columns"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "title": {
+ "description": "Optional section heading.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "questions"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "title": {
+ "description": "Survey title shown to respondents on the welcome screen.",
+ "type": "string"
+ }
+}