Creating a customer portal to share Notion databases using Google Sheets

Creating a customer portal to share Notion databases using Google Sheets

In this short post I will explain how you can share only a subset of pages from your Notion databases using Google Sheets and Notion2Sheets.


In Notion we have the concept of views, we can create them using different filters and show only the information we want without modifying the original database. The problem comes when we want to share that subset of pages with someone outside our workspace, there’s currently no way to avoid them having access to the full database with all the data 👎

Let’s see how we can use Google Sheets as a portal to share the information without exposing the entire database.

Use cases


Imagine we have a database with tasks for different projects and different clients, and we want our clients to see an overview of how tasks are progressing, what’s blocked, what’s on track and what’s done and ready. We can create a specific spreadsheet for each of our clients, showing not only the subset of tasks that belong to them, but also summarize the information using pivot tables and charts.

You work as a freelance and you track your time in Notion, you have a list of tasks each with a customer assigned and how much time you spent on them. You can have one spreadsheet per customer where you can show the tasks and build a small dashboard where they can see additional information like hours billed, remaining budget and more.

The concept remains the same, sharing a subset of pages from a Notion database and using all the features Google Sheets provides to add additional elements like charts and pivot tables to improve how we present the information.

The approach

First thing is to sync your Notion database with Google Sheets using Notion2Sheets, take a look at the following video if you haven’t installed the add-on yet.

For this example we will use a Tasks List database connected to a Customers database, you can see the template here and duplicate to follow along or you can use your own database.

Once we have your database in sync, the next step is to create a single spreadsheet per customer or client. I know this is a manual step but you need to do it only once.

From each of the customer spreadsheets, we will use the =IMPORTRANGE() formula to bring the data from the main database:

The first parameter of the formula is the url of the spreadsheet containing your database sync, and the second parameter is the range of the data, in this case the sheet Tasks from A1 to J10, you should use your own range depending on the data you have.

Then we allow access to the sheet, enable filters and keep only the pages where the customer name is Materially. You can then keep working with the sheet to improve its design, hiding columns, changing styles and more. You can see the final shared spreadsheet here.


The idea is simple, sync your Notion database with Google Sheets, and then create specific spreadsheets for each of the slices of data you want to share, without giving access to the main database. From there you can add additional elements like charts and pivot tables, add conditional formatting to improve the visuals and more!

Do you have other ideas where this setup could be useful? We would love to hear from you ❤️

Subscribe to get amazing Notion and Sheets related content