Introduction
Google Sheets Sync
Sync your Notion databases to Google Sheets automatically. Choose one-way sync to export data from Notion to Sheets, or two-way sync for full bidirectional synchronization where changes flow in both directions.
Google Sheets Sync is available on Starter and Pro plans.
Getting started
To set up a sync:
- Connect your Notion workspace and Google Drive account
- Run a backup to discover your Notion databases
- Create a sync from your workspace settings
- The spreadsheet should appear in your Google Drive account shortly
Sync modes
One-way (Notion → Google Sheets)
Your Notion database is the source of truth. Changes made directly in Google Sheets are overwritten on the next sync.
Two-way (Notion ↔ Google Sheets)
Full bidirectional sync. New rows in Google Sheets create pages in Notion; updates in either direction are synchronized.
Important
Two-way sync requires a read-write Notion connection. If your workspace uses read-only access, reconnect it with read-write permissions to enable two-way sync.
Sync frequency
| Frequency | Plan |
|---|---|
| Every minute | Pro |
| Every 30 minutes | Starter and above |
| Every 60 minutes | Starter and above |
Starter plans can sync up to 2 databases. Pro plans have no limit.
Two-way sync settings
When using a two-way sync, you have the option to choose how conflicts and deletions are handled.
Conflict resolution
When the same row is edited in both Notion and Google Sheets between syncs:
| Option | Behavior |
|---|---|
| Notion wins (default) | Google Sheets changes are overwritten |
| Google Sheets wins | Notion pages are updated with spreadsheet values |
| Skip conflicting rows | Rows are left unchanged; review manually |
Deletion handling
When a row is deleted from Google Sheets:
- Archive the Notion page (default) — Moves the page to your Notion account's Trash (reversible)
- Do nothing — The page stays in Notion; the row reappears on next sync
When a page is archived in Notion:
- Delete the row (default) — Removes the row from Google Sheets
- Mark as archived — Keeps the row but marks it as archived (by appending [ARCHIVED] to the title)
- Do nothing — The row remains unchanged
- Recreate the page in Notion — Creates a new page in Notion using the data from the spreadsheet row. Useful when Google Sheets is your source of truth and you want accidentally deleted pages to be restored automatically. The row's page ID is updated to point to the newly created page.
Note
If you change deletion strategies, the new setting applies retroactively. For example, switching to "Recreate the page" will recreate any previously archived pages on the next sync.
Spreadsheet structure
Your spreadsheet is structured automatically:
- Column A (
_notion_page_id) — Links each row to its Notion page. Do not modify this column. - Column B (
_sync_status) — Shows the status of the last sync for each row. Do not modify this column. - Remaining columns — One per Notion property, matching your database schema
The _sync_status column displays a timestamp after each successful sync (e.g., "Synced at 14:30") with a green background. If a row fails to sync, it shows a brief error message with a red background.
Important
Do not rename, move, or delete the _notion_page_id and _sync_status columns. These are system columns used to keep track of the sync state.
Property support
All standard Notion property types are synced:
- Text (title, rich text, URL, email, phone)
- Numbers
- Select and multi-select (comma-separated in Sheets)
- Dates
- Checkboxes (TRUE/FALSE)
- People (names)
- Relations (page titles)
- Formulas and rollups (computed values)
- Files (URLs)
- Created/last edited timestamps
Computed results from formulas (whether in Notion or Google) get copied over as well.
Hidden properties in Notion and hidden columns in Google Sheets are synced as well — hiding them is purely aesthetic and does not exclude them from the sync.
Error handling
For two-way syncs, the sync pauses automatically after 5 consecutive failures. You can resume it from your workspace settings after reviewing the error.
Common errors include expired connections (reconnect your Google Drive or Notion workspace), deleted databases, and rate limits from the Notion API.