Skip to main content

Guide

Notion to Markdown: Export Your Workspace and Clean Up the Files

Notion exports Markdown natively: the page menu or Settings gives you a .zip of .md files, with databases as CSV files plus one Markdown file per row. The export is usable but messy. Every file name carries a long ID, callouts arrive as HTML, and database views do not come along. This page covers the export, the cleanup, and the two routes into Obsidian.

Updated 2026-10-27

How to convert

  1. Export from Notion as Markdown & CSV

    For one page: open the page, click the ••• menu at the top right, choose Export, set the format to Markdown & CSV, and turn on Include subpages if you want the pages under it. For everything: Settings, then Workspace, General, Export all workspace content. Workspace exports arrive as an email link that expires after 7 days, and Notion says large workspaces can take hours. Pages you cannot access, like other members' private pages, are not included.

  2. Unzip and look at the structure

    You get one .md file per page and one .csv per full-page database, with a folder of row pages next to it. Every file and folder name ends with a 32-character ID, and links between pages point at those names. Large exports can contain nested zips (Export-...-Part-1.zip); unzip each part into the same folder. On Windows, use 7-Zip if Explorer fails on long paths.

  3. Count before you change anything

    Count the .md files and compare against what you expect: a quick search for pages in Notion, or the row count of your biggest database against the lines in its CSV. If a teamspace is missing, check its export settings in Notion before going further.

  4. Strip the IDs and fix the HTML leftovers

    Rename files and folders to drop the ID suffix (the command is in the section below). Replace the HTML callouts with your chosen Markdown. Convert database row properties from plain lines to frontmatter if your app reads frontmatter. Do the cleanup on a copy; keep the original zip untouched.

  5. Open the folder in Obsidian, or use the Importer

    The cleaned folder is already a valid Obsidian vault: open it with Open folder as vault. If you want databases rebuilt as Obsidian Bases, skip the Markdown files and use the Importer plugin with Notion (API) and an integration token instead. For a .zip import with the Importer, re-export from Notion as HTML with Include everything and Create folders for subpages.

  6. Or zip the folder and import it into Scribelet

    Zip the cleaned folder and use Import from Obsidian (.zip) in Scribelet's Desk Settings. File names become note titles and folder names become tags, which is why stripping the IDs first matters. Images, CSV files and other attachments are not imported; attach the ones that matter to their notes afterwards.

4 examples

What this looks like for different setups

The conversion is the same; what you do with the result depends on where the notes came from.

1.A single meeting-notes page with a callout and toggles

When it fits: Use this when you only need a handful of pages out of Notion. The page export is quick, but callouts come through as HTML and you decide whether to keep or flatten them.

A single meeting-notes page with a callout and togglesExample 1

Pricing review, 2026-10-14

Attendees: Mara, Devon, Kofi Created: October 14, 2026 3:02 PM

<aside> Decision: keep the $12 starter tier for existing customers until March 2027. </aside>

Discussion

Devon showed churn by tier: starter churns at 6.1 percent a month, team at 2.4 percent. Kofi argued the starter price is not the cause; onboarding is.

Open questions (was a toggle)

  • Do we grandfather annual plans too?
  • Who tells support before the pricing page changes?

Action items

  • Devon: churn by signup month, not by tier
  • Mara: draft the grandfathering email

