← All playbooks
Knowledge migration

Google Sheets → Notion

Download the sheet as CSV and import it as a Notion database. The import adds rows. It does not update them, and it does not create relations, rollups, or formulas.

Typical timeline3 to 10 business days8 to 24 hours active work
Statusneeds review
Source profileGoogle Sheets download help reviewed 2026-11-02
Destination profileNotion CSV import help reviewed 2026-11-02
Documentation date
Review window
Evidence4 sources
This route needs review.Use it as a planning baseline, then verify the dated sources and test with representative data before production.
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

Google Sheets

Reasons to stay
  • Shared spreadsheets that most teams can open, comment on, filter, and download
  • Structured ownership, status, and workflow views improve operational visibility
Reasons to leave
  • Relations, attachments, and automations have to be rebuilt with formulas or scripts
  • Custom fields, automations, history, and reporting are difficult to reproduce exactly
New platform

Notion

What gets better
  • Polished pages and databases let teams build flexible workspaces without code
  • Flexible documents make it easy to capture and organize team knowledge
What gets worse
  • Offline use, export fidelity, and large-workspace governance remain weak points
  • Structure, links, permissions, and rich blocks often degrade during export
Best of the move

Notion: Polished pages and databases let teams build flexible workspaces without code. This removes a major source-side concern: Relations, attachments, and automations have to be rebuilt with formulas or scripts.

Worst of the move

What you lose: Shared spreadsheets that most teams can open, comment on, filter, and download. What you inherit: Offline use, export fidelity, and large-workspace governance remain weak points.

Jump to a section
01At a glance

Know the shape of the move.

Transfer outcome12 features audited
Transfer outcome distributionClean transfer: 1, Partial transfer: 5, Manual rebuild: 4, Not transferred: 2.
Clean1
Partial5
Manual4
Lost2
Mapping route9 of 10 fields have a destination path

This timeline assumes

  • The sheet is a table you want as a Notion database. The site already documents Google Docs → Notion, Notion → Google Docs, and Google Sheets → Airtable.
  • You download a CSV from Sheets with File, Download. One tab is one file.
  • The first row is headers. Notion says a CSV row becomes a page and a column becomes a property.
  • You can live with an add-only import. Notion says imports and merges add rows and do not update existing ones.
  • The sheet stays available until the database page count matches.
02What transfers

What survives the move.

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

ItemOutcomeImpactWhat happensMitigation
The sheet as a databasepartialcriticalNotion's CSV import creates a database, or merges into an existing one. Rows become pages. Columns become properties. You map each column. Start from Settings, Import, CSV, or type /csv.Import into a new database first.
File sizepartialhighNotion says the CSV limit is 5 MB on the Free plan and 50 MB on paid plans. A Sheet that is larger has to be split or filtered before download.Check the CSV size before you upload. Split by a column you can filter on later.
Adds, not updatesmanualcriticalNotion says imports add rows and do not update existing rows. Merge with CSV, from the database menu, also adds rows. Matching headers to property names matters for a merge, and it still does not update a page that is already there.Import once into an empty database. A fix is a new database, or you accept duplicates.
Relations, rollups, and formulaslostcriticalA new CSV import cannot create relations, rollups, or formulas. Notion says you rebuild those after import. If you merge into a database that already has a relation property, you can map a column onto that existing relation.Create relations after the load, or create the empty database with relations before a merge.
Dates and selectspartialhighNotion says dates import as MM/DD/YYYY. A value with commas mapped to a Select should be mapped to Text instead, or it will not show. Numbers such as currency, percents, and negatives should be mapped to Text if they import wrong. Mixed types may arrive as text. The title property does not support formatting.Map awkward columns to Text, then change the type after you see the values.
Encoding and headerspartialhighNotion says garbled characters mean you should re-export as UTF-8. The first row must be headers, and every cell needs a header. A merge matches headers to property names exactly.Rename the header row to the property names before a merge. Keep the CSV in UTF-8.
Formulas in the sheetmanualhighThe CSV is values. A Sheets formula does not become a Notion formula, and Notion will not create one during the import.Rebuild the formula in Notion after the pages exist, or keep the value and label it as a snapshot.
Several tabsmanualhighFile, Download gives you the spreadsheet file you chose to download. A CSV is one table. Each tab you care about is its own import and its own database.Download and import tab by tab.
Comments and noteslostmediumNotion's CSV page does not list comments, notes, or protected ranges as imported fields.Copy comments into a column before you download, if you still need them.
SharingmanualhighA sheet's link does not become Notion page permissions. The new database inherits the workspace you imported into.Import into a private page, then share it.
The sheet after importcleanmediumThe import uploads a CSV. It does not delete the Google Sheet. Notion's export help is the other direction and is not a sync.Make the sheet read-only so the two copies do not diverge.
A too-wide or too-tall sheetpartialmediumGoogle's own import help is about bringing files into Sheets, and it is the place that names the too-large error for Sheets. For this direction the binding limit is Notion's 5 MB or 50 MB CSV cap, which you can measure on the downloaded file.If the CSV is over the plan limit, split it before upload.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
TabCSV filemanualFile, Download. One tab at a time.
HeaderProperty nametransformMust match exactly on a merge.
RowDatabase pageautomaticAdded, not updated.
ColumnPropertytransformYou map it during import.
DateDate propertytransformNotion says MM/DD/YYYY.
Comma-separated selectText propertymanualNotion says a Select mapping drops these values.
FormulaValue onlymanualRebuild the formula later. The import will not create one.
RelationExisting relation, only on a mergemanualA new import cannot create a relation.
CommentNo destinationunsupportedPut it in a column before download if you need it.
Sheet permissionNotion share you setmanualNot imported.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Keep the sheet and the CSV until the Notion database is accepted.

  1. Name the tab and confirm the first row is headers.
  2. Download CSV and check the file size against 5 MB or 50 MB.
  3. Save a second copy of the CSV.
  4. Make the sheet read-only when you are ready for the final file.
  5. Leave the sheet in Drive.

