addedInput schema / properties / definition
Added value: +{
+ "additionalProperties": false,
+ "properties": {
+ "audience": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "selections": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "audienceId": {
+ "pattern": "^[a-fA-F0-9]{24}$",
+ "type": "string"
+ },
+ "requestedCount": {
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ },
+ "selectedTesterIds": {
+ "items": {
+ "pattern": "^[a-fA-F0-9]{24}$",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "audienceId",
+ "requestedCount"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "selections"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "blocks": {
+ "description": "Blocks in execution order, with stable unique IDs. Preserve existing blocks when replacing a draft definition.",
+ "items": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "configuration": {
+ "additionalProperties": false,
+ "properties": {
+ "benchmarks": {
+ "items": {
+ "enum": [
+ "sus",
+ "suprq"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "browserContinuation": {
+ "additionalProperties": false,
+ "description": "Set when this AI task should continue where an earlier live-website AI block stopped. Keep full experience configuration and a separate task/stopCondition. Configure before launch.",
+ "properties": {
+ "fromBlockId": {
+ "description": "ID of the nearest preceding live-website AI block for the same website URL. Resume each participant’s browser session from that block’s final page. The source must be in this definition, before this block; not a testId or runId.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "fromBlockId"
+ ],
+ "type": "object"
+ },
+ "credentials": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "configured": {
+ "type": "boolean"
+ },
+ "customFields": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "filesEnabled": {
+ "type": "boolean"
+ },
+ "mode": {
+ "enum": [
+ "dedicated",
+ "shared"
+ ],
+ "type": "string"
+ },
+ "predefinedCredentialsEnabled": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "enabled",
+ "filesEnabled",
+ "predefinedCredentialsEnabled",
+ "mode",
+ "customFields",
+ "configured"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Credential settings contain configuration status only. Enter or change login details in the authenticated Uxia editor using the returned test link. Never request or send passwords, API keys or authentication codes through MCP tools or forms. Preserve existing credential settings on edits; use null when login is not needed."
+ },
+ "experience": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "advancedFiles": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "fileKey": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "fileName": {
+ "type": "string"
+ },
+ "fileSize": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "fileType": {
+ "type": "string"
+ },
+ "height": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "uploadedAt": {
+ "type": "string"
+ },
+ "width": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "fileKey",
+ "fileName",
+ "fileType",
+ "fileSize",
+ "uploadedAt"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "antiBot": {
+ "type": "boolean"
+ },
+ "browserHeadless": {
+ "type": "boolean"
+ },
+ "isPrototype": {
+ "type": "boolean"
+ },
+ "kind": {
+ "const": "live-website",
+ "type": "string"
+ },
+ "previewFileKey": {
+ "type": "string"
+ },
+ "provider": {
+ "anyOf": [
+ {
+ "enum": [
+ "figma_make",
+ "figma_proto",
+ "lovable",
+ "base44",
+ "google_stitch"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "stopCondition": {
+ "description": "Draft one short \"Stop when\" sentence naming an observable on-screen state at task completion. No alternatives or off-screen events.",
+ "maxLength": 500,
+ "type": "string"
+ },
+ "url": {
+ "format": "uri",
+ "type": "string"
+ },
+ "verified": {
+ "type": "boolean"
+ },
+ "viewport": {
+ "additionalProperties": false,
+ "properties": {
+ "height": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "width": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "width",
+ "height"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind",
+ "url",
+ "stopCondition",
+ "isPrototype",
+ "verified",
+ "antiBot",
+ "advancedFiles"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "figmaSource": {
+ "additionalProperties": false,
+ "properties": {
+ "fileKey": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "selectedFlowIndex": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "fileKey",
+ "selectedFlowIndex"
+ ],
+ "type": "object"
+ },
+ "files": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "fileKey": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "fileName": {
+ "type": "string"
+ },
+ "fileSize": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "fileType": {
+ "type": "string"
+ },
+ "height": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "uploadedAt": {
+ "type": "string"
+ },
+ "width": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "fileKey",
+ "fileName",
+ "fileType",
+ "fileSize",
+ "uploadedAt"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "interactionFlow": {
+ "additionalProperties": false,
+ "properties": {
+ "endNodeId": {
+ "type": "string"
+ },
+ "nodes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "additionalProperties": false,
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "x",
+ "y"
+ ],
+ "type": "object"
+ },
+ "parentId": {
+ "type": "string"
+ },
+ "reactions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "actions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "destinationHandle": {
+ "enum": [
+ "top",
+ "bottom",
+ "left",
+ "right"
+ ],
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "sourceHandle": {
+ "enum": [
+ "top",
+ "bottom",
+ "left",
+ "right"
+ ],
+ "type": "string"
+ },
+ "type": {
+ "const": "NAVIGATE",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "destinationId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "trigger": {
+ "additionalProperties": false,
+ "properties": {
+ "direction": {
+ "enum": [
+ "VERTICAL",
+ "HORIZONTAL",
+ "UP",
+ "DOWN",
+ "LEFT",
+ "RIGHT",
+ "ANY"
+ ],
+ "type": "string"
+ },
+ "durationMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "type": {
+ "enum": [
+ "SCROLL_TO",
+ "WAIT",
+ "DRAG_TO",
+ "ON_CLICK",
+ "INPUT",
+ "HOVER"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "trigger",
+ "actions"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "rect": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "type": "number"
+ },
+ "w": {
+ "type": "number"
+ },
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "x",
+ "y",
+ "w",
+ "h"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "enum": [
+ "SCREEN",
+ "HOTSPOT"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "startNodeId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "startNodeId",
+ "nodes"
+ ],
+ "type": "object"
+ },
+ "kind": {
+ "const": "prototype",
+ "type": "string"
+ },
+ "presentation": {
+ "enum": [
+ "slideshow",
+ "interactive"
+ ],
+ "type": "string"
+ },
+ "provider": {
+ "anyOf": [
+ {
+ "enum": [
+ "figma_make",
+ "figma_proto",
+ "lovable",
+ "base44",
+ "google_stitch"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "kind",
+ "presentation",
+ "files"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Structured experience object, never prose. For a live website, put the plain URL in experience.url and include kind, stopCondition, isPrototype, verified, antiBot and advancedFiles. Use null for an unconfigured draft."
+ },
+ "includeBenchmarks": {
+ "type": "boolean"
+ },
+ "scenario": {
+ "description": "Draft 1–3 short sentences in second person, present tense: situation + reason to act now. Do not repeat the task.",
+ "maxLength": 500,
+ "type": "string"
+ },
+ "task": {
+ "description": "Draft one short sentence, usually 10–25 words: action + one target + essential constraints. Preserve accepted wording.",
+ "maxLength": 500,
+ "type": "string"
+ }
+ },
+ "required": [
+ "scenario",
+ "experience",
+ "credentials",
+ "task"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "const": "ai-user-test",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "configuration"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "questions": {
+ "description": "Follow-up survey questions capture judgments, comparisons, friction and what the researcher wants to learn. Use explicit question objects with unique id, type, question and required fields. open_ended needs question text; multiple_choice, ranking and budget_allocation need at least two non-empty options. allowMultiple applies to multiple_choice. rating needs scaleMin < scaleMax; rating and ranking require scaleLabels.min and scaleLabels.max naming the endpoints. budget_allocation asks testers to split 100 points across options. yes_no asks for a yes/no answer. At most 10 questions per Survey; launch preview reports plan and test-wide limits.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "additionalContext": {
+ "type": "string"
+ },
+ "allowMultiple": {
+ "type": "boolean"
+ },
+ "generatedLabels": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "onlyShowAfterFlowCompletion": {
+ "type": "boolean"
+ },
+ "optionImages": {
+ "items": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "fileKey": {
+ "type": "string"
+ },
+ "fileName": {
+ "type": "string"
+ },
+ "fileSize": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "fileType": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "fileKey",
+ "fileName",
+ "fileType",
+ "fileSize"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "options": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "question": {
+ "type": "string"
+ },
+ "questionImages": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "fileKey": {
+ "type": "string"
+ },
+ "fileName": {
+ "type": "string"
+ },
+ "fileSize": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "fileType": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "fileKey",
+ "fileName",
+ "fileType",
+ "fileSize"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "required": {
+ "type": "boolean"
+ },
+ "scaleLabels": {
+ "additionalProperties": false,
+ "properties": {
+ "max": {
+ "type": "string"
+ },
+ "min": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "min",
+ "max"
+ ],
+ "type": "object"
+ },
+ "scaleMax": {
+ "type": "number"
+ },
+ "scaleMin": {
+ "type": "number"
+ },
+ "type": {
+ "enum": [
+ "open_ended",
+ "multiple_choice",
+ "rating",
+ "ranking",
+ "budget_allocation",
+ "yes_no"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "question",
+ "required"
+ ],
+ "type": "object"
+ },
+ "maxItems": 10,
+ "type": "array"
+ },
+ "type": {
+ "const": "survey",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "questions"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "configuration": {
+ "additionalProperties": false,
+ "properties": {
+ "conformanceLevel": {
+ "enum": [
+ "AA",
+ "AAA"
+ ],
+ "type": "string"
+ },
+ "files": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "fileKey": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "fileName": {
+ "type": "string"
+ },
+ "fileSize": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "fileType": {
+ "type": "string"
+ },
+ "height": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "uploadedAt": {
+ "type": "string"
+ },
+ "width": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "fileKey",
+ "fileName",
+ "fileType",
+ "fileSize",
+ "uploadedAt"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "conformanceLevel",
+ "files"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "const": "accessibility-test",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "configuration"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Card sorting shows participants a set of cards (content items, features or menu entries) and asks them to group the cards into categories, revealing how they expect information to be organized. Use a closed sort to test an existing structure: participants place every card into your predefined categories (at least 2). Use an open sort to discover participants' own mental model: they create and name their own categories; predefined categories are optional starting points. Card and category labels should be short and self-explanatory; avoid labels that repeat category names. Leave instructions empty to show default instructions in each participant's language. Costs 10 credits per participant and is unavailable on the Free plan.",
+ "properties": {
+ "configuration": {
+ "additionalProperties": false,
+ "properties": {
+ "cards": {
+ "description": "Cards to sort, 1 to 25.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "description": "Optional detail shown on the card when showDescriptions is true, up to 200 characters.",
+ "type": "string"
+ },
+ "id": {
+ "description": "Stable unique ID, e.g. \"card-1\" or \"category-1\".",
+ "pattern": "^[A-Za-z0-9_-]{1,64}$",
+ "type": "string"
+ },
+ "image": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "fileKey": {
+ "type": "string"
+ },
+ "fileName": {
+ "type": "string"
+ },
+ "fileSize": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "fileType": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "fileKey",
+ "fileName",
+ "fileType",
+ "fileSize"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Existing authorized workspace image; omit unless the user supplied one."
+ },
+ "label": {
+ "description": "Short, self-explanatory card name, up to 50 characters.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "label"
+ ],
+ "type": "object"
+ },
+ "maxItems": 25,
+ "type": "array"
+ },
+ "categories": {
+ "description": "Predefined categories, at most 10. Closed sorts need at least 2; open sorts may use [].",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "description": "Stable unique ID, e.g. \"card-1\" or \"category-1\".",
+ "pattern": "^[A-Za-z0-9_-]{1,64}$",
+ "type": "string"
+ },
+ "label": {
+ "description": "Short category name, up to 50 characters.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "label"
+ ],
+ "type": "object"
+ },
+ "maxItems": 10,
+ "type": "array"
+ },
+ "hideCardNames": {
+ "description": "Hide the label of cards that have an image, so participants sort by image alone.",
+ "type": "boolean"
+ },
+ "instructions": {
+ "description": "Participant instructions. Use \"\" for the default, localized instructions.",
+ "type": "string"
+ },
+ "showDescriptions": {
+ "type": "boolean"
+ },
+ "showImages": {
+ "type": "boolean"
+ },
+ "sortType": {
+ "description": "closed: participants use only the predefined categories. open: participants create their own categories.",
+ "enum": [
+ "closed",
+ "open"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "instructions",
+ "sortType",
+ "categories",
+ "cards"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "const": "card-sorting",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "configuration"
+ ],
+ "type": "object"
+ }
+ ],
+ "description": "AI draft example: {\"id\":\"task-1\",\"type\":\"ai-user-test\",\"configuration\":{\"task\":\"\",\"scenario\":\"\",\"experience\":null,\"credentials\":null}}. Prefer add_task/update_task for website tasks."
+ },
+ "type": "array"
+ },
+ "schemaVersion": {
+ "const": 2,
+ "type": "number"
+ }
+ },
+ "required": [
+ "schemaVersion",
+ "audience",
+ "blocks"
+ ],
+ "type": "object"
+}