Note after export: the callout above is the HTML Notion wraps callouts in (Notion's help says callouts export as HTML; the exact tag may differ in your export). In Obsidian it renders as plain text; in most Markdown apps it shows the tags. Replace it with a bold line if you want clean Markdown. The toggle heading became an ordinary heading with its content underneath.

2.A reading-list database exported to CSV plus one file per row

When it fits: Use this when the thing you care about is a Notion database. The CSV keeps every row and property; the per-row Markdown files keep the page bodies, with properties as plain lines at the top.

A reading-list database exported to CSV plus one file per rowExample 2

The Pragmatic Programmer

Author: David Thomas, Andrew Hunt Status: Finished Rating: 4 Finished: September 21, 2026 Tags: engineering, career

Notes

  • "Tracer bullets" is the useful idea: build a thin end-to-end path first, then widen it.
  • The broken-windows chapter is the argument for fixing small rot now.
  • Disagree with the chapter on estimating; it assumes more stable requirements than I have seen.

Quotes to keep

  • On estimates: give the range, then say what would narrow it.

Note after export: the row properties above were plain lines, not YAML frontmatter. To make them searchable fields in Obsidian, convert them to a --- block with author:, status: and rating: keys. The board and calendar views of this database do not exist in the export; only the CSV and the default view's rows do.

3.A team wiki with nested pages, cleaned for Scribelet

When it fits: Use this when the workspace export is hundreds of nested pages with ID suffixes on every file and folder. Strip the IDs first, then zip and import, so titles and tags come out readable.

A team wiki with nested pages, cleaned for ScribeletExample 3

Laptop setup

#team-wiki #onboarding

Owner: IT (Priya). Reviewed 2026-09-30.

Before day one

  • Laptop ordered through the hardware form (5 business days)
  • Accounts created: email, chat, code hosting, password manager

Day one

  1. Turn on full-disk encryption before signing in to anything.
  2. Install the password manager and accept the team vault invite.
  3. Clone the onboarding repo and run make setup.

Who to ask

  • Access problems: [[IT requests]]
  • Anything about payroll: [[People team]]

Note after import: the file was Laptop setup 1a2b3c4d5e6f708192a3b4c5d6e7f809.md inside Team wiki 0f3c.../Onboarding 7d2e.../. After stripping IDs and importing the zip, the folders became the tags #team-wiki and #onboarding. The two links were Notion Markdown links to hashed file names; they were rewritten by hand as wikilinks.

4.A project tracker moved to Obsidian with the Importer's API mode

When it fits: Use this when the databases are the point and you are moving to Obsidian. The Markdown export flattens them; the Importer's Notion (API) mode converts databases to Bases and keeps formulas.

A project tracker moved to Obsidian with the Importer's API modeExample 4

Name: Billing migration Status: In progress Owner: Kofi Mensah Due: 2026-12-05 Priority: High Days left: 39

Billing migration

Move invoicing from the legacy system to the new provider before the December billing run.

Milestones

  • Customer records mapped (2026-10-08)
  • Test invoices generated for 40 accounts
  • Parallel run for November invoices
  • Cut over on 2026-12-01, legacy read-only on 2026-12-05

Risks

  • Proration rules differ for 11 legacy annual plans. Finance to confirm by 2026-11-07.

Note after import: this page was a row in the Projects database. The Importer turned the database into a folder with a .base file, and the row properties into frontmatter. "Days left" was a Notion formula and kept working. Only the database's primary view came across.

What survives the export and what does not

Unlike Evernote or OneNote, Notion exports real Markdown files. The export still loses the things that made Notion feel like Notion.

In NotionMarkdown & CSV export
Text, headings, lists, checkboxes, code blocksKept as Markdown
Tables (simple)Kept as Markdown tables
CalloutsExported as HTML, per Notion's help
TogglesReported to arrive as HTML or flattened; the content survives, the collapsing does not
Synced blocksReported to be written out as plain content in every place they appeared; the sync is gone
Full-page databasesCSV plus one .md per row; only one view
Database propertiesPlain lines at the top of each row page
Relations, rollups and formulasTheir displayed text in the CSV, no live link
Links between pagesRelative links to the ID-suffixed file names
Images and filesFolders next to the page, relative links
CommentsNot described for Markdown exports

The two losses people notice first are database views and the live parts of the page. A kanban board becomes a CSV. A synced block becomes two separate copies that will drift apart the first time you edit one. Neither can be rebuilt automatically, so decide early which databases deserve rebuilding in the new app and which can stay as a CSV in an archive folder.

Stripping the ID suffixes

Every exported file is named like Laptop setup 1a2b3c4d5e6f708192a3b4c5d6e7f809.md. Apps that use the file name as the note title (Scribelet and Obsidian both do) will show that hash in every title. On macOS or Linux, this renames files and folders from the inside out and refuses to overwrite when two pages end up with the same name:

cd notion-export
find . -depth -name '* [0-9a-f]*' -exec sh -c 'for p; do b=$(basename "$p" | sed -E "s/ [0-9a-f]{32}//"); mv -n "$p" "$(dirname "$p")/$b"; done' sh {} +

Run it on a copy. Afterwards, search the folder for any name that still contains a 32-character hex string: those are duplicates mv -n skipped, and you rename them by hand. Renaming breaks the Markdown links between pages, because they point at the old names. If links matter more to you than clean titles, keep the names and use the Obsidian Importer instead.

Notion to Obsidian: which route

You want plain files and will tidy them yourself. Export Markdown & CSV, run the rename, convert callouts, and open the folder as a vault. You get readable files, and the internal links need repair.

You want your databases to keep working. Use the Importer plugin's Notion (API) mode. You create an integration in Notion, share the pages and databases with it, and paste the token into the Importer. Databases become Obsidian Bases with their formulas, but only the primary view, and large workspaces take a while because of Notion's API rate limits.

You want a one-shot conversion of a workspace zip. Export as HTML (not Markdown) with Include everything and Create folders for subpages, then pick Notion (.zip) in the Importer. Databases are not preserved on this route.

If you have not settled on Obsidian, read Notion vs Obsidian first. The export is the same either way; only the last step changes.

How to verify nothing was lost

  1. Compare database rows. Open the biggest database in Notion and note its row count. Count the lines in its CSV minus the header. They should match.
  2. Open three pages you know. One with a callout, one with a toggle full of content, one with images. If the toggle content is missing, the export failed on that page.
  3. Search for leftovers. Grep for < to find the HTML (callouts, and toggles in some exports) you still need to convert, and for %20 to find links that still point at old file names.
  4. Keep the original zip. The Notion export is the only complete snapshot once you cancel. Store it with a date in the file name.

Teams moving off Notion often have pages only one person could see. Notion leaves private pages out of the workspace export, so ask each member to export their own private pages before the plan ends.

Cleanup tips

  • Export the whole workspace once, even if you only need part of it

    Links between pages only resolve inside the same export. A full workspace export from Settings is the one archive where every relative link points at a file that exists. Pull single pages later for quick jobs.

  • Turn off subpage folders if you are on Windows

    Notion's own help says paths longer than 260 characters break the Windows zip extractor. Unchecking Create folders for subpages keeps everything in one folder, or extract with 7-Zip, which handles longer paths.

  • Choose HTML instead if the destination is the Obsidian Importer

    Obsidian's documentation tells you to export HTML, not Markdown, for its Notion (.zip) importer, because the Markdown export leaves out data the importer needs. Use Markdown & CSV when you want the files themselves.

  • Keep the CSV files even if you never open them

    A database's CSV is the only place every property of every row lives in one table. Even if you rebuild the database differently, the CSV is your source of truth for statuses, dates and owners.

  • Decide what a callout becomes before you clean

    Callouts export as HTML. Pick one replacement (a bold line, a blockquote, or a > [!note] callout if you are going to Obsidian) and apply it with one find-and-replace across the folder, instead of fixing them one page at a time.

In the app

How to do this in Scribelet

  1. Open Desk Settings, scroll to Import & Export and choose Import from Obsidian (.zip). It takes any .zip of Markdown files, so a cleaned Notion export works the same way as a vault.

  2. Folder names arrive as tags, so a page from Team wiki/Onboarding/ is tagged #team-wiki and #onboarding. Open the Tags view and merge or rename any that came out awkward.

  3. Rewrite the Notion links you still need as [[wikilinks]]. The backlinks panel then shows every page that points at a note, which Notion only showed through its own backlinks list.

  4. Attach the images and PDFs that matter to their notes. Scribelet extracts the text and writes a caption, so a screenshot of a whiteboard from your old wiki becomes searchable.

  5. Use Export as Markdown in the same Desk Settings section whenever you want everything back out as .md files.

Start with the quick start if you are new to Scribelet.

Frequently asked questions

Can Notion export to Markdown?

Yes. From any page, open the ••• menu, choose Export and pick Markdown & CSV. For the whole workspace, use Settings, General, Export all workspace content. Ordinary pages become .md files and full-page databases become a CSV plus one Markdown file per row.

What happens to Notion databases when I export to Markdown?

Each full-page database becomes a CSV file with every row and property, plus a folder holding one Markdown file per row. Notion exports only the current or default view, so board, calendar and timeline layouts are gone, and the properties at the top of each row page are plain text lines rather than structured fields. If you need working databases in Obsidian, use the Importer's Notion (API) mode, which converts them to Bases.

Why do my exported files have random numbers in their names?

Notion appends a 32-character ID to every exported file and folder name, which also keeps two pages with the same title apart. Links between pages use those names too. Strip them with a rename script before importing into apps that use the file name as the title, and check for duplicate titles while you do it.

How do I move from Notion to Obsidian?

There are two routes. Export Markdown & CSV, clean it up, and open the folder as a vault; or install Obsidian's Importer plugin and use Notion (API) with an integration token, which keeps databases. Obsidian's docs recommend the API route or an HTML export over the Markdown export for its importer. For the broader decision, see Notion vs Obsidian.

Are images and attachments included in the Markdown export?

Notion's help says workspace exports include uploaded files. Images are typically saved in folders next to the page that uses them, linked by relative paths, so moving or renaming a folder breaks the links. Check a page with images after you finish renaming.

Can I export Notion to Markdown on mobile?

A single page, yes: tap ••• at the top right, tap Export, choose Markdown & CSV and share the file. The whole-workspace export is only available on desktop or web.

Leave Notion with files you can read in any editor

Export Markdown & CSV, strip the IDs, and import the zip into Scribelet: folders become tags, pages become notes you can link with wikilinks, and Export as Markdown gives it all back whenever you ask. Free to start.

Free plan, no credit card. See pricing

Guide

Evernote to Markdown: Export, Convert and Import Your Notes

Evernote does not export Markdown. It exports .enex, one file per notebook. From there you have three paths: a converter that writes .md files and an attachments folder, the Obsidian Importer, or a direct .enex import into Scribelet. This page shows what each path keeps and how to check nothing was lost.

Guide

OneNote to Markdown: Export Notebooks and Move Them to Obsidian

OneNote has no Markdown export. You get there through Word (export a page, convert it with pandoc), through a Windows exporter that drives OneNote and Word for whole notebooks, or through the Obsidian Importer, which signs in to your Microsoft account. Handwriting is the one thing none of them keep as text. This page shows which route fits your setup and how to check the result.

Guide

Export Apple Notes to Markdown: Built-In Export, Bulk Tools and Obsidian

Since macOS 26 and iOS 26, Apple Notes exports a note as Markdown on its own: File menu on the Mac, Share button on iPhone. That handles a few notes at a time. For a whole library, or on an older macOS, use the free Exporter app or the Obsidian Importer. This page shows which to use, what each keeps, and how to check the result.

Comparison

Notion vs OneNote: Database or Notebook?

Notion is a workspace you assemble from blocks and databases. OneNote is a free binder you write on, with the best stylus support of any mainstream note app. Pick by what your notes are: records you filter and sort, or pages you write and revisit.

Comparison

Notion vs Evernote: Workspace or Archive?

Notion is a workspace you build from pages and databases, strongest for teams, projects and wikis. Evernote is an archive you capture into and search, strongest for clipped pages, scans and PDFs. Pick by whether your notes are records you organize or documents you need to find again.

Article

Notion alternative

From the Scribelet blog

We use cookies for analytics to improve your experience. Learn more