Proof to capture: A UTF-8 CSV on disk and the sheet still open.

Transformation · File, Download in Sheets

CSV

Give Notion a file it can map.

  1. Download the tab as CSV.
  2. Re-save as UTF-8 if a pilot shows garbled text.
  3. Put dates in a form you can read as MM/DD/YYYY, which is what Notion says it imports.
  4. Move comma-heavy cells into columns you will map as Text.

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

Transformation · Notion CSV import

New database

Add the rows once.

  1. Use Settings, Import, CSV, or /csv.
  2. Create a new database.
  3. Map columns. Use Text where Select or a number would drop characters.
  4. Do not merge into that database again unless you want duplicate pages.

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.

Cutover

A second import duplicates the database

criticallikely likelihood

You merge the same CSV after fixing a header.

Consequence
Notion adds pages. It does not update the ones from the first import.
Mitigation
Delete the pilot database and import the fixed file once.

Stop if: The live database already contains the first file.

Pilot

A relation was expected from a blank import

highlikely likelihood

Two sheets refer to each other and you imported each as a new database.

Consequence
Notion will not create the relation. The link is text.
Mitigation
Create the relation property afterward, or merge into a database that already has it.

Stop if: The workflow depends on a relation and you have no plan to build it.

Backup

The file is over the plan limit

highpossible likelihood

The CSV is over 5 MB on Free, or over 50 MB on a paid plan.

Consequence
Notion's import does not take the file.
Mitigation
Split the CSV before the upload.

Stop if: You have one file and it is over the limit.

06Precise timeline

Do the work in this order.

Estimate forOne or more sheet tabs downloaded as CSV and imported as Notion databases
Total elapsed3 to 10 business days
Active work8 to 24 hours
BufferAdd time if you must split a file or rebuild relations after the import.
01
Days 1 to 2Tabs and properties1 to 2 days
02
Day 2CSV1 day
03
Days 2 to 5New database2 to 3 days
04
Days 5 to 7Read-only sheet1 to 2 days
05
Days 7 to 12Keep the sheet3 to 5 days
  1. Days 1 to 2 · inventory

    Tabs and properties

    2 to 5 hours active1 to 2 days elapsedSheet owner waiting
    • List tabs.
    • Mark columns that are selects, dates, or links.

    Depends on: Sheet access

    Stop / go checkpoint

    Download?

    Go when: Each tab is a future database or explicitly dropped.

    Stop when: A relation is required and nobody owns rebuilding it.

  2. Day 2 · backup

    CSV

    1 to 3 hours active1 day elapsedNone waiting
    • Download each tab.
    • Check size and UTF-8.

    Depends on: Inventory

    Stop / go checkpoint

    Import a pilot?

    Go when: The file is under the plan limit and the header row is real.

    Stop when: The file is over 5 MB or 50 MB and not split.

  3. Days 2 to 5 · pilot

    New database

    3 to 8 hours active2 to 3 days elapsedReview waiting
    • Import into a new database.
    • Check dates and a select.
    • Note relations you still have to create.

    Depends on: CSV

    Stop / go checkpoint

    Import the other tabs?

    Go when: Page count matches CSV rows.

    Stop when: Values are garbled or a select column is empty.

  4. Days 5 to 7 · cutover

    Read-only sheet

    2 to 4 hours active1 to 2 days elapsedEditors waiting
    • Stop edits in the sheet.
    • Download and import the final CSV once.
    • Share the Notion page.

    Depends on: Pilot accepted

    Stop / go checkpoint

    Use the database?

    Go when: The final page count matches.

    Stop when: You would need a second import into the same database.

  5. Days 7 to 12 · observe

    Keep the sheet

    1 to 3 hours active3 to 5 days elapsedPeople using Notion waiting
    • Leave the sheet readable.
    • Add relations and formulas Notion could not create.
    • Keep the CSV.

    Depends on: Database shared

    Stop / go checkpoint

    Stop using the sheet?

    Go when: The relations you needed now exist, or you dropped them.

    Stop when: The only copy of a formula is the sheet and you still need it live.

07The point of change

Cut over with a way back.

Go live

Cutover

One import of a frozen CSV into a new database.

Recommended window: After the sheet stops changing for the day.

  1. Make the sheet read-only.
  2. Download the CSV.
  3. Import it into a new Notion database.
  4. Compare the page count with the row count.
  5. Share the page.
  6. Leave the sheet in Drive.

Proof to capture: The database page count matches the CSV, and the sheet is unchanged.

Return to safety

Rollback

Edit the Google Sheet again.

Deadline: Before the sheet is deleted.

  1. Send people back to the sheet.
  2. Leave the Notion database unused, or delete the pilot.
  3. Keep the CSV.
  4. Fix headers or types.
  5. Import into a new database rather than merging onto the bad one.

Proof to capture: The sheet is the working copy, and you know which Notion database was the attempt.

Rollback immediately when
  • Page count does not match
  • A second import created duplicates
  • Select values disappeared
  • The CSV is over the plan size
  • A required relation was not created and has no follow-up
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-01BlockingSize and encodingCheck the CSV is UTF-8 and under 5 MB or 50 MB for the plan.Notion will accept the upload.File properties.
V-02BlockingFirst rowOpen the CSV.The first row is headers, one per column.CSV.
V-03BlockingPagesCompare database pages with data rows.They match.Count note.
V-04BlockingMM/DD/YYYYOpen three date properties.The day and month are the ones from the sheet.Date check.
V-05BlockingCommasFind a cell that contained a comma.It is in a Text property, or the whole value is visible.Property check.
V-06BlockingNot inventedLook for a relation the import would have had to create.It is absent, and you have a note to build it, or it was mapped onto one that already existed.Schema note.
V-07BlockingSingle importSearch for a distinctive row.One page.Search.
V-08BlockingSheetOpen the Google Sheet.It is still there and matches the CSV you imported.Sheet check.
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: The database has been used and the CSV is stored, with the sheet still readable.

  1. Store the CSV next to the database link.
  2. Add relations and formulas Notion could not create on import.
  3. Do not merge the same file in again.
  4. Keep the sheet until those formulas exist or are dropped.
  5. Share the Notion page to match the audience of the sheet.
Sources and evidence

Verify against the primary material.

Platform behavior changes. Check these sources and the review dates above before executing a production migration.

  1. Notion: import CSVAccessed 2026-11-02
  2. Google Sheets: download a copyAccessed 2026-11-02
  3. Google Sheets: import and large filesAccessed 2026-11-02
  4. Notion: export and CSV in the other directionAccessed 2026-11-02