Document Upload → Notes
The Document Upload feature ingests a supported document, extracts its text client-side, and uses AI to generate a set of candidate sticky notes.
User flow
- Click Upload in the bottom toolbar to open the Upload modal.
- Drag and drop a file or use the file picker.
- The client extracts text locally (no raw file is sent to the server).
- A loading state shows while text is extracted and the AI generates notes.
- A preview grid of suggested notes appears — each with a title, content preview, colour, and type tag.
- Select or deselect individual notes, then click Import to board.
Accessing upload from within a note
The Upload tab in the note overlay also provides a document upload zone. Notes generated this way merge their content into the current note instead of creating new board-level notes.
Supported formats and plan gating
| Format | Free | Pro |
|---|---|---|
| TXT | ✓ | ✓ |
| Markdown (.md) | ✓ | ✓ |
| — | ✓ | |
| DOCX / DOC | — | ✓ |
Free plan users attempting to upload a PDF or DOCX will see an upgrade prompt.
Text extraction (client-side)
| Format | Library used |
|---|---|
| pdfjs-dist (web worker) | |
| DOCX / DOC | mammoth |
| TXT / MD | Native file.text() |
The extractor returns { text, truncated, charCount }. Extraction happens entirely in the browser.
Truncation
If the extracted text exceeds the character limit, it is truncated and the UI shows a warning:
"Document was truncated. Only the first portion was used for AI generation. Consider uploading a shorter section."
How to avoid truncation:
- Split large documents into focused sections (e.g. requirements only, decisions only).
- Use a focused instruction prompt to get better output from a partial document.
AI generation
After extraction, the text is sent to POST /api/canvas/document-to-notes. The AI returns 1–15 suggested notes as a Zod-validated JSON array:
{
"notes": [
{
"title": "Decision — Prefer edge-side auth",
"content": "**Rationale:** Reduces latency for session checks...",
"suggestedColor": "purple",
"suggestedType": "Decision"
}
]
}Tips for better results
- Focus the prompt — add a brief instruction in the prompt bar before uploading: "Extract only decisions and action items."
- Upload focused sections — a requirements section produces better notes than a full 50-page spec.
- Review before importing — deselect any notes that are too generic or off-topic.
See also
- AI Overview — How the AI processes documents
- Plans and Limits — Upload quotas