If you’ve been manually copying data between Notion and Google Sheets, you already know how fast that workflow breaks down the moment your database grows beyond a few dozen rows. The frustrating part isn’t that the connection is technically impossible — it’s that Notion’s API is genuinely powerful, but every tutorial you find assumes you’re comfortable writing JavaScript or Python scripts, which most people simply aren’t.
Three things typically block non-technical users from making this connection work: Notion’s API requires a properly configured integration token that most setup guides skip past too quickly, automation platforms like Zapier and Make present so many options during setup that the correct path isn’t obvious, and Google Sheets requires specific permission scopes to accept incoming data that catch people off guard mid-flow. None of these are hard obstacles once you know exactly what to do at each step.
This guide covers three distinct no-code methods — using Zapier, using Make (formerly Integromat), and using a Google Sheets Add-on — ordered from the most beginner-friendly to the most flexible. Pick the one that matches your tools and comfort level, and you’ll have live Notion data flowing into Google Sheets before the end of this read.
Technical Specifications
| Technical Detail | Specification / Requirement |
|---|---|
| Target Platform | Web browser (Chrome recommended); desktop or laptop |
| Tools Used | Notion API, Zapier / Make / Google Sheets Add-on |
| Coding Required | None — all methods are fully no-code |
| Notion Plan Required | Free plan works; Notion API access available on all tiers |
| Google Account | Required for Google Sheets access and OAuth permissions |
| Zapier Plan Note | Free Zapier plan supports basic two-step Zaps; multi-step requires paid |
| Make Plan Note | Free Make plan includes 1,000 operations/month — sufficient for most use cases |
| Estimated Setup Time | 15 – 30 minutes for first-time configuration |
| Difficulty Level | Beginner to Intermediate |
| Sync Type | Trigger-based (new/updated records) or scheduled polling depending on method |
Before You Start: Create Your Notion API Integration Token
Every method in this guide requires a Notion API integration token, so complete this once before choosing your preferred method. This token is what allows external tools to read your Notion database securely without exposing your account credentials.
- Open your browser and go to notion.so/my-integrations — you must be signed into your Notion account.
- Click the New integration button in the top-left area of the page.
- Enter a name for your integration — something descriptive like “Google Sheets Sync” works perfectly.
- Select the Notion workspace you want to connect to from the Associated Workspace dropdown.
- Click Submit — Notion generates your Internal Integration Token immediately.
- Copy the token string that begins with
secret_and save it somewhere accessible like a notes app — you’ll paste it into whichever automation tool you use below. - Go to the specific Notion database you want to sync, click the three-dot menu (⋯) in the top-right corner of the page, scroll to Connections, and add your newly created integration by name — without this step, the integration token cannot read your database even if configured correctly.
Method 1: Connect Notion to Google Sheets Using Zapier
Zapier is the most beginner-friendly option because its interface walks you through each connection step with plain-language prompts and built-in error checking. The free plan supports a basic two-step Zap that triggers whenever a new Notion database entry is created and immediately pushes it as a new row in Google Sheets.
- Go to zapier.com and sign in or create a free account.
- Click the Create button in the top-left sidebar and select Zaps to open the Zap editor.
- Click the Trigger step and search for “Notion” in the app search field, then select it.
- Choose New Database Item as your trigger event — this fires the Zap every time a new row is added to your chosen Notion database.
- Click Sign in to Notion and paste your API integration token when prompted, then authorize the connection.
- Select your specific Notion database from the dropdown — only databases where you’ve added the integration (the step above) will appear here.
- Click Continue and test the trigger — Zapier pulls a recent sample record from your Notion database to confirm the connection works.
- Click the Action step and search for “Google Sheets,” then select Create Spreadsheet Row as the action event.
- Sign in to your Google account when prompted and grant the requested permissions — Zapier needs edit access to write rows into your sheet.
- Select your target Spreadsheet and Sheet (tab name) from the dropdowns, then map each Notion field to its corresponding Google Sheets column using the field picker.
- Click Publish Zap — from this point forward, every new Notion entry automatically creates a matching row in your Google Sheet.
Method 2: Connect Notion to Google Sheets Using Make (Formerly Integromat)
Make gives you significantly more control than Zapier — particularly for syncing updates to existing records, filtering which database entries get synced, and handling multi-step workflows. The free plan’s 1,000 monthly operations are more than enough for personal projects and small teams. The interface uses a visual canvas with connected module blocks rather than a linear step editor.
- Go to make.com and sign up for a free account or sign in.
- Click Create a new scenario from your dashboard — Make opens a blank visual canvas.
- Click the large plus (+) circle in the centre of the canvas to add your first module.
- Search for “Notion” and select the Watch Database Items module — this polls your Notion database on a schedule and triggers the scenario when new items appear.
- Click Add next to the Connection field and paste your Notion API token into the API Key field, then click Save.
- Select your Notion database from the Database ID dropdown — Make retrieves your available databases automatically once the token is accepted.
- Click the plus (+) button on the right edge of the Notion module to add your action module and search for “Google Sheets.”
- Select Add a Row from the Google Sheets module options, then sign in with your Google account and grant the necessary permissions.
- Choose your target spreadsheet and sheet tab, then map each Notion field from the left module to the correct column in Google Sheets using Make’s visual field mapper — dragging fields across modules is significantly more intuitive than it sounds.
- Click Run once in the bottom toolbar to test the scenario with real data before scheduling it.
- Set a sync schedule by clicking the clock icon on the Notion module — options range from every 15 minutes on free plans to every minute on paid plans — then activate the scenario using the toggle at the bottom of the screen.
Method 3: Use the “Notion to Sheets” Google Workspace Add-on
If you prefer working entirely inside Google Sheets without setting up a third-party automation account, the Notion database export add-ons available in the Google Workspace Marketplace offer the simplest path — though they typically work as on-demand syncs rather than real-time triggers. This method is ideal for weekly reporting or manual refresh use cases.
- Open a new or existing Google Sheet in your browser.
- Click Extensions in the top menu bar, then select Add-ons → Get add-ons to open the Google Workspace Marketplace.
- Search for “Notion” in the Marketplace search bar — look for add-ons with strong review counts such as Notion2Sheets or Sync with Notion.
- Click Install on your chosen add-on and grant the permissions it requests — these typically include read/write access to your Google Sheets files.
- Return to your Google Sheet after installation, click Extensions again, and select your newly installed Notion add-on from the list.
- Paste your Notion API integration token into the add-on’s authentication field when prompted and click Connect.
- Enter your Notion database ID — find this by opening your Notion database in a browser and copying the 32-character string from the URL between the last slash and the question mark.
- Click Sync or Import within the add-on panel — the add-on pulls your entire Notion database into the active sheet, mapping each property to a column automatically.
- Use the add-on’s refresh button whenever you want to pull updated data from Notion into the sheet — some add-ons also offer a scheduled auto-refresh option in their settings panel.
Frequently Asked Questions
Does syncing Notion to Google Sheets work in real time or with a delay?
It depends entirely on which method you use. Zapier on a free plan checks for new Notion items every 15 minutes, so there’s always a short delay. Make’s free plan polls on a minimum 15-minute schedule as well, but paid plans can reduce that to one minute. Neither platform offers true instant sync because Notion’s API uses a polling model rather than webhooks for database changes. For most business use cases — weekly reports, project tracking, content calendars — a 15-minute delay is completely acceptable. If you need near-real-time sync, upgrading to Zapier’s paid plan or Make’s Core plan unlocks faster polling intervals.
Can I sync data from Google Sheets back into Notion as well?
Yes, both Zapier and Make support bidirectional sync, though it requires setting up a second Zap or scenario that triggers on Google Sheets row creation and pushes data into Notion using the “Create Database Item” action. The trickiest part of bidirectional sync is preventing update loops — where a Notion change triggers a Sheets update, which triggers another Notion update indefinitely. Avoid this by using a dedicated “Last Synced” timestamp column in both tools and configuring your automation to skip records where the timestamp matches, breaking the loop before it starts.
What happens to my synced data if I change a Notion database property name?
Changing a Notion property name breaks the field mapping in your automation immediately and silently — Zapier and Make reference properties by their internal ID in some cases, but many configurations use the display name. After renaming a Notion property, go back into your Zap or Make scenario, open the field mapping step, and remap the renamed property to its corresponding Google Sheets column. The add-on method in Method 3 typically handles this more gracefully since it re-reads property names on every sync, but always run a test sync after any structural Notion database change to confirm data is still flowing into the correct columns.