Version history
A doc keeps its own history.- Auto-saved versions. While you edit, the doc saves a version at most every 10 minutes, and only when the text changed. Work keeps the newest 50.
- Saved versions. You can save a version with a name, such as “Before the rewrite”. Work keeps the newest 200.
- Open and restore. Open a version to read it. Restore brings its text back. The text you replaced is saved first, as a version called “Before a restore”, so a restore never loses anything.
- Restore is a normal edit. If a gate holds doc edits, a restore waits for approval like any other edit. If the doc changed after you opened it, the restore is refused with
409and you read the new text first. - Who can see history. History can hold text that was removed on purpose, so it needs Manage authority on top of being able to read the doc. Someone who cannot read the doc gets “not found”.
GET /v1/docs/{id}/versions, GET /v1/docs/{id}/versions/{versionId}, POST /v1/docs/{id}/versions (body { "name": "..." }) and POST /v1/docs/{id}/versions/{versionId}/restore (body { "expectedVersion": 7 }).
Export
Export a doc as Markdown or HTML from the doc’s More menu. On the web you can also choose Print or save as PDF, which uses your browser’s print dialog. The phone app does not make PDF files yet.- An embedded board is written as a table. Only the columns and items you may read are included, up to 12 columns and 200 rows. A line says how many rows were left out.
- HTML export has no scripts. Links that are not web or email links are written as plain text, and images are written as links.
- The API is
GET /v1/docs/{id}/export?format=markdownorformat=html. It returns the file name, the content type and the content.
Import
Import a Markdown or HTML file from Docs, then More, then Import from file. Work creates a new doc and opens it. An HTML file is converted to Markdown. The doc never stores the HTML. A file over 4 MB is refused in the app, and the API refuses content over 1,000,000 characters. The API isPOST /v1/docs/import with format (markdown or html), content, and optionally title and workspaceId.
Checklists and blocks
Write a task as- [ ] item. In a doc, tap the box to tick it. This changes one character of the text and saves it, unless someone else saved the doc in between. Then your tick is not saved and the doc shows the newest text.
The editor has buttons to add a heading, checklist, bullet list, numbered list, table, quote, code block or divider. A table is Markdown text; there is no cell editor.
Agents
Agents use the same features through MCP:boardy_list_doc_versions, boardy_create_doc_version, boardy_restore_doc_version, boardy_export_doc and boardy_import_doc. See Work MCP tools.
Source: worksong-ai/worksong:services/work/docs/doc-history-export.md@9f5aa83, worksong-ai/worksong:services/work/src/Boardy.Api/DocPortability@9f5aa83, worksong-ai/worksong:services/work/src/Boardy.Dashboards/Application/DocVersionActions.cs@9f5aa83, worksong-ai/worksong:services/work/src/Boardy.Api/Program.cs@9f5aa83. Docs version: Worksong 2.0 with Work 1.2.