Create form
create_formCreate a form in the team this token is bound to. Pass the questions array and report configuration in one call instead of following up with per-question calls. In the outcome_quiz scene report.outcomes is REQUIRED at create time (TrueFalse votes via trueOutcomes/falseOutcomes). In the ai_quiz scene nothing is scored: set custom question codes and pass report.aiReport.instructions referencing them as {{code}} in this same call. For a scored_quiz with dimensions, define report.dimensionAnalysis.dimensions with codes and formulas over question codes in this same call; a question may override its score for one dimension via choices[i].dimensionScores (TrueFalse: trueDimensionScores/falseDimensionScores). The returned structuredContent.fields carries each question code — read those first if you need to reference them: a scored_quiz totals its question scores by default, and only needs report.formula (e.g. {{q_a}} * 2 + {{q_b}}) for a custom total; dimensions go in report.dimensionAnalysis via update_form / set_dimension_analysis. Creates the primary language only; add other languages with create_form_translation. Limit: a quiz holds at most 50 questions on every plan (page breaks, statements and carousels do not count). An ai_quiz holds at most 20. Not idempotent: if the call times out it may still have succeeded, so retrying blindly can create a duplicate — check first, then retry only if it is really missing.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"title": "<title>",
"scene": "<scene>"
},
"name": "create_form"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scene | Yes | knowledge_quiz = graded exam (correctAnswer + score); scored_quiz = option scoring + report formula; outcome_quiz = typing quiz (votes decide which outcome type wins); ai_quiz = no scoring, an AI writes each report from report.aiReport (may include Attachment uploads). Immutable after creation. | |
| theme | No | Optional visual theme matching the quiz topic/mood. Default light. Pick the one that best fits the quiz: light (clean neutral bright; default — formal/general quizzes); corporate (professional blue+gray; B2B, career, business assessments); dark (modern sleek dark; tech, night, cool personality quizzes); cupcake (soft pink cute rounded; fun, food, kids, lighthearted); pastel (gentle pastel artsy; lifestyle, aesthetics, soft mood); valentine (pink romantic hearts; love, relationships, holidays); synthwave (neon purple/pink retro; gaming, trends, bold personality); luxury (dark + gold premium; finance, luxury brands, high-end); forest (deep green nature; environment, health, outdoors); coffee (warm brown cozy; food & drink, cafe, lifestyle); autumn (warm orange/brown seasonal; autumn, cozy, harvest); halloween (purple+orange spooky; Halloween, horror, festive fun); night (deep calm blue; astronomy, mindfulness, calm tech); cyberpunk (high-contrast neon yellow; tech, esports, gaming). | light |
| title | Yes | Form title (1-200 characters). Plain text: no HTML or Markdown. | |
| report | No | Report configuration. knowledge_quiz / scored_quiz: overallAnalysis fields are flat at the top level and dimensionAnalysis is nested (strongly recommended for the scored_quiz scene, rejected in the knowledge_quiz scene, which has no dimensions). outcome: only the outcomes key (required at create time) and sectionOrder are allowed. ai_quiz: only aiReport and sectionOrder are allowed. | |
| language | No | Default en_US | en_US |
| openGraph | No | Social share card (Open Graph) settings: the title / description / image shown when the answer link is shared to social media or chat apps. In update_form each sub-key is merged independently (only the keys you pass change; pass an empty string to clear one). SEO keywords are generated automatically and cannot be set here. | |
| questions | No | Optional. A list of questions/page breaks to create at once, written into form.fields in order. Question types: SingleCheck/MultiCheck/TrueFalse; FillBlank (free text — scored in quiz via correctAnswer, an unscored data-collection field in scored_quiz); DropDown (single or multiple via `multiple`, use it instead of SingleCheck/MultiCheck when there are more than 20 choices); Cascade (hierarchical choices via children, scored_quiz / ai_quiz); Ordering (quiz only, correctAnswer = all choices in the correct order); DateField/TimeField as unscored data-collection fields (scored_quiz / ai_quiz); NumberField (quiz: optional numeric correctAnswer + score; scored_quiz: the submitted number feeds report formulas); Rate (scored_quiz / ai_quiz; in scored_quiz the 1..steps rating value is the question score unless per-star scores are set in the web app); Attachment (ai_quiz only: a file upload with `kind` image / audio / video / document that the AI reads). Insert a page break with { type: "Breaker" }, which the AI can interleave between questions to paginate. Display blocks collect no answer: { type: "Statement", content } is a rich-text passage (intro / section lead-in / disclaimer) and { type: "Swiper", items } an image carousel. At most 100 items. | |
| systemText | No | Optional. Answer-page system text overrides as a key→text map; empty values are dropped and fall back to the language default. | |
| description | No | Optional form description. Allows description-scope rich text (including <img src>). Write HTML, never Markdown: <strong>bold</strong> not **bold**, <ul><li> not "- item", <h2> not "## heading". This field also accepts an inline image: put an <img src="..."> in it, where src is a direct image URL that renders in <img src> (a page URL that merely contains an image does not work). Use finalize_image_upload to host an image yourself, or a direct URL the user supplied. Never invent an image URL — omit the image instead of risking a broken one. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The new form id | |
| url | No | Admin edit URL | |
| scene | No | knowledge_quiz / scored_quiz / outcome_quiz / ai_quiz | |
| theme | No | Answer-page theme name | |
| title | No | Form title | |
| fields | No | Every question code — read these before writing a formula or dimensions | |
| language | No | Primary language of the form | |
| outcomes | No | Outcome types (outcome_quiz scene only) | |
| shareUrl | No | Public share / answer link | |
| hasReport | No | Whether a report configuration was passed | |
| publicToken | No | Token behind the public answer link | |
| questionCount | No | How many questions / page breaks were created |