← All playbooks
Knowledge migration

Notion → Obsidian

Move a Notion workspace into a local Obsidian vault while preserving page content, attachments, links, database meaning, ownership decisions, and a testable archive of what cannot become plain files.

Typical timeline7–14 business days28–48 hours active work
Statusneeds review
Source testedNotion workspace export documented 2026-07-19
Destination testedObsidian Importer for Notion documented 2026-07-19
Last reviewed2026-07-19
Sources3
Before you migrate

Should you make this move?

Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.

Current platform

Notion

Reasons to stay
  • Polished pages and databases let teams build flexible workspaces without code
  • Flexible documents make it easy to capture and organize team knowledge
Reasons to leave
  • Offline use, export fidelity, and large-workspace governance remain weak points
  • Structure, links, permissions, and rich blocks often degrade during export
New platform

Obsidian

What gets better
  • Local Markdown files, backlinks, and plugins provide durable personal knowledge ownership
  • Flexible documents make it easy to capture and organize team knowledge
What gets worse
  • Real-time collaboration, permissions, and managed team administration are limited
  • Structure, links, permissions, and rich blocks often degrade during export
Best of the move

Obsidian: Local Markdown files, backlinks, and plugins provide durable personal knowledge ownership. This removes a major source-side concern: Offline use, export fidelity, and large-workspace governance remain weak points.

Worst of the move

What you lose: Polished pages and databases let teams build flexible workspaces without code. What you inherit: Real-time collaboration, permissions, and managed team administration are limited.

01At a glance

Know the shape of the move.

Transfer outcome12 features audited
Transfer outcome distributionClean transfer: 1, Partial transfer: 5, Manual rebuild: 0, Not transferred: 6.
Clean1
Partial5
Manual0
Lost6
Mapping route9 of 10 fields have a destination path

This timeline assumes

  • Profile: one workspace with at most 10,000 pages, 20 GB of attachments, 100 databases, and no requirement to reproduce Notion as a multi-user application.
  • You can export every in-scope teamspace and private page, including pages owned by people who may leave.
  • Obsidian will store ordinary files locally; sync, backup, publication, and collaboration are separate choices.
  • The entire workspace is imported together so Obsidian can reconcile internal links.
  • The source remains read-only during verification rather than being deleted immediately.
02Loss matrix

What survives the move.

“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.

ItemOutcomeImpactWhat happensMitigation
Page text and basic formattingcleanhighHeadings, paragraphs, lists, links, and common blocks convert well through the official importer.Test complex pages and retain the original export beside the vault snapshot.
Internal page linkspartialcriticalLinks can be reconciled when all content is imported together; excluded pages and duplicate names can leave broken or ambiguous links.Import the full scope in one run and scan every unresolved link.
Attachments and imagespartialcriticalFiles can import, but expired URLs, nested export archives, duplicate names, and oversized assets can cause gaps.Use the complete export, expand nested zips, compare file manifests, and open a stratified sample.
DatabasespartialcriticalAPI import can create a folder and Obsidian Base, but only the primary view is supported and not every property or relation behaves identically.Inventory every view, property, filter, sort, relation, and rollup; preserve CSV snapshots and rebuild critical views.
Database viewslosthighNotion exports only the current or default view, not every saved view; form views are not exported.Document each view with screenshots and filters, export alternate views deliberately, then recreate required views as Bases or queries.
Relations, rollups, and formulaspartialcriticalLinked data sources are not imported and some formula functions are unsupported; file export preserves less database semantics than API import.Prefer API import for databases, create test cases for computed values, and redesign unsupported relationships explicitly.
Comments, discussions, and mentionslosthighCollaborative discussion context does not become ordinary Markdown notes.Resolve open decisions, copy critical discussion into the page body, and export an audit archive if required.
Permissions, guests, and private sharinglostcriticalFilesystem access and Obsidian Sync sharing do not inherit Notion page permissions.Classify sensitive content before import, split vaults where needed, and define destination access independently.
Page history and restore pointslosthighNotion version history does not become Git or Obsidian history.Keep a dated raw export and establish versioned vault backups before editing.
Callouts and unsupported blockspartialmediumNotion Markdown export can represent callouts as HTML and complex embeds or widgets may degrade.Use the Obsidian-recommended HTML export for file import, then search for raw HTML, embeds, and unsupported markers.
Templates, buttons, forms, and automationslosthighNotion application behavior does not transfer as files.Replace only approved workflows with Obsidian templates, plugins, scripts, or an external system.
Notion AI and live integrationslostmediumAI history, synced databases, live embeds, webhooks, and third-party integrations are not portable workspace content.Inventory integrations, preserve required outputs, and choose explicit replacements.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
Page titleMarkdown filename and headingtransformResolve filesystem-invalid characters, duplicate titles, and path length before import.
Page bodyMarkdown note bodyautomaticInspect unsupported blocks and embedded HTML.
Page URL or IDsource_id frontmattertransformKeep a stable source identifier for reconciliation.
Parent pagefolder path or parent linktransformChoose whether hierarchy is physical folders, links, or both.
Internal mentionObsidian wikilinkautomaticWorks best when all referenced pages are imported together.
Database rowMarkdown file in database folderautomaticAPI import can also create a corresponding .base file.
Database propertyfrontmatter propertytransformValidate dates, people, multi-select values, relations, and nulls.
Database viewObsidian Base viewmanualOnly the primary Notion view is imported; recreate other views.
AttachmentVault attachment file and relative linkautomaticVerify binary count, size, hash, and link target.
Comments and permissionsNo destinationunsupportedArchive or replace them outside the note conversion.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Capture every in-scope page, database, file, relationship reference, and access decision before the workspace freezes.

  1. Inventory teamspaces, private pages, guests, databases, views, integrations, public pages, and content owners.
  2. Export the full workspace and each critical alternate database view; use HTML for the Obsidian file-import route and retain CSV/database evidence.
  3. Wait for the workspace export, which Notion says can take up to 30 hours, then download before its seven-day link expires.
  4. Expand and inventory nested archives without modifying the raw download.
  5. Capture permissions, comments that contain decisions, formulas, relation diagrams, and screenshots of critical views.

Proof to capture: A manifest reconciles workspace page and attachment totals, critical databases and views, owners, raw archive hashes, and every excluded item.

Transformation · Obsidian Importer plus collision report

Path normalization

Create portable filenames without collisions or path-length failures.

  1. Define invalid-character and duplicate-title rules.
  2. Preserve each Notion page ID in frontmatter or a manifest.
  3. Fail on silent overwrites.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

Transformation · CSV and mapping worksheet

Database semantics ledger

Separate portable data from Notion-only behavior.

  1. List every property, type, view, relation, rollup, and formula.
  2. Map it to frontmatter, Base configuration, manual workflow, or archive.
  3. Test computed values on representative rows.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

Transformation · Obsidian link report and filesystem manifest

Link and asset audit

Find unresolved pages, files, embeds, and external dependencies.

  1. Scan Markdown links, wikilinks, HTML, and asset paths.
  2. Compare attachment hashes and sizes.
  3. Classify every unresolved target.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

05Handle with care

The things most likely to hurt.

These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.

Backup

The export omits inaccessible pages

criticalpossible likelihood

Known pages or teamspaces are absent from the manifest.

Consequence
The missing knowledge may be unrecoverable after account closure.
Mitigation
Have owners share or export their private content before the freeze.

Stop if: Any in-scope owner or teamspace is not represented.

Import

Database meaning is flattened

criticallikely likelihood

Rows exist but filters, relations, rollups, or formulas no longer answer the operational question.

Consequence
A visually complete vault produces wrong decisions.
Mitigation
Verify behavior, not only row counts.

Stop if: Any critical database calculation or workflow lacks an approved replacement.

Design

Sensitive pages inherit broad filesystem access

criticalpossible likelihood

Private and shared Notion pages land in the same synced vault.

Consequence
Confidential information is exposed.
Mitigation
Classify and split vaults before importing.

Stop if: Destination access cannot reproduce the approved audience.

Transform

Path limits or duplicate names overwrite files

highpossible likelihood

Importer logs collisions, missing targets, or truncated paths.

Consequence
Pages or attachments disappear silently.
Mitigation
Use stable IDs and a collision report.

Stop if: Any output file lacks a one-to-one source mapping.

Cutover

The local vault has no durable backup

criticalpossible likelihood

The only copy is one laptop or one sync provider.

Consequence
A local failure destroys the migrated knowledge base.
Mitigation
Establish versioned, tested backups before editing.

Stop if: A restore drill cannot rebuild the vault on another machine.

06Precise timeline

Do the work in this order.

Estimate forOne workspace with up to 10,000 pages, 20 GB of assets, and 100 databases
Total elapsed7–14 business days
Active work28–48 hours
BufferAdd 3–7 days for export preparation, rate limits, nested archives, database redesign, or owner follow-up.
01
Days 1–2Scope and classify2 days
02
Days 3–4Export and manifest1–2 days
03
Days 5–6Representative pilot2 days
04
Days 7–9Full import1–3 days
05
Days 10–12Repair and rebuild2–3 days
06
Days 13–14Read-only cutover and restore drill2 days
  1. Days 1–2 · scope

    Scope and classify

    6–10 hours active2 days elapsedOwner responses waiting
    • Inventory content, owners, permissions, databases, views, integrations, and public links.
    • Choose API import or HTML-file import per content class.

    Depends on: Workspace owner and content-owner access

    Stop / go checkpoint

    Freeze the scope?

    Go when: Every in-scope and excluded area has an owner and reason.

    Stop when: Private or regulated content has no destination access design.

  2. Days 3–4 · export

    Export and manifest

    4–7 hours active1–2 days elapsedWorkspace export can take up to 30 hours waiting
    • Create workspace and critical-view exports.
    • Download, hash, expand nested zips, and build page and asset manifests.

    Depends on: Approved scope

    Stop / go checkpoint

    Is the archive complete?

    Go when: Counts and named critical items reconcile.

    Stop when: The export link expires, a teamspace is missing, or an archive is corrupt.

  3. Days 5–6 · pilot

    Representative pilot

    6–9 hours active2 days elapsedAPI rate limiting when used waiting
    • Import a copy containing simple, nested, database-heavy, attachment-heavy, and restricted examples.
    • Approve naming, hierarchy, property, and attachment rules.

    Depends on: Complete raw export, Empty test vault

    Stop / go checkpoint

    Approve conversion rules?

    Go when: Representative content and behavior pass with documented exceptions.

    Stop when: Critical relations, formulas, permissions, or assets have no safe disposition.

  4. Days 7–9 · full-import

    Full import

    6–10 hours active1–3 days elapsedImporter and API processing waiting
    • Freeze Notion editing.
    • Import all in-scope content into a new vault in one run.
    • Save logs and reconcile page, database-row, and asset counts.

    Depends on: Approved pilot, Source freeze

    Stop / go checkpoint

    Start repair?

    Go when: Every source item maps to an output, archive, or approved exclusion.

    Stop when: Silent overwrites, missing archives, or unexplained count gaps appear.

  5. Days 10–12 · repair

    Repair and rebuild

    5–9 hours active2–3 days elapsedOwner review waiting
    • Repair links, paths, HTML, embeds, and attachments.
    • Rebuild critical database views, formulas, templates, and replacement workflows.
    • Apply vault access boundaries.

    Depends on: Reconciled import

    Stop / go checkpoint

    Cut over daily use?

    Go when: Blocking knowledge paths and operational databases work for their owners.

    Stop when: A critical workflow still depends on editable Notion data.

  6. Days 13–14 · cutover

    Read-only cutover and restore drill

    3–5 hours active2 days elapsedBackup replication waiting
    • Make Notion read-only and point users to Obsidian.
    • Restore the vault on a clean machine.
    • Complete the verification report and archive the source export.

    Depends on: Passed repair gate, Destination backup

    Stop / go checkpoint

    Close migration?

    Go when: Restore, access, links, assets, databases, and owner sign-off pass.

    Stop when: The vault cannot be restored or sensitive access is broader than approved.

07The point of change

Cut over with a way back.

Go live

Cutover

Make the verified Obsidian vault the editable source of truth while retaining Notion as a read-only reference.

Recommended window: At the end of a normal workday, followed by a low-change day for owner verification.

  1. Announce the exact Notion edit-freeze timestamp.
  2. Take a final export or API delta and rerun the controlled import into the release vault.
  3. Reconcile and sign the manifest before allowing edits.
  4. Enable the approved sync, backup, and access configuration.
  5. Replace workspace links and operating instructions with vault paths.
  6. Set Notion content read-only and preserve redirects or notices on public pages.

Proof to capture: The release vault restores on a clean machine, approved users reach the correct content, and all blocking verification evidence is attached.

Return to safety

Rollback

Resume controlled editing in Notion without losing changes made after the Obsidian cutover.

Deadline: Within 5 business days and before broad independent editing makes two-way reconciliation impractical.

  1. Freeze Obsidian edits and snapshot the vault.
  2. List files changed since cutover and assign each to a content owner.
  3. Reopen Notion editing only for approved owners.
  4. Apply reviewed destination changes back to Notion manually.
  5. Restore old links and announce the rollback boundary.

Proof to capture: Notion contains all approved post-cutover changes and is again the only editable source while the vault is preserved read-only.

Rollback immediately when
  • Critical pages or assets are missing
  • Sensitive access is broader than approved
  • A critical database produces incorrect results
  • The vault cannot be restored
  • Broken-link rate exceeds the agreed threshold
08Verification report

Prove the migration worked.

Every blocking check must pass. Capture the evidence before cleanup begins.

0%
Interactive report preview0 / 8 checks passed
PassIDCheckMethodExpected resultEvidence
V-01BlockingPage reconciliationMatch the source manifest to vault files by stable page ID or mapping record.Every in-scope page is imported, archived, or explicitly excluded.Page reconciliation CSV.
V-02BlockingBinary integrityCompare attachment count, size, and hashes; open a stratified sample.All critical files match and no unexplained binary is missing.Asset manifest and sample log.
V-03BlockingInternal link resolutionScan all Markdown, wikilinks, HTML references, and embeds.No unresolved critical link; all others classified.Link-check report.
V-04BlockingRow and property fidelityCompare counts and representative values for every critical database.Rows and mapped properties reconcile exactly.Database comparison workbook.
V-05BlockingViews, formulas, and relationsRun owner-approved scenarios against rebuilt Bases and workflows.Each critical operational question returns the approved result.Scenario results and owner sign-off.
V-06BlockingAccess boundariesTest accounts from each role against sensitive vaults and sync shares.No user can access content outside the approved classification.Access test matrix.
V-07Representative renderingReview simple, nested, callout-heavy, table-heavy, and embed-heavy notes.Meaning is preserved; known visual changes are accepted.Before-and-after review sheet.
V-08BlockingClean-machine restoreRestore the vault and required configuration from backup on another machine.Notes, assets, links, plugins, and access configuration work without the source machine.Restore log and vault hash.
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: All owners sign off, the clean-machine restore passes, and the vault has been the source of truth for at least 30 days.

  1. Preserve the raw Notion archive and final reconciliation under the retention policy.
  2. Revoke temporary Notion integrations and API tokens.
  3. Remove duplicate plaintext exports from Downloads and shared drives.
  4. Keep Notion read-only through the agreed retention period before cancelling paid seats.
  5. Document vault backup, sync, plugin, ownership, and recovery responsibilities.
  6. Schedule quarterly broken-link, backup-restore, and access reviews.
10Experiences from the field

When the plan met reality.

First-hand accounts are preferred. Vendor case studies are labeled, and every note below is an editorial paraphrase—follow the link for the full context.

First-person accountazan-n · azan-n

Migrating from Notion to Obsidian

Azan exported a Notion knowledge base as HTML and converted it with Obsidian Importer. The Markdown output needed cleanup, particularly for larger databases. Attempts to reproduce Notion database structure with Dataview felt cumbersome, so the author eventually simplified the workflow around Obsidian Tasks rather than rebuilding the source system feature for feature.

What they recommend
  • Budget manual cleanup for large databases even when the official importer completes without a hard failure.
  • Decide which database behaviors are truly essential before recreating Notion structures with Obsidian plugins.
Worth noticing
  • The content moved, but the database experience did not transfer as a native equivalent.
  • Adopting a simpler destination-native task workflow proved more sustainable than imitating Notion with queries.
Sources and maintenance

Built to be reviewed.

Tested 2026-07-19. Next scheduled review: 2026-10-19.

  1. Notion: export your contentAccessed 2026-07-19
  2. Obsidian: import from NotionAccessed 2026-07-19
  3. Obsidian Importer pluginAccessed 2026-07-19