Google Sheets to Notion: Import a Sheet Once or Keep It in Sync (2026)

By Leandro Zubrezki8 min read
Google Sheets to Notion: Import a Sheet Once or Keep It in Sync (2026)

Google Sheets to Notion in short: You have two options. For a one-time import, download the sheet as a CSV and import it in Notion. It is free, and the result is a Notion database that never changes again. For data that keeps changing, sync the sheet with Notion using Sync2Sheets:

  • Real-time 2-way sync keeps a Notion database and the sheet updated in both directions, within seconds.
  • Page creation turns sheet rows into Notion pages. Type DRAFT in the Page ID column while you fill a row in, then NEW when it is ready.
  • Tables write a sheet tab into a Notion simple table on any page, for summaries that don't need to be a database.

If you only want to look at the spreadsheet from a Notion page, you don't need either. An embed does that, see how to embed a Google Sheet in Notion.

You want to...UseWhat you get in Notion
Move a sheet into Notion onceCSV importA Notion database that does not update
Keep a Notion database and a sheet in stepSync2Sheets real-time 2-way syncA Notion database that updates both ways
Add Notion pages by adding rows in SheetsSync2Sheets page creationA new page for every row marked NEW
Show a summary or pivot on a Notion pageSync2Sheets TablesA Notion simple table refreshed from the sheet
Just see the sheet while reading a pageEmbedA read-only preview of the sheet

How to import a Google Sheet into Notion (one time)

Notion can't read a Google Sheet directly, but it can import a CSV file. So the path is: download the sheet as CSV, then import that file.

  1. In Google Sheets, open the tab you want to move.
  2. Click File, Download, Comma-separated values (.csv). Only the active tab is exported, so repeat for each tab you need.
  3. In Notion, open the page where you want the data.
  4. Click Import in the sidebar (or type /import) and choose CSV.
  5. Pick the file. Notion creates a database, uses the header row for property names, and turns each row into a page.
  6. Check the property types. Notion guesses them (text, number, date, select), so fix any column it got wrong.

For a one-off move, that is all you need.

What a CSV import does not do

The import is a snapshot. Once it finishes, the sheet and Notion have nothing to do with each other.

  • It does not stay current. Change the sheet tomorrow and Notion won't know. Change Notion and the sheet won't know either.
  • Importing again duplicates rows. Notion doesn't match the new file against the pages already there, so a second import adds a second copy instead of updating.
  • Formulas turn into values. The CSV carries the result of =GOOGLEFINANCE or VLOOKUP, frozen at the moment you downloaded it.
  • Relations arrive as text. A column that pointed at another table becomes plain text, and you rebuild the links by hand.

If any of that is a problem, you want a sync instead of an import.

How to keep Google Sheets and Notion in sync

Sync2Sheets is a Google Sheets add-on (184,000+ installs) that keeps a Notion database and a Google Sheet in sync. Three of its features cover the Sheets to Notion direction.

Real-time 2-way sync. Every column has its own direction: Notion to Sheets, Sheets to Notion, or Both ways. Notion edits reach the sheet through Notion's webhooks, and Sheets edits reach Notion through Google Drive push events, both within seconds. Set a column to Sheets to Notion and a spreadsheet formula becomes the source for that Notion property. Read-only Notion properties (formulas, rollups, created time, and similar) always sync Notion to Sheets.

Page creation. Every synced sheet has a Page ID column that links each row to its Notion page. Type NEW in that column on a new row and Sync2Sheets creates a Notion page from it, then swaps NEW for the real page ID. Type DRAFT while you are still filling a row in, and the sync leaves it alone.

Tables. For data that should sit on a Notion page rather than in a database (a pivot summary, a leaderboard, a monthly report), Tables write a sheet tab into a Notion simple table. They refresh on your plan's interval: every 2 hours on Starter, 30 minutes on Advanced, 15 minutes on Business.

Steps: move a spreadsheet into a Notion database and keep it synced

These steps work the same for five rows or five hundred.

  1. Create the Notion database first. Add the properties you need, even with no pages yet. Setting the property types yourself beats letting an import guess them.
  2. Sync it to your spreadsheet. Install Sync2Sheets from the Google Workspace Marketplace, open the spreadsheet with your data, open the Sync2Sheets sidebar, connect your Notion workspace, and sync the database. Sync2Sheets creates a new tab with one column per property plus the Page ID column.
  3. Turn on page creation. In the database settings in the sidebar, switch on Allow creating pages from Sheets. It is off by default, and without it NEW rows are ignored.
  4. Paste your rows under the synced headers. Line each column up with its Notion property. Text, numbers, dates, checkboxes, URLs, emails, and phone numbers paste straight in. For select and multi-select, use the option names exactly as they are in Notion. For people, use the member's email address.
  5. Fill relations with Page IDs. If a column should link to another Notion database, sync that database too and copy Page IDs from its tab. A CSV import can't do this at all.
  6. Stage with DRAFT, release with NEW. Put DRAFT in the Page ID column while you clean up values. When a batch is ready, paste NEW over the range and Sync2Sheets creates the pages.
  7. Fix the red cells. A row that can't be created gets a red Page ID cell reading ERROR, with a note that says why: a select option that doesn't exist in Notion, a relation ID that wasn't found, and so on. Fix the value, change ERROR back to NEW, and only that row is retried.
  8. Set the column directions. Columns driven by Sheets formulas go Sheets to Notion. Columns your team edits in either place go Both ways.

After that, keep the tab. Add a row with NEW and a Notion page appears. Change fifty statuses with one paste in Sheets and they land in Notion. Edit a page in Notion and the row follows. That is what an import can't give you.

Put a sheet range on a Notion page with Tables

When the thing you want in Notion is a summary, not a set of pages, use Tables:

  1. Build the summary on its own tab in Google Sheets (a pivot table, a QUERY, a formula range).
  2. Copy the link to the Notion page where it should appear. It has to be a regular page, not a full-page database, and shared with Sync2Sheets.
  3. With that tab open, go to Table Blocks in the Sync2Sheets sidebar, create a new table block, and paste the page link.

A Notion simple table appears on the page and refreshes from the tab on your plan's interval.

CSV import vs Sync2Sheets

CSV importSync2Sheets
Stays currentNo, snapshot onlyYes, real-time 2-way sync for databases
Running it againAdds duplicate pagesUpdates the same pages
New pages from rowsOnly during the importAnytime, mark a row NEW
Sheets formulasFrozen as valuesKeep feeding Notion (column set to Sheets to Notion)
RelationsLost, rebuilt by handSet by Page ID
Summaries on a pageNoTables, refreshed every 2h / 30m / 15m by plan
CostFree7-day free trial, then from $12/month billed annually ($15 monthly)
Best forA one-time move or an archiveMigrations, recurring work, data that keeps changing

Which one should you use?

Use the CSV import if the data is moving once and won't change in the sheet again. It is free and takes a couple of minutes.

Use Sync2Sheets if the sheet keeps changing, you want formulas feeding Notion, you have relations to keep, or your team would rather add rows in a grid than click through Notion's editor.

Try Sync2Sheets free for 7 days. No credit card required.

Frequently asked questions

How do I import Google Sheets data into a Notion database?

For a one-time copy, download the sheet as CSV (File, Download, Comma-separated values) and use Import in Notion to turn it into a database. To keep it current, sync a Notion database with the sheet using Sync2Sheets, turn on page creation, paste your rows, and type NEW in the Page ID column. Each row becomes a Notion page, and the database and sheet stay in real-time 2-way sync afterward.

What is the best way to get Google Sheets into Notion?

It depends on whether the data keeps changing. If it does not, the free CSV import is enough. If it does, use a sync like Sync2Sheets, so new rows become Notion pages and edits flow both ways without re-importing. If you only want to look at the sheet on a Notion page, embed its link.

Does importing a Google Sheet to Notion keep formulas?

No. A CSV carries the computed values, not the formulas behind them. With Sync2Sheets you can set a column to Sheets to Notion, and the formula result keeps landing on the Notion property every time it recalculates.

How do I bulk import hundreds of rows from Google Sheets into Notion?

Create the Notion database with the properties you need, sync it to your sheet with Sync2Sheets, and turn on 'Allow creating pages from Sheets' in the database settings. Paste the rows under the synced headers, keep DRAFT in the Page ID column while you clean up, then change it to NEW. Sync2Sheets creates a Notion page per row. Rows that fail show ERROR with a note explaining why.

Can I keep Google Sheets and Notion synced automatically?

Yes. Sync2Sheets is a Google Sheets add-on that keeps a sheet and a Notion database in real-time 2-way sync. You pick the direction per column: Notion to Sheets, Sheets to Notion, or Both ways. Edits arrive on the other side within seconds.

Can I put a Google Sheets table on a Notion page without a database?

Yes. Sync2Sheets Tables write a sheet tab into a Notion simple table on a regular page, which is a good fit for pivot summaries and reports. The table refreshes on your plan's interval: every 2 hours on Starter, 30 minutes on Advanced, 15 minutes on Business.

Is there a free way to get Google Sheets data into Notion?

Yes. Notion's CSV import is free and works for a one-time copy. It goes stale as soon as the sheet changes, and importing again adds a second copy of the rows instead of updating them. Sync2Sheets has a free 7-day trial, no credit card required, if you want the data to stay current.

Sync Notion to Google Sheets in real time

Use Sheets formulas in Notion, build dashboards, back up your databases, and compare tools. Free 7-day trial.