# Fred AI chat Source: https://docs.formswrite.com/ai-tools/fred-ai-chat Edit, improve, and transform your forms through conversation with Fred AI Fred AI isn't just a quiz generator — it's an AI assistant that can **edit your existing forms** through natural language. Open the chat panel on any preview page and tell Fred what to change. ## How to access Fred AI chat 1. Upload a document or generate a quiz from the dashboard 2. On the **preview page**, click the **Fred AI** chat icon in the toolbar 3. A chat panel opens on the right side of your screen 4. Type what you want or click a suggested action ## What Fred can do Fred AI works directly on the form you're previewing. Here are the main things you can ask: ### Add and modify questions Ask Fred to add new questions based on your form's content: * "Add a multiple choice question about the main topic" * "Add 3 true/false questions about chapter 2" * "Change question 5 to a short answer question" ### Reorder and organize Restructure your form without dragging items around: * "Reorder questions by difficulty (easiest first)" * "Move the true/false questions to the end" * "Group questions by topic" ### Bulk transformations Apply changes across all questions at once: * "Convert all short answer questions to multiple choice" * "Add answer keys to all questions" * "Make all questions worth 2 points" ### Translation Translate your entire form to another language: * "Translate the form to Spanish" * "Translate just the questions to French, keep the instructions in English" ### Proofreading Catch errors before you publish: * "Proof check the form for grammar and spelling errors" * "Check that all answer keys are correct" * "Review the questions for clarity" ## Tips for better results Be specific about what you want. "Add a hard question about photosynthesis" works better than "add a question." * **Reference question numbers** — "Change question 3 to multiple choice" is faster than describing which question you mean * **Chain requests** — Fred remembers the conversation, so you can say "now do the same for questions 4 through 8" * **Ask for opinions** — "Are there any questions that are too easy?" or "Which questions could be improved?" * **Use web search** — Toggle the web search option to let Fred look up facts when generating new questions ## How it works Fred AI has access to your form's content and can make changes through tool calls. When Fred modifies your form: 1. You see the change described in the chat 2. The preview page automatically refreshes to show the updated form 3. You can undo by asking Fred ("undo that last change") or editing manually Changes are applied to your form preview — nothing is exported until you choose to convert. # Lesson plan generator Source: https://docs.formswrite.com/ai-tools/lesson-plan-generator Create standards-aligned lesson plans for any subject and grade level The lesson plan generator creates comprehensive, standards-aligned lesson plans that you can customize and export. ## How to generate a lesson plan 1. Go to **Dashboard** → **Tools** → **Lesson Plan** 2. Fill in the following: * **Grade level** — Pre-K through College * **Topic** — The subject or learning topic * **Standard** — Educational standard to align with (e.g., CCSS, state standards) * **Learning objective** — What students should learn * **Language** — Output language 3. Click **Generate** 4. Review and edit the generated plan 5. Export as PDF, Google Doc, or copy to clipboard ## What's included in a generated lesson plan Each lesson plan contains: * **Learning objectives** — Clear, measurable goals aligned with your selected standards * **Materials and resources** — Everything needed for the lesson * **Lesson procedures** — Step-by-step teaching instructions with time allocations * **Assessment strategies** — How to evaluate student understanding * **Differentiation strategies** — Adaptations for diverse learners * **Extension activities** — Additional work for students who finish early * **Standards alignment** — Mapped to Common Core, state standards, Ontario curriculum, Florida standards, or custom frameworks * **Bloom's taxonomy levels** — Cognitive level of each activity * **Success criteria** — Clear indicators of student mastery ## Supported standards frameworks | Framework | Description | | ---------------------- | ---------------------------------------- | | **Common Core (CCSS)** | National US standards for ELA and Math | | **State standards** | State-specific learning standards | | **Ontario curriculum** | Canadian Ontario curriculum expectations | | **Florida standards** | Florida-specific B.E.S.T. standards | | **Custom** | Enter your own standard or objective | ## Lesson plan formats The AI can generate plans following various instructional models: * **5E Model** — Engage, Explore, Explain, Elaborate, Evaluate * **Direct Instruction** — Teacher-led structured approach * **Project-based** — Hands-on, student-driven learning * **Flipped Classroom** — Pre-work at home, practice in class * **Inquiry-based** — Student-led question and investigation ## Export options * **PDF** — Print-ready formatted document * **Google Docs** — Editable in Google Workspace * **Copy to clipboard** — Paste into any document or email # AI tools overview Source: https://docs.formswrite.com/ai-tools/overview Formswrite's AI-powered tools for generating quizzes, lesson plans, worksheets, and rubrics Formswrite provides a suite of AI-powered tools designed for educators. Each tool uses AI to generate high-quality educational content that you can customize and export. Edit, improve, and transform your forms through conversation — add questions, translate, proofread, and more. Generate quizzes from any topic or document with configurable difficulty and question types. Create standards-aligned lesson plans for any subject and grade level. Generate printable worksheets with diverse activity types. Create structured grading rubrics for any assignment type. ## Fred AI — your AI teaching assistant All AI tools are powered by **Fred AI**, Formswrite's built-in AI assistant. You can access Fred AI in two ways: 1. **Individual tool pages** — Use the dedicated tool interface in your dashboard (under **Tools** in the sidebar) 2. **Fred AI Chat** — Have a conversation with Fred AI to generate any type of content. Access it from the sidebar under **Fred AI** ### Chat interface The Fred AI chat interface supports: * **Multi-turn conversations** — refine your content through back-and-forth dialogue * **File attachments** — upload a document and ask Fred to generate a quiz from it * **Topic-based generation** — just describe what you need and Fred will create it * **Multiple output types** — generate quizzes, lesson plans, worksheets, or rubrics from a single conversation ## Common settings across all tools Every AI tool shares these configuration options: | Setting | Options | Description | | ----------------- | --------------------- | -------------------------------------------------------------- | | **Grade level** | Pre-K through College | Adjusts complexity and vocabulary to match student level | | **Language** | 12+ languages | Generate content in English, Spanish, French, German, and more | | **Topic/Subject** | Free text | The subject matter for content generation | ## How AI generation works 1. You provide a topic, document, or set of requirements 2. Formswrite sends your input to the AI model for processing 3. The AI generates structured content (questions, plans, activities) 4. Content is validated for quality and completeness 5. You review, edit, and customize the output 6. Export to your preferred platform or format All AI-generated content is editable. You can modify any part of the output before exporting. # Quiz generator Source: https://docs.formswrite.com/ai-tools/quiz-generator Generate AI-powered quizzes from any topic or document The quiz generator creates assessments from any topic or uploaded document. It supports multiple question types, difficulty levels, and can export to 30+ platforms. ## How to generate a quiz ### From a topic 1. Go to **Dashboard** → **Fred AI** (or **Tools** → **Quiz Generator**) 2. Enter your topic (e.g., "World War II causes and effects") 3. Configure your preferences: * **Quiz type**: Assessment, Practice Quiz, or Review Quiz * **Number of questions**: 1 to 20 * **Difficulty**: Easy, Medium, or Hard * **Question types**: Multiple Choice, True/False, or Short Answer 4. Optionally set: * **Time limit** (0 for no limit, up to 180 minutes) * **Focus areas** — specific subtopics to emphasize * **Exclude topics** — areas to avoid * **Custom instructions** — any special requirements * **Include hints** — toggle on/off 5. Click **Generate** 6. Review and edit the generated questions 7. Export to your preferred platform ### From a document 1. Go to **Dashboard** 2. Upload a document or select one from Google Drive 3. Formswrite analyzes the document and extracts questions automatically 4. Review the extracted questions on the preview page 5. Edit questions as needed (change type, modify options, update answers) 6. Choose your destination platform and convert ## Quiz types | Type | Description | Best for | | -------------- | ------------------------------------ | ------------------------- | | **Assessment** | Formal graded quiz with answer key | Exams, graded assignments | | **Practice** | Self-study quiz with hints available | Homework, study aids | | **Review** | Quick review of key concepts | Warm-ups, exit tickets | ## Configuration options ### Question types | Type | Description | | ------------------- | --------------------------------- | | **Multiple Choice** | 4 options with one correct answer | | **True/False** | Two options: True and False | | **Short Answer** | Open text response | ### Difficulty levels | Level | Description | | ---------- | ---------------------------------------- | | **Easy** | Basic recall and comprehension questions | | **Medium** | Application and analysis questions | | **Hard** | Evaluation and synthesis questions | ## After generation Once your quiz is generated, you can: * **Edit any question** — change text, options, or correct answers * **Add new questions** — manually add questions to the generated set * **Remove questions** — delete any that don't fit * **Reorder questions** — drag and drop to rearrange * **Save to question bank** — store questions for future reuse * **Export** — send to Google Forms, Kahoot, Canvas, or any supported platform Questions are automatically saved to your **Question Bank** after conversion, so you can reuse them later. # Rubric generator Source: https://docs.formswrite.com/ai-tools/rubric-generator Create structured, exportable grading rubrics for any assignment type The rubric generator creates standardized grading rubrics that ensure fair and consistent assessment. ## How to generate a rubric 1. Go to **Dashboard** → **Tools** → **Rubric Generator** 2. Fill in the following: * **Grade level** — Pre-K through College * **Standard/Objective** — The learning standard or objective being assessed * **Assignment type** — Essay, project, presentation, lab report, etc. * **Point scale** — 4-point, 5-point, or custom * **Language** — Output language * **Standards set** — CCSS, TEKS, Ontario, Florida, or custom 3. Optionally add custom requirements 4. Click **Generate** 5. Review and edit the rubric 6. Export to your preferred format ## Rubric types | Type | Description | Best for | | ----------------- | --------------------------------------------------------- | --------------------------------------- | | **Analytic** | Separate scores for each criterion/trait | Detailed feedback on specific skills | | **Holistic** | Single overall quality score | Quick assessment of overall performance | | **Single-point** | Describes proficiency level only, with space for feedback | Formative assessment and conferences | | **Checklist** | Yes/No for each criterion | Simple task completion verification | | **Task-specific** | Tailored to a specific assignment | Unique or complex assignments | ## What's included Each generated rubric contains: * **Clear performance levels** (e.g., Exceeds, Meets, Approaching, Below) * **Specific criteria** for each level * **Detailed descriptors** explaining what each level looks like * **Standards alignment** mapped to your selected framework * **Grade-appropriate terminology** * **Measurable indicators** for objective grading * **Table-formatted layout** for easy reading ## Export options | Format | Description | | -------------------- | ---------------------------------------------------------------- | | **Google Sheets** | Editable spreadsheet format — great for recording student scores | | **PDF** | Print-ready formatted document | | **Google Docs** | Editable in Google Workspace | | **Google Classroom** | Compatible format for Classroom rubrics | Export to Google Sheets if you want to use the rubric as a live grading tool — you can enter scores directly in the spreadsheet. # Worksheet generator Source: https://docs.formswrite.com/ai-tools/worksheet-generator Generate printable worksheets with various activity types for any subject The worksheet generator creates educational worksheets with diverse activity types, customized for your grade level and topic. ## How to generate a worksheet 1. Go to **Dashboard** → **Tools** → **Worksheet** 2. Fill in the following: * **Grade level** — Pre-K through College * **Topic** — The subject or learning topic * **Language** — Output language 3. Click **Generate** 4. Review and edit the worksheet 5. Export as PDF or Google Doc ## Activity types Generated worksheets can include a variety of activities: | Activity | Description | | ------------------------- | -------------------------------------- | | **Fill in the blanks** | Complete sentences with missing words | | **Matching exercises** | Connect related items in two columns | | **Word problems** | Apply concepts to real-world scenarios | | **Reading comprehension** | Read a passage and answer questions | | **Vocabulary practice** | Define, use, or identify key terms | | **Compare and contrast** | Identify similarities and differences | | **Label diagrams** | Identify parts of an image or diagram | | **Practice problems** | Solve mathematical or logical problems | | **Writing prompts** | Short essay or paragraph writing tasks | ## What's included Each generated worksheet contains: * **Clear instructions** for students * **Grade-appropriate content** matching the selected level * **Varied question types** to engage different learning styles * **Answer key** for easy grading * **Professional formatting** ready for printing ## Export options | Format | Description | | ------------------- | --------------------------------------------------- | | **PDF** | Print-optimized layout with professional formatting | | **Google Docs** | Editable in Google Workspace | | **Custom branding** | Add your school logo and header | Worksheets are formatted for standard paper sizes and print cleanly without extra formatting needed. # Convert document Source: https://docs.formswrite.com/api/convert POST /api/v1/convert Convert a document to any supported quiz or form format Convert a Google Drive file into a quiz or form on any of the 25 supported platforms. The REST API accepts **files stored in Google Drive** — Google Docs, Sheets, Drive-hosted PDFs, Word documents, images, and Slides presentations. Pick the right `documentType` for your file (see below). To convert files uploaded directly from your computer, use the Formswrite web app. ## Request ### Headers | Header | Value | Required | | --------------- | ----------------------- | -------- | | `Authorization` | `Bearer YOUR_API_TOKEN` | Yes | | `Content-Type` | `application/json` | Yes | ### Body parameters | Parameter | Type | Required | Description | | -------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------- | | `documentId` | string | Yes | Google Doc ID or full Google Docs URL | | `format` | string | Yes | Target format (see [supported formats](#supported-formats)) | | `documentName` | string | No | Name for the output file (defaults to `"Untitled Document"`) | | `documentType` | string | No | Source file type. Defaults to `"google_doc"`. See [supported document types](#supported-document-types). | | `async` | boolean | No | Set to `true` for async processing (returns immediately with a job ID) | ### Document ID You can pass either a raw Google Drive file ID or a full URL. The accepted URL shapes include `docs.google.com/document/d/...`, `docs.google.com/spreadsheets/d/...`, `docs.google.com/presentation/d/...`, and `drive.google.com/file/d/...`: ```json theme={null} // Raw ID (works for any Google Drive file) { "documentId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms" } // Full Google Docs URL { "documentId": "https://docs.google.com/document/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms/edit" } // Full Google Drive PDF URL (pair with documentType: "google_drive_pdf") { "documentId": "https://drive.google.com/file/d/1AbCdEfGhIjKlMnOpQrStUvWxYz/view" } ``` The document must be shared with Formswrite (or set to "Anyone with the link can view") for the conversion to work. ## Supported document types Set `documentType` to match the file in Google Drive you're pointing at: | `documentType` value | Source file in Google Drive | | --------------------------- | --------------------------------------- | | `google_doc` (default) | Google Docs document | | `google_sheet` | Google Sheets spreadsheet | | `google_drive_pdf` | PDF file in Google Drive | | `google_drive_word` | Microsoft Word document in Google Drive | | `google_drive_picture` | Image in Google Drive (PNG, JPG, etc.) | | `google_drive_presentation` | Google Slides presentation | For each type, `documentId` is the Google Drive file ID (the part after `/d/` in the file's share URL). The REST API only reads from Google Drive. `documentType` values like `uploaded_pdf`, `uploaded_word`, etc. that appear elsewhere in the Formswrite system are not accepted here — they belong to the web-app upload flow. ## Supported formats ### Live forms | Format value | Platform | Description | | ----------------- | ---------------- | -------------------------------------------- | | `google_form` | Google Forms | Creates a Google Form in your Google account | | `formswrite_form` | Formswrite Forms | Creates a hosted form on Formswrite | `google_form` requires that you have previously connected your Google account via the Formswrite web app. The form will be created in your Google Drive. ### Learning Management Systems (LMS) | Format value | Platform | File type | | ------------- | ----------------- | ------------------------ | | `canvas` | Canvas LMS | `.zip` (QTI package) | | `moodle` | Moodle | `.xml` (Moodle XML) | | `blackboard` | Blackboard | `.txt` | | `brightspace` | Brightspace (D2L) | `.zip` | | `schoology` | Schoology | `.zip` (QTI package) | | `sakai` | Sakai | `.zip` (QTI 2.1 package) | ### Quiz and game platforms | Format value | Platform | File type | | ----------------- | ------------------------------------ | --------- | | `kahoot` | Kahoot! | `.csv` | | `quizizz` | Quizizz | `.csv` | | `blooket` | Blooket | `.csv` | | `gimkit` | Gimkit | `.csv` | | `socrative` | Socrative | `.xlsx` | | `wooclap` | Wooclap | `.csv` | | `quizalize` | Quizalize | `.csv` | | `classmarker` | ClassMarker | `.csv` | | `pear_assessment` | Pear Assessment (formerly Pear Deck) | `.csv` | ### Standard formats | Format value | Description | File type | | ------------ | ------------------------------- | --------- | | `qti_21` | QTI 2.1 (IMS standard) | `.zip` | | `qti_22` | QTI 2.2 (IMS standard) | `.zip` | | `gift` | GIFT format (Moodle-compatible) | `.txt` | | `aiken` | Aiken format (simple text) | `.txt` | | `cloze` | Cloze / Embedded Answers format | `.txt` | | `word` | Microsoft Word | `.docx` | ### Other platforms | Format value | Platform | File type | | ------------ | --------------------- | -------------------- | | `learndash` | LearnDash (WordPress) | `.txt` (GIFT format) | | `h5p` | H5P | `.h5p` (zip archive) | ## Synchronous mode (default) By default, the API waits for the document to be analyzed and converted before returning the result. This can take up to 5 minutes depending on document size. ### Request ```bash theme={null} curl -X POST https://api.formswrite.com/api/v1/convert \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "documentId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", "format": "moodle", "documentName": "Chemistry Quiz" }' ``` ### Success response (file formats) For all LMS, quiz/game, standard, and other file formats, the response is the same shape: ```json theme={null} { "success": true, "format": "moodle", "exportId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "downloadUrl": "https://api.formswrite.com/api/forms/exports/a1b2c3d4-e5f6-7890-abcd-ef1234567890", "fileName": "Chemistry Quiz-moodle.xml", "expiresAt": "2026-06-13T08:40:14.020Z" } ``` `downloadUrl` is publicly accessible — no auth header is required to download the file. The URL stops working after `expiresAt` (30 days from creation). Re-run convert if you need a fresh link. ### Success response (Google Forms) `google_form` returns two URLs. `directFormUrl` is the Google-hosted form your recipients fill in. `formUrl` is the Formswrite dashboard view of the same form (for editing inside Formswrite). ```json theme={null} { "success": true, "format": "google_form", "formId": "1AbCdEf2GhIjKlMnOpQrStUvWxYz", "directFormUrl": "https://docs.google.com/forms/d/e/1FAIpQLSe.../viewform", "formUrl": "https://formswrite.com/dashboard/forms/abc123", "timedExam": null } ``` ### Success response (Formswrite Forms) `formswrite_form` creates a hosted form on Formswrite. It is created as a draft — visitors can't submit until you publish it from the dashboard or via the [MCP server](/mcp/overview). ```json theme={null} { "success": true, "format": "formswrite_form", "formId": 9814, "formPublicId": "n8aikW7h8i4Q", "publicId": "n8aikW7h8i4Q", "formUrl": "https://formswrite.com/forms/n8aikW7h8i4Q", "questionCount": 3, "encrypted": false, "timedExam": null } ``` `formId` is an integer (Formswrite database primary key); `formPublicId` and `publicId` are the same string and are what appears in the public-facing URL. ### Timeout response (408) If the analysis takes longer than 5 minutes, you will receive a `408` response with a job ID you can use to poll for status: ```json theme={null} { "success": false, "status": "processing", "jobId": "123", "message": "Analysis still in progress. Poll for status.", "pollUrl": "/api/v1/convert/status/123" } ``` ## Asynchronous mode Set `"async": true` to return immediately with a job ID. Use the [poll status endpoint](/api/status) to check when the conversion is complete. ### Request ```bash theme={null} curl -X POST https://api.formswrite.com/api/v1/convert \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "documentId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", "format": "canvas", "documentName": "Biology Exam", "async": true }' ``` ### Response (202 Accepted) ```json theme={null} { "success": true, "status": "processing", "jobId": "456", "message": "Document analysis queued. Poll for status.", "pollUrl": "/api/v1/convert/status/456" } ``` Then poll `GET /api/v1/convert/status/456` until the job is complete. See [Poll status](/api/status) for details. ## Error responses | Status | Description | | ------ | ---------------------------------------------------------------- | | `400` | Missing or invalid `documentId` or `format` | | `401` | Invalid or missing API token | | `402` | Subscription expired or credit limit reached | | `408` | Analysis timed out (sync mode only — use the returned `pollUrl`) | | `500` | Internal server error | ### Example: invalid format ```json theme={null} { "success": false, "message": "Invalid format. Supported formats: google_form, formswrite_form, canvas, moodle, blackboard, brightspace, schoology, sakai, kahoot, quizizz, blooket, gimkit, socrative, wooclap, quizalize, classmarker, pear_assessment, qti_21, qti_22, gift, aiken, cloze, word, learndash, h5p" } ``` ### Example: subscription required ```json theme={null} { "success": false, "message": "Your subscription has expired. Please upgrade to continue using the API." } ``` # API overview Source: https://docs.formswrite.com/api/overview Integrate Formswrite into your applications with the REST API The Formswrite API lets you convert Google Docs into quizzes and export them to 25 supported platforms programmatically. Use it to build custom workflows with Zapier, Make, or your own applications. ## Base URL ``` https://api.formswrite.com ``` ## Authentication All API requests require a JWT Bearer token. Generate your token from the Formswrite dashboard: 1. Go to **Settings** 2. Click **Generate Auth Token** 3. Copy the token and include it in the `Authorization` header ```bash theme={null} Authorization: Bearer YOUR_API_TOKEN ``` Keep your API token secret. Do not share it publicly or commit it to version control. ## Available endpoints | Method | Endpoint | Description | | ------ | ------------------------------- | -------------------------------------- | | `POST` | `/api/v1/convert` | Convert a document to a quiz format | | `GET` | `/api/v1/convert/status/:jobId` | Poll the status of an async conversion | ## Rate limits API requests are subject to your subscription plan limits. Each conversion counts as one credit. ## Next steps Convert a document to any supported format. Check the status of an async conversion job. # Poll status Source: https://docs.formswrite.com/api/status GET /api/v1/convert/status/:jobId Check the status of an async conversion job Poll the status of a conversion job that was started with `"async": true` or that timed out during synchronous processing. ## Request ### Headers | Header | Value | Required | | --------------- | ----------------------- | -------- | | `Authorization` | `Bearer YOUR_API_TOKEN` | Yes | ### Path parameters | Parameter | Type | Required | Description | | --------- | ------ | -------- | ------------------------------------------------------------- | | `jobId` | string | Yes | The job ID returned from the [convert endpoint](/api/convert) | ### Example request ```bash theme={null} curl https://api.formswrite.com/api/v1/convert/status/456 \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` ## Response The response includes the current job state, progress information, and the result when the job completes. | Field | Type | Description | | ------------- | ------- | ---------------------------------------------------------------- | | `success` | boolean | Whether the API call succeeded | | `jobId` | string | The job ID | | `state` | string | Current job state: `waiting`, `active`, `completed`, or `failed` | | `progress` | number | Progress percentage (0–100) | | `currentStep` | string | Description of the current processing step | | `result` | object | Conversion result (only present when `state` is `completed`) | | `error` | string | Error message (only present when `state` is `failed`) | ## Job states | State | Description | | ----------- | ---------------------------------------------------- | | `waiting` | Job is queued and waiting to be processed | | `active` | Job is currently being processed | | `completed` | Job finished successfully — check the `result` field | | `failed` | Job failed — check the `error` field | ## Response examples ### Processing ```json theme={null} { "success": true, "jobId": "456", "state": "active", "progress": 45, "currentStep": "Extracting questions" } ``` ### Completed ```json theme={null} { "success": true, "jobId": "456", "state": "completed", "progress": 100, "currentStep": "", "result": { "success": true, "documentId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", "documentName": "Biology Exam", "isQuiz": true, "mergedContent": { "title": "Biology Exam", "questions": [...] } } } ``` **Async mode currently runs analysis only, not the format conversion.** The `result` from the status endpoint contains the extracted questions (`mergedContent`) but **not** the final converted file or URL. To get the file, call the [convert endpoint](/api/convert) again **without** `async: true` — that single call analyzes and converts in one step. For now, prefer **synchronous mode** unless you specifically need the analyzed-questions payload separately from the conversion step. ### Failed ```json theme={null} { "success": true, "jobId": "456", "state": "failed", "progress": 0, "currentStep": "", "error": "Document could not be accessed. Please check sharing permissions." } ``` ### Not found ```json theme={null} { "success": false, "message": "Job not found" } ``` ## Polling strategy We recommend polling every **3–5 seconds**. Most documents are analyzed within 30–60 seconds. ```javascript theme={null} async function waitForConversion(jobId, apiToken) { const maxAttempts = 60; for (let i = 0; i < maxAttempts; i++) { const response = await fetch( `https://api.formswrite.com/api/v1/convert/status/${jobId}`, { headers: { Authorization: `Bearer ${apiToken}` } } ); const data = await response.json(); if (data.state === 'completed') { return data.result; } if (data.state === 'failed') { throw new Error(data.error); } // Wait 3 seconds before next poll await new Promise(resolve => setTimeout(resolve, 3000)); } throw new Error('Polling timed out'); } ``` # Getting started Source: https://docs.formswrite.com/getting-started Create your first form with Formswrite in under 2 minutes ## Step 1: Create your account Go to [formswrite.com](https://formswrite.com) and click **Sign Up**. You can create an account using: * **Google OAuth** (recommended) — one click, automatically connects your Google Drive * **Email and password** — you'll verify your email before accessing the dashboard To convert documents and create Google Forms, Formswrite needs access to your Google account. You'll be asked to grant the following permissions: * **Google Forms** — so Formswrite can create forms in your account * **Google Drive** — so Formswrite can read your documents and save created forms If you sign up with Google, these permissions are granted automatically. ## Step 2: Complete onboarding After signing up, you'll go through a quick 3-step onboarding: 1. **Select your role** — Teacher/Educator, Student, or Other 2. **Choose your goals** — Select which platforms you want to export to (Google Forms, Kahoot, Canvas, etc.) and which AI tools you're interested in 3. **Organization info** (optional) — Add your school or organization name You can skip onboarding and come back to it later from your account settings. ## Step 3: Convert your first document From the dashboard, you have two ways to get started: 1. Click **Select from Google Drive** 2. Choose a document (Google Doc, PDF, Word, or spreadsheet) 3. Formswrite analyzes the document and extracts questions using AI 4. Review and edit the extracted questions 5. Choose your destination platform and click **Convert** 1. Click **Select File from Computer** 2. Upload a PDF, Word document, text file, Excel spreadsheet, or image (max 10 MB) 3. Formswrite analyzes the file and extracts questions using AI 4. Review and edit the extracted questions 5. Choose your destination platform and click **Convert** **PDF tip**: PDF conversion uses OCR and may not always preserve formatting perfectly. For best results, use **Google Docs** or **Word documents** (.docx) as your source — these formats give Formswrite the most accurate text extraction. ## Step 4: Choose your destination After reviewing your questions, select where you want to export: * **Google Forms** — creates a form directly in your Google Drive * **Formswrite Form** — creates a native form with built-in analytics and timer support * **LMS platforms** — Canvas, Moodle, Blackboard, Brightspace, Schoology, and more * **Quiz platforms** — Kahoot, Quizizz, Blooket, Gimkit, Socrative, and more * **Standard formats** — QTI, GIFT, Aiken for universal LMS compatibility See the full list on the [supported platforms](/platforms) page. ## Next steps Generate quizzes, lesson plans, and worksheets from any topic. Learn which question types are supported and how they work. Get the most out of Formswrite with these tips. See all 30+ export destinations. # Dashboard Source: https://docs.formswrite.com/guides/dashboard Navigate the Formswrite dashboard to manage forms, conversions, and AI tools The dashboard is your home base in Formswrite. From here you can convert documents, manage forms, access AI tools, and track your conversion history. ## Dashboard overview When you log in, the dashboard shows: * **Your forms** — a combined list of Google Forms and Formswrite Forms you've created * **Quick actions** — buttons to select a document from Google Drive or upload from your computer * **Sidebar navigation** — access to all features including tools, question bank, conversions, and settings ## Creating a form From the dashboard, you have two primary actions: ### Select from Google Drive Click **Select from Google Drive** to open the Google Picker. You can browse and select: * Google Docs * Google Sheets * PDFs * Word documents * Images ### Upload from computer Click **Select File from Computer** to upload a file from your machine. Supported formats: * PDF, DOC, DOCX, TXT * XLSX, XLS (Excel) * JPG, JPEG, PNG, GIF, WEBP, BMP, TIFF (images) * Maximum file size: 10 MB ## Managing forms Your forms list shows both Google Forms and Formswrite Forms with the following information: | Column | Description | | ------------- | ------------------------------------------------------- | | **Title** | Form name with a type badge (Google Form or Formswrite) | | **Created** | Creation date | | **Responses** | Number of responses (Formswrite Forms only) | | **Actions** | Menu with available actions | ### Google Form actions * **Open Form** — view the form in Google Forms * **Edit** — open in Google Forms editor * **Delete** — remove from your dashboard ### Formswrite Form actions * **Copy Link** — copy the form URL to share with respondents * **View Responses** — see response analytics * **Open/Close Form** — toggle whether the form accepts responses * **Delete** — remove the form ## Sidebar navigation | Section | Description | | ----------------- | ----------------------------------------------------- | | **Forms** | Your forms list (dashboard home) | | **Templates** | Pre-made form templates across categories | | **Conversions** | History of all document conversions | | **Question Bank** | Your saved question repository | | **Tools** | AI tools — lesson plans, worksheets, rubrics | | **Fred AI** | AI chat interface for generating any content | | **Billing** | Subscription and credits management | | **Account** | Profile, Google connection, API keys, team management | ## Conversion history The **Conversions** page shows all your document-to-form conversions with: * Document name and type * Conversion status: Pending, Processing, Completed, or Failed * Timestamp * Click any conversion to view details or retry if failed ## Templates Browse pre-made templates organized by category: * **Education** — quizzes, peer evaluations, school trip forms * **HR** — performance reviews, leave requests, expense reports * **Events** — registration forms, feedback surveys * **Business** — customer surveys, order forms * **Health** — patient intake, symptom trackers * And more (Marketing, Product, Office, Personal) Each template can be copied and customized for your needs. # LTI integration Source: https://docs.formswrite.com/guides/lti-integration Connect Formswrite to your LMS using LTI 1.3 for seamless single sign-on and tool launching Formswrite supports **LTI 1.3** (Learning Tools Interoperability), the industry standard for integrating external tools with Learning Management Systems. This allows teachers and students to launch Formswrite directly from their LMS without a separate login. LTI integration is available on **institutional plans**. Contact [dvir@formswrite.com](mailto:dvir@formswrite.com) to get started. ## What is LTI? LTI (Learning Tools Interoperability) is a standard developed by [IMS Global](https://www.imsglobal.org/) that allows LMS platforms to securely launch external tools. With LTI 1.3, authentication uses **OpenID Connect (OIDC)** and **JWT tokens** — no passwords are shared between systems. ### Benefits * **Single sign-on** — teachers and students launch Formswrite from the LMS with one click * **No separate accounts** — users are automatically provisioned via LTI * **Secure** — uses industry-standard OIDC authentication with public/private key verification * **Context-aware** — Formswrite knows which course and user is launching the tool ## Supported LMS platforms Formswrite works with any LMS that supports LTI 1.3, including: Version 3.7+ with LTI 1.3 support. Instructure Canvas with LTI 1.3 Developer Keys. Blackboard Learn with LTI 1.3 tool registration. Desire2Learn Brightspace LTI Advantage. Schoology with LTI 1.3 app configuration. Sakai CLE with External Tools support. ## Setup overview Setting up LTI involves two sides: 1. **Register Formswrite as a tool in your LMS** — provide Formswrite's URLs to your LMS 2. **Register your LMS as a platform in Formswrite** — provide your LMS's URLs to Formswrite The process takes about 5 minutes. Detailed instructions for each LMS are below. ## Formswrite tool URLs When configuring your LMS, you'll need to enter these Formswrite URLs: | Setting | URL | | ---------------------------- | --------------------------------------------- | | **Tool URL / Launch URL** | `https://api.formswrite.com/api/lti/callback` | | **Login Initiation URL** | `https://api.formswrite.com/api/lti/login` | | **Public Keyset URL (JWKS)** | `https://api.formswrite.com/api/lti/jwks` | | **Redirection URI** | `https://api.formswrite.com/api/lti/callback` | These URLs are also available in your Formswrite dashboard under **LTI Platforms** in the sidebar. *** ## Moodle setup 1. In Moodle, go to **Site Administration → Plugins → Activity modules → External tool → Manage preconfigured tools** 2. Click **Add preconfigured tool** 3. Fill in the following: | Field | Value | | ------------------ | --------------------------------------------- | | Tool name | `Formswrite` | | Tool URL | `https://api.formswrite.com/api/lti/callback` | | LTI version | **LTI 1.3** | | Public keyset | `https://api.formswrite.com/api/lti/jwks` | | Initiate login URL | `https://api.formswrite.com/api/lti/login` | | Redirection URI(s) | `https://api.formswrite.com/api/lti/callback` | 4. Under **Services**, set **IMS LTI Names and Role Provisioning** to *Use this service to retrieve members' information as per privacy settings* 5. Under **Privacy**, set: * Share launcher's name: **Always** * Share launcher's email: **Always** 6. Under **Miscellaneous**, set: * Default launch container: **New window** * Tool configuration usage: **Show in activity chooser and as a preconfigured tool** 7. Click **Save changes** After saving, Moodle generates a **Client ID**. Click the edit icon on the Formswrite tool to find it. You'll need these values from your Moodle instance (replace `yourmoodle.com` with your domain): | Setting | Value | | ---------------- | ------------------------------------------------------- | | Issuer | `https://yourmoodle.com` | | Client ID | *(generated by Moodle — shown on the tool config page)* | | Auth Login URL | `https://yourmoodle.com/mod/lti/auth.php` | | Access Token URL | `https://yourmoodle.com/mod/lti/token.php` | | JWKS URL | `https://yourmoodle.com/mod/lti/certs.php` | For **Moodle Cloud** (moodlecloud.com), the URLs follow the same pattern: `https://yoursite.moodlecloud.com/mod/lti/auth.php`, etc. 1. Log in to Formswrite and go to **LTI Platforms** in the sidebar 2. Click **Add Platform** 3. Enter the platform details from step 2 4. Click **Save** 1. Go to any course in Moodle and turn on **Edit mode** 2. Click the **+** button in a course section 3. Select **Formswrite** from the activity chooser 4. Click **Add** — the activity is created 5. Students and teachers can now click the activity to launch Formswrite *** ## Canvas setup 1. In Canvas, go to **Admin → Developer Keys** 2. Click **+ Developer Key → + LTI Key** 3. Set the method to **Manual Entry** and fill in: | Field | Value | | ----------------------------- | --------------------------------------------- | | Key Name | `Formswrite` | | Redirect URIs | `https://api.formswrite.com/api/lti/callback` | | Target Link URI | `https://api.formswrite.com/api/lti/callback` | | OpenID Connect Initiation URL | `https://api.formswrite.com/api/lti/login` | | JWK Method | **Public JWK URL** | | Public JWK URL | `https://api.formswrite.com/api/lti/jwks` | 4. Click **Save** and note the **Client ID** (a long number shown in the Details column) 5. Set the key state to **ON** 1. Go to **Course Settings → Apps → + App** 2. Configuration type: **By Client ID** 3. Enter the Client ID from step 1 4. Click **Submit** and **Install** 1. In Formswrite, go to **LTI Platforms → Add Platform** 2. Enter these values: | Setting | Value | | ---------------- | ----------------------------------------------------------- | | Issuer | `https://canvas.instructure.com` (or your Canvas domain) | | Client ID | *(from step 1)* | | Auth Login URL | `https://canvas.instructure.com/api/lti/authorize_redirect` | | Access Token URL | `https://canvas.instructure.com/login/oauth2/token` | | JWKS URL | `https://canvas.instructure.com/api/lti/security/jwks` | For **self-hosted Canvas**, replace `canvas.instructure.com` with your Canvas domain. 3. Click **Save** *** ## Blackboard setup 1. In Blackboard, go to **System Admin → Integrations → LTI Tool Providers** 2. Click **Register LTI 1.3/Advantage Tool** 3. Enter the **Client ID** (you'll get this after registering the tool) Or use the manual registration: | Field | Value | | --------------------------- | --------------------------------------------- | | Tool Provider URL | `https://api.formswrite.com/api/lti/callback` | | Tool Provider OIDC Auth URL | `https://api.formswrite.com/api/lti/login` | | Tool Provider JWKS URL | `https://api.formswrite.com/api/lti/jwks` | 4. Click **Submit** 5. Copy the **Application ID**, **Deployment ID**, and other platform details 1. In Formswrite, go to **LTI Platforms → Add Platform** 2. Enter the Blackboard platform details (issuer, client ID, auth URLs) 3. Include the **Deployment ID** if provided 4. Click **Save** *** ## General LTI 1.3 setup For any LMS not listed above, the process follows the same pattern: 1. In your LMS, register a new **LTI 1.3 external tool** using the [Formswrite tool URLs](#formswrite-tool-urls) listed above 2. Your LMS will generate a **Client ID** and provide its own platform URLs (issuer, auth endpoint, token endpoint, JWKS URL) 3. In Formswrite, go to **LTI Platforms → Add Platform** and enter those platform URLs 4. Add the tool to a course and test the launch ## How the launch flow works When a user clicks the Formswrite activity in their LMS: ``` LMS Formswrite Backend Formswrite App | | | |-- POST /api/lti/login ---------->| | | (iss, login_hint, client_id) | | | |-- verify platform registration | | |-- generate state + nonce | |<-- redirect to LMS auth --------| | | | | |-- POST /api/lti/callback ------->| | | (signed JWT id_token) | | | |-- verify JWT via JWKS | | |-- verify state + nonce | | |-- find or create user account | | |-- set session cookie | | |-- redirect ----------------------->| | | | | | Formswrite Dashboard ``` ## Managing platforms Site administrators can manage LTI platform registrations from the **LTI Platforms** page in the Formswrite dashboard sidebar. | Action | Description | | ------------------------- | -------------------------------------------------- | | **Add Platform** | Register a new LMS connection | | **Edit** | Update platform URLs or credentials | | **Activate / Deactivate** | Temporarily disable a platform without deleting it | | **Delete** | Permanently remove a platform registration | The LTI Platforms page is only visible to Formswrite site administrators. If you don't see it in the sidebar, contact your Formswrite admin. ## Troubleshooting The **Issuer** URL in Formswrite must exactly match what the LMS sends. Check for: * Trailing slashes (`https://moodle.com` vs `https://moodle.com/`) * Protocol (`https://` vs `http://`) * Subdomain (`www.moodle.com` vs `moodle.com`) This is usually a **cookie issue**. LTI launches happen in iframes or popups, and some browsers block third-party cookies. Solutions: * Set the LMS tool to open in a **new window** (not embedded) * Ensure your browser allows third-party cookies for `formswrite.com` The session cookie may not have been set. Check that: * The **Redirection URI** in your LMS matches `https://api.formswrite.com/api/lti/callback` * Your LMS is sending the user's **email** in the LTI payload (check privacy settings) The LTI Platforms admin page is restricted to Formswrite site administrators. Contact your admin to have your email added to the authorized list. Ensure the **Client ID** registered in Formswrite exactly matches the one generated by your LMS. Copy-paste it to avoid typos. ## Security Formswrite's LTI implementation follows best practices: * **JWT verification** — all launch tokens are verified against the platform's public JWKS endpoint * **State and nonce** — stored in Redis with a 10-minute TTL to prevent replay attacks * **HTTPS only** — all LTI endpoints require HTTPS * **No shared secrets** — LTI 1.3 uses public/private key pairs, not shared secrets (unlike LTI 1.1) # Question bank Source: https://docs.formswrite.com/guides/question-bank Save, organize, and reuse questions across forms and assessments The question bank is a personal repository of questions that you can organize, edit, and reuse across multiple forms and assessments. ## Accessing the question bank Go to **Dashboard** → **Question Bank** from the sidebar. ## How questions are saved Questions are automatically saved to your bank whenever you convert a document to a form. You can also manually add questions. ## Searching and filtering The question bank supports: | Filter | Description | | ----------------- | --------------------------------------------------------------- | | **Search** | Search by question text | | **Tags** | Filter by custom tags you've assigned | | **Question type** | Filter by Multiple Choice, Checkbox, Short Answer, or Paragraph | | **Sort** | Sort by creation date, modification date, or usage count | ## Managing questions ### Edit a question Click the edit icon on any question to: * Change the question text * Modify the question type * Update answer options * Set or change correct answers * Add or remove images * Manage tags ### Tag questions Tags help you organize questions by subject, topic, difficulty, or any category you choose: * Add tags during editing * Filter your bank by tags * Create consistent naming conventions (e.g., "math-algebra", "science-biology", "grade-10") ### Delete questions Remove questions you no longer need. This action is permanent. ## Creating forms from saved questions 1. Select multiple questions by clicking the checkbox on each card 2. Click **Create Form** 3. Enter a form name 4. Choose whether it's a graded quiz 5. Select your destination platform 6. Click **Convert** This lets you mix and match questions from different documents and topics into a single assessment. Use tags like "midterm-review" or "chapter-5" to quickly find and select related questions when building new forms. ## Question types in the bank The question bank stores questions as: * **Multiple Choice** * **Checkbox** (multiple answers) * **Short Answer** * **Paragraph** Other question types (linear scale, date, time, etc.) are normalized to these four types for storage, but are restored to their original type during export when the target platform supports it. # Timed exams Source: https://docs.formswrite.com/guides/timed-exams Set up timed exams with countdown timers and auto-submission Formswrite supports timed exams for both Google Forms and Formswrite Forms. A countdown timer is shown to respondents, and the form auto-submits when time expires. ## Setting up a timed exam 1. Convert your document to a form as usual 2. In the **Conversion Modal**, enable **Timed Exam** 3. Set the **duration in minutes** (default: 30 minutes) 4. Complete the conversion The timer starts when the respondent opens the form. ## How it works * A visible countdown timer appears at the top of the form * As time runs low, the timer provides a visual warning * When time expires, the form automatically submits with whatever answers have been entered * Late responses are not accepted after the timer expires ## Additional exam settings (Formswrite Forms) When creating a Formswrite Form (not Google Forms), you get additional exam security options: | Setting | Description | | ---------------------- | ----------------------------------------------------- | | **Collect email** | Require respondents to enter their email address | | **Email verification** | Send a verification email before allowing form access | | **Limit one response** | Each email address can only submit once | | **Timed exam** | Enable countdown timer with auto-submit | Combining **email verification** with **one response per email** prevents students from submitting multiple times or sharing forms. ## Best practices for timed exams * Give students enough time — as a rule of thumb, allow 1-2 minutes per multiple choice question * Test the timer yourself before sharing with students * Communicate the time limit to students before they start * Consider adding a few extra minutes as buffer for technical issues # Welcome to Formswrite Source: https://docs.formswrite.com/index Convert documents to interactive forms and generate AI-powered educational content in seconds ## What is Formswrite? Formswrite is an AI-powered platform that converts your documents into interactive quizzes, forms, and assessments. Upload a Google Doc, PDF, or Word file and instantly get a Google Form, Kahoot quiz, Moodle exam, or export to 30+ other platforms. Beyond document conversion, Formswrite provides AI tools to generate lesson plans, worksheets, rubrics, and quizzes from any topic — helping educators save hours of prep time. Create your first form in under 2 minutes. See all 30+ platforms you can export to. Learn about the question types Formswrite supports. Generate quizzes, lesson plans, worksheets, and rubrics with AI. ## Key features Upload PDFs, Google Docs, Word files, images, or spreadsheets and convert them to interactive forms. Export to Google Forms, Kahoot, Quizizz, Canvas, Moodle, Blackboard, and many more. Generate quizzes from any topic or document using AI, with configurable difficulty and question types. Create standards-aligned lesson plans for any subject and grade level. Generate printable worksheets with activities like fill-in-the-blank, matching, and more. Save and reuse questions across multiple forms and assessments. Launch Formswrite directly from Moodle, Canvas, or any LTI 1.3 compatible LMS. # Example prompts Source: https://docs.formswrite.com/mcp/examples Copy-paste prompts that work once Formswrite is connected to your AI app Once Formswrite is set up in your AI app, you can ask it to build, edit, and export quizzes in plain English. Here are starter prompts. ## Build a quiz > Make a 10-question multiple-choice quiz about the American Civil War for high school students. Mark the correct answers and publish it on Formswrite — give me the link. The AI will write the questions, create the form, mark the answers, publish it, and reply with a shareable URL. > Create a science quiz with 5 questions about photosynthesis and 5 questions about cell division. Keep the language friendly for 7th graders. ## Convert and export > Take my latest Formswrite quiz and turn it into a Kahoot file I can download. > Export quiz `n8aikW7h8i4Q` as a Google Form. > Take "World Capitals" and export it as Moodle, Quizizz, and Google Forms. Give me all three links. Google Forms exports need your Google account connected in **Settings → Integrations**. Other formats work right away. ## Edit an existing quiz > Open my "Photosynthesis" quiz and add three harder questions about the Calvin cycle. > Find the question about Paris in my "World Capitals" quiz and change it to ask about Berlin instead. > Rename "Test Quiz 1" to "Final Exam — Unit 3" and add a friendly intro sentence. ## Browse your library > What are the last 10 quizzes I made? Sort by date. > Find all my quizzes that mention "World War" and tell me which one is shortest. > Show me the questions in my "Photosynthesis" quiz. ## Make a quiz live > Publish my "Photosynthesis" quiz so my students can submit. Forms start as drafts — visitors see a "not online yet" message until you ask the AI to publish them. ## Tips That's by design. Editing or publishing is a real change to your account, so well-behaved AI apps confirm before doing it. Approve and it proceeds. The AI handles both. If you have two quizzes with similar names, paste the quiz ID (the part after `formswrite.com/forms/`) to be unambiguous. If publishing fails with a payment error, you've hit your monthly limit. Upgrade to remove it — drafts are unlimited. # Use Formswrite in Claude, ChatGPT, and Cursor Source: https://docs.formswrite.com/mcp/overview Build, edit, and export Formswrite quizzes from inside any AI chat Connect Formswrite to Claude, Cursor, or ChatGPT and let the AI build quizzes for you. Once it's set up, you can ask things like: * *"Make a 10-question quiz about photosynthesis for 7th graders."* * *"Take my last quiz and turn it into a Kahoot game."* * *"Add five harder questions about ancient Rome to my history quiz, then publish it."* * *"What was in that quiz I made last Tuesday?"* The AI does the work — picks the questions, fills in the right answers, picks the format — and the form appears in your Formswrite dashboard a few seconds later, ready to share. ## What it's good for Describe a topic and reading level, get a finished quiz. One quiz, exported to Kahoot, Quizizz, Moodle, Google Forms — anything Formswrite supports. Ask the AI to rewrite questions, fix typos, reorder, or expand a quiz. Ask "what quizzes did I make last week?" and get a summary. ## Next steps Three steps. Works with Claude Desktop, Cursor, ChatGPT. Copy these prompts to try once you're connected. # Set up Formswrite in your AI app Source: https://docs.formswrite.com/mcp/setup Three steps to connect Claude Desktop, Cursor, or ChatGPT to your Formswrite account You'll need a Formswrite auth token and the config snippet for your AI app. Total time: about 3 minutes. ## 1. Get your auth token 1. Sign in to [Formswrite](https://formswrite.com). 2. Open **Settings**. 3. Click **Generate Auth Token** and copy it. The token gives full access to your Formswrite account. Don't share it. ## 2. Add Formswrite to your AI app Run this one command in your terminal (replace `YOUR_TOKEN`): ```bash theme={null} claude mcp add --transport http formswrite "https://mcp.formswrite.com/mcp?token=YOUR_TOKEN" ``` That's it — no config file to edit, no restart needed. Start a new Claude Code session and the `formswrite` server will be available. Add `-s project` to share the server with your team via a committed `.mcp.json`, or `-s user` to enable it across every project on your machine. Open the Claude Desktop config file: * **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` * **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` Paste this in (replace `YOUR_TOKEN`): ```json theme={null} { "mcpServers": { "formswrite": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.formswrite.com/mcp?token=YOUR_TOKEN" ] } } } ``` Quit and reopen Claude Desktop. Open **Settings → MCP → Add server** and enter: * **Name**: `formswrite` * **URL**: `https://mcp.formswrite.com/mcp?token=YOUR_TOKEN` (Replace `YOUR_TOKEN` with your auth token.) Open **Settings → Connectors → Create a connector** and enter: * **Name**: `Formswrite` * **MCP server URL**: `https://mcp.formswrite.com/mcp?token=YOUR_TOKEN` Enable the connector in any chat by clicking its chip. ## 3. Try it In a new chat, type: > List my five most recent quizzes. The AI will fetch them and reply with a summary. You're connected. ## Next steps Ready-to-use prompts: build a quiz, edit one, export to any platform. # Supported platforms Source: https://docs.formswrite.com/platforms Export your forms and quizzes to 30+ platforms including Google Forms, Kahoot, Canvas, Moodle, and more Formswrite supports exporting to over 30 platforms. Below is the complete list, organized by category. ## Input formats Formswrite accepts documents from multiple sources and formats. ### From Google Drive | Format | Description | | ----------------- | ---------------------------------------------------------- | | Google Docs | Best format — preserves formatting and structure perfectly | | Google Sheets | Great for bulk question import from spreadsheet data | | PDF (in Drive) | Extracted via OCR — works well for typed documents | | Word (in Drive) | .doc and .docx files stored in your Drive | | Images (in Drive) | JPG, PNG, GIF, WEBP, BMP, TIFF — extracted via OCR | ### Upload from computer | Format | Extensions | Notes | | -------------- | --------------------------------------------------------- | ------------------------------------------ | | PDF | `.pdf` | OCR-based extraction. Typed PDFs work best | | Microsoft Word | `.doc`, `.docx` | Excellent format preservation | | Text files | `.txt` | Plain text — simple but reliable | | Excel | `.xlsx`, `.xls` | Great for bulk question import | | Images | `.jpg`, `.jpeg`, `.png`, `.gif`, `.webp`, `.bmp`, `.tiff` | OCR-based question extraction | Maximum file size for uploads is **10 MB**. **Format recommendations**: * **Best**: Google Docs or Word (.docx) — most accurate text extraction * **Good**: Google Sheets or Excel — ideal for bulk question lists * **Acceptable**: PDF — works well for typed documents, but scanned/handwritten PDFs may have lower accuracy * **Acceptable**: Images — works for typed content, but quality depends on image resolution ## Output platforms ### Live forms Creates a form directly in your Google Drive with full grading support. Native form with built-in timer, email verification, and analytics. ### Learning management systems (LMS) Export as QTI package for Instructure Canvas. Export as Moodle XML, GIFT, Aiken, or Cloze format. Compatible QTI package for Blackboard Learn. Export for Desire2Learn Brightspace. Compatible format for Schoology LMS. Export for Sakai CLE/OAE. Export for NEO LMS platform. Export for Learn365 (Viva Learning). Export for itslearning platform. Export for Singapore Learning Space. Export for LearnDash LMS. ### Quiz and game platforms Export for Kahoot game-based quizzes. Export for Quizizz interactive quizzes. Export for Blooket game-based learning. Export for Gimkit quiz games. Export for Socrative classroom quizzes. Export for Wooclap interactive presentations. Export for Quizalize differentiated learning. Export for ClassMarker online testing. Export for Pear Assessment (formerly Pear Deck). Export for Edulastic assessment platform. Export for Coursera course assessments. ### Standard formats IMS Question and Test Interoperability — universal LMS standard. Moodle's General Import Format for Tests. Simple text-based format for Moodle multiple choice. Fill-in-the-blank format for Moodle. ### Other formats Interactive HTML5 content. Export questions as a Word document. ## Integrations ### LTI 1.3 (LMS integration) Formswrite supports **LTI 1.3** for direct integration with Learning Management Systems. Teachers and students can launch Formswrite directly from their LMS (Moodle, Canvas, Blackboard, etc.) with single sign-on — no separate login required. See the [LTI integration guide](/guides/lti-integration) for setup instructions. ### Automation platforms Formswrite integrates with automation tools for building custom workflows: * **Zapier** — Connect Formswrite to 5,000+ apps * **Make.com** (formerly Integromat) — Build advanced automation workflows ### API access Formswrite provides a REST API for programmatic access. Generate an API key from your **Account Settings** to integrate Formswrite into your own applications. # Question types Source: https://docs.formswrite.com/question-types All the question types Formswrite supports for forms, quizzes, and assessments Formswrite supports a variety of question types for creating comprehensive assessments. Here's what's available and how each type works. ## Fully supported question types These types work across all export platforms and have full feature support. ### Multiple choice Single-answer selection with radio buttons. This is the most commonly used question type. * Supports answer key with correct answer * Supports point values for grading * Supports feedback for right and wrong answers * Supports images in questions * Minimum 2 options required Multiple choice is the default question type and works on every export platform. ### Checkbox (multiple answers) Multi-answer selection allowing respondents to select more than one correct answer. * Supports multiple correct answers * Supports point values for grading * Supports feedback for right and wrong answers * Supports images in questions ### Short answer Brief text response for single-line answers. * Supports answer key for auto-grading * Supports text validation (max length, pattern matching) * Supports point values * Supports images in questions Short answer feedback is not supported when exporting to Google Forms, but the answer key still works for grading. ### Paragraph (long answer) Multi-line text response for extended answers like essays or explanations. * Supports point values * Supports images in questions * Typically requires manual grading (no auto-grade answer key) ### Linear scale Numeric rating scale for surveys and opinion questions (e.g., 1-5 or 1-10). * Customizable scale range (min and max values) * Customizable labels for min and max (e.g., "Strongly Disagree" to "Strongly Agree") * Default range: 1 to 5 * Supports point values * Supports images in questions ### Date Date input for collecting date responses. * Standard YYYY-MM-DD format * Supports point values * Supports images in questions ### Time Time input for collecting time responses. * Standard time format * Supports point values * Supports images in questions ## AI-generated question types When Formswrite's AI generates quizzes (from documents or topics), it can produce: | Type | Description | | --------------------- | ------------------------------------------------------------ | | **Multiple choice** | Standard MCQ with 4 options | | **True/False** | A variant of multiple choice with "True" and "False" options | | **Short answer** | Open-ended brief response | | **Fill-in-the-blank** | Sentence completion (converted to short answer) | | **Matching** | Pair items together | When using the AI quiz generator, you can select which question types to include. The default is **Multiple Choice**. ## Platform-specific behavior Some question types behave differently depending on the export platform: | Question type | Google Forms | Formswrite Form | QTI (Canvas) | Moodle | | --------------- | ---------------- | ----------------- | ------------- | ------------- | | Multiple choice | Full support | Full support | Full support | Full support | | Checkbox | Full support | Full support | Full support | Full support | | Short answer | No feedback | Full support | Full support | Full support | | Paragraph | No feedback | Full support | Essay type | Essay type | | Linear scale | Full support | Converted to MCQ | Not available | Not available | | Date | Full support | Converted to text | Essay type | Short answer | | Time | Full support | Converted to text | Not available | Short answer | | Dropdown | Converted to MCQ | Converted to MCQ | Full support | Full support | **Grid questions** (multiple choice grid and checkbox grid) are not currently supported by the Google Forms API. If your document contains grid-type questions, they will be skipped during conversion. Consider restructuring grid questions into individual multiple choice questions. ## Grading and feedback ### Grading support by question type | Feature | Multiple choice | Checkbox | Short answer | Paragraph | Linear scale | | --------------------- | :-------------: | :------: | :----------: | :-------: | :----------: | | Point values | Yes | Yes | Yes | Yes | Yes | | Auto-grading | Yes | Yes | Yes | No | No | | Right answer feedback | Yes | Yes | No | No | No | | Wrong answer feedback | Yes | Yes | No | No | No | | General feedback | Yes | Yes | Yes | Yes | Yes | ### Images in questions All question types support embedding images. Images must be: * Valid HTTPS URLs * Common image formats: JPG, PNG, GIF, WEBP, SVG, or BMP * Hosted on accessible URLs (not behind authentication) ## Question editing After Formswrite extracts questions from your document, you can edit them before exporting: * **Change question text** — fix typos or clarify wording * **Modify question type** — switch between multiple choice, checkbox, short answer, paragraph, linear scale, date, or time * **Edit answer options** — add, remove, or reorder choices * **Set correct answers** — mark which options are correct for auto-grading * **Add images** — attach images to any question * **Add tags** — organize questions for your question bank # Tips and best practices Source: https://docs.formswrite.com/tips Get the most out of Formswrite with these tips for document formatting, question quality, and platform selection ## Document formatting tips ### Use the right source format The format of your source document significantly affects conversion quality. Here's our recommendation: These formats preserve text structure, headings, and formatting. Formswrite can accurately identify questions, answer choices, and correct answers. Ideal for bulk question import. One question per row with columns for question text, options, and correct answer. **About PDFs**: While Formswrite supports PDF conversion, PDFs are processed using OCR (optical character recognition). This means: * **Typed/digital PDFs** work well but may lose some formatting * **Scanned documents** depend heavily on image quality * **Handwritten content** may not be recognized accurately * **Complex layouts** (multi-column, text boxes) may cause extraction errors **Recommendation**: If you have the original Word or Google Doc, use that instead of a PDF export. ### Structure your document clearly For the best AI extraction results: 1. **Number your questions** — "1.", "2.", "3." or "Q1.", "Q2.", "Q3." 2. **Label answer choices** — "A)", "B)", "C)", "D)" or "a.", "b.", "c.", "d." 3. **Mark correct answers** — Bold, underline, or use an asterisk (\*) next to the correct option 4. **Use headings** for sections — helps the AI understand document structure 5. **One question per block** — leave a blank line between questions ### Example of well-formatted content ```text theme={null} 1. What is the capital of France? A) London B) Berlin *C) Paris D) Madrid 2. Which planet is closest to the Sun? A) Venus *B) Mercury C) Earth D) Mars ``` The asterisk (\*) before an option tells Formswrite it's the correct answer. ## AI quiz generation tips ### Be specific with topics When generating quizzes from a topic (not a document), provide specific details: * **Good**: "Photosynthesis process in plants, focusing on light-dependent reactions" * **Less effective**: "Biology" ### Use focus areas and exclusions The quiz generator lets you specify: * **Focus areas** — specific subtopics to emphasize * **Exclude topics** — areas you don't want questions about * **Custom instructions** — any special requirements ### Choose the right difficulty | Difficulty | Best for | | ---------- | ---------------------------------------------------------- | | **Easy** | Review quizzes, introductory assessments, younger students | | **Medium** | Standard assessments, homework checks, mid-term reviews | | **Hard** | Advanced assessments, exam prep, challenge quizzes | ## Platform selection tips ### For live classroom quizzes Use **Kahoot**, **Quizizz**, **Blooket**, or **Gimkit** — these platforms support real-time game-based learning where students compete and engage. ### For formal assessments Use **Google Forms** (with quiz mode), **Canvas**, **Moodle**, or **Blackboard** — these support grading, answer keys, and detailed analytics. ### For self-paced practice Use **Formswrite Form** or **Google Forms** — students can complete at their own pace with immediate feedback. ### For universal compatibility Export as **QTI** (Question and Test Interoperability) — this standard format works with most LMS platforms. ## Timed exams Both Google Forms and Formswrite Forms support timed exams: 1. During conversion, enable **Timed Exam** 2. Set the duration in minutes 3. Students see a countdown timer while completing the form 4. The form auto-submits when time runs out Formswrite Forms also support **email verification** and **one response per email** — useful for preventing duplicate submissions in assessments. ## Question bank tips Save time by building a reusable question bank: 1. After converting a document, questions are automatically saved to your bank 2. **Tag your questions** by subject, topic, or difficulty for easy filtering 3. **Mix and match** — select questions from different sources to create new forms 4. **Edit once, use everywhere** — updates to bank questions reflect in future forms ## Bulk conversion If you have multiple documents to convert: 1. Use the **bulk conversion** feature to process several files at once 2. Track progress from the **Conversions History** page in your dashboard 3. Each conversion runs independently — one failure won't affect others ## Language support Formswrite supports 12+ languages for AI-generated content: * English, Spanish, French, German, and many more * The interface supports RTL (right-to-left) languages like Arabic and Hebrew * Select your preferred language from the **Language Selector** in the dashboard