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
DRAFTin the Page ID column while you fill a row in, thenNEWwhen 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... | Use | What you get in Notion |
|---|---|---|
| Move a sheet into Notion once | CSV import | A Notion database that does not update |
| Keep a Notion database and a sheet in step | Sync2Sheets real-time 2-way sync | A Notion database that updates both ways |
| Add Notion pages by adding rows in Sheets | Sync2Sheets page creation | A new page for every row marked NEW |
| Show a summary or pivot on a Notion page | Sync2Sheets Tables | A Notion simple table refreshed from the sheet |
| Just see the sheet while reading a page | Embed | A 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.
- In Google Sheets, open the tab you want to move.
- Click File, Download, Comma-separated values (.csv). Only the active tab is exported, so repeat for each tab you need.
- In Notion, open the page where you want the data.
- Click Import in the sidebar (or type
/import) and choose CSV. - Pick the file. Notion creates a database, uses the header row for property names, and turns each row into a page.
- 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
=GOOGLEFINANCEorVLOOKUP, 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.
- 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.
- 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.
- 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
NEWrows are ignored. - 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.
- 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.
- Stage with
DRAFT, release withNEW. PutDRAFTin the Page ID column while you clean up values. When a batch is ready, pasteNEWover the range and Sync2Sheets creates the pages. - 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, changeERRORback toNEW, and only that row is retried. - 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:
- Build the summary on its own tab in Google Sheets (a pivot table, a
QUERY, a formula range). - 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.
- 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 import | Sync2Sheets | |
|---|---|---|
| Stays current | No, snapshot only | Yes, real-time 2-way sync for databases |
| Running it again | Adds duplicate pages | Updates the same pages |
| New pages from rows | Only during the import | Anytime, mark a row NEW |
| Sheets formulas | Frozen as values | Keep feeding Notion (column set to Sheets to Notion) |
| Relations | Lost, rebuilt by hand | Set by Page ID |
| Summaries on a page | No | Tables, refreshed every 2h / 30m / 15m by plan |
| Cost | Free | 7-day free trial, then from $12/month billed annually ($15 monthly) |
| Best for | A one-time move or an archive | Migrations, 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.