How to migrate from Notion to AppFlowy
Notion's Markdown export is complete at the text level, but relational databases (relations, rollups, formulas) come out as flat CSV — the real work is deciding which relations are worth rebuilding by hand in {to}.
- 1
Before exporting: audit which pages use relational databases
In Notion, check which databases have "Relation" or "Rollup" type columns — those are the ones that will lose their connection on export. Write down by hand which tables relate to each other; the exported CSV doesn't state this explicitly, it just repeats the related page's title as plain text.
- 2
Export the full workspace from Notion
Go to Settings & members → Settings → Export content → "Export all workspace content" (requires a paid plan), choose Markdown & CSV format, and include file attachments. Notion generates a .zip with one folder per top-level page and nested subfolders for sub-pages, plus a .csv for each database.
- 3
Deploy AppFlowy via AppFlowy Cloud with Docker Compose
AppFlowy self-hosts as AppFlowy Cloud, which needs PostgreSQL (see the docker-compose.yml on its page). Before importing anything, start the stack, create your admin account, and confirm the desktop/web client connects correctly by pointing it at your server's URL under Settings → Custom Server.
- 4
Import the Markdown .zip into AppFlowy
With your workspace already open in AppFlowy, use the Markdown import option (space menu → Import) and select the exported .zip. AppFlowy rebuilds the page hierarchy and formatted text, but each database .csv comes in as a new table without the relation columns rebuilt.
- 5
Rebuild the relations and check attachments
Using the list from step 1, manually recreate each relation column between the new databases in AppFlowy and re-link records by title. Also check that images and file attachments were imported — some older Notion exports link attachments by external URL instead of including them in the .zip.
Before cancelling Notion
Before cancelling Notion, compare the number of top-level pages between both spaces and open at least one database with relations to confirm no record is missing — rollups and formulas don't rebuild themselves, you'll have to recreate them if you need them.
Ready to deploy AppFlowy?
Full profile with license, tech stack and ready-to-copy docker-compose.
View AppFlowy's profileThese steps are a general guideline — the exact export menu can vary depending on Notion's plan and version.