Perfect Notion Database Setup for Freelance Client Portal

To build a scalable client portal, never put all clients into a single shared page. You must use a relational database architecture. Create two core databases and connect them using a Relation property with two-way sync enabled.

Plaintext

1. Type /database to create "DB_Clients"
   - Properties: Client Name (Title), Email (Email), Portal Link (URL)

2. Type /database to create "DB_Deliverables"
   - Properties: Task (Title), Status (Select), Deadline (Date)

3. In "DB_Deliverables", click [+] > Relation > Select "DB_Clients"
   - Toggle ON "Show on DB_Clients" to establish a 2-way connection.

The Syntax Breakdown

  • DB_Clients: Your master backend database. This lives in your private workspace and acts as the single source of truth for all CRM data. Clients never see this directly.
  • DB_Deliverables: Your master task database. Every task for every client lives here.
  • Relation Property: The bridge between the two databases. By linking a specific deliverable to a specific client, you can use Linked Database Views to filter tasks automatically based on the client name.
  • Two-Way Sync (Show on...): By enabling this toggle during the Relation setup, Notion automatically creates a reciprocal property in DB_Clients. When you assign a client to a task, that task instantly appears on the client’s profile.
  • Linked View of Database (/linked): The command used to embed DB_Deliverables onto a unique Client Page. You apply a hard filter here (Client Name = Specific Client) so they only see their own data.

Real-World Example: B2B Content Marketing Agency

You run a freelance content agency managing deliverables for dozens of clients. You need each client to log into a unique dashboard to see the real-time status of their specific articles without seeing your internal notes or other clients’ pipelines.

Here is your master backend data structure:

DB_Clients (Private)

Client NameStatusContact Email
TechCorpActiveadmin@techcorp.com
GlobalDataOnboardingops@globaldata.com

DB_Deliverables (Private)

TaskDeadlineStatusClient Relation (Points to DB_Clients)
Q3 SEO Audit10/15/2026In ProgressTechCorp
Wireframe Copy10/18/2026ReviewGlobalData
Blog Post: AI10/22/2026Not StartedTechCorp

The Application (Client Portal Setup):

  1. Create a new, blank Notion page called “TechCorp Portal”.
  2. Share this specific page with admin@techcorp.com as a Guest.
  3. Type /linked and select your DB_Deliverables database.
  4. Click the Filter icon > Client Relation > select TechCorp.

The Output:

When the TechCorp client logs into their portal, they only see the filtered view of the master database.

TaskDeadlineStatus
Q3 SEO Audit10/15/2026In Progress
Blog Post: AI10/22/2026Not Started

Common Errors & How to Fix Them

  • Clients can see tasks belonging to other companies: You shared the master DB_Deliverables database instead of sharing a specific Page containing a Linked View. Fix: Move DB_Deliverables to a private workspace folder. Only share the individual client dashboard pages where the Linked View is strictly filtered by their name.
  • New tasks added by the client disappear instantly: The client is creating a task in their portal, but the Linked View filter requires a relational tag that wasn’t automatically applied. Fix: Open the Filter menu on the client’s Linked View and ensure the relational filter is set to exactly match their client name. Any new row created in a filtered view automatically inherits that filter’s properties.
  • Rollup data shows as a comma-separated text string instead of a calculation: You are trying to display a progress bar or sum calculation based on the Relation, but left the Rollup configuration on “Show original”. Fix: Click the Rollup property header, select Edit property, and change the Calculate dropdown from Show original to Count all, Sum, or Percent checked.

About the Architect: Grid and Formula

Lead Data Analyst and Workspace Automation Engineer at Grid & Formula. Specializing in Excel logic, Google Sheets architecture, and Notion database blueprints. I build and rigorously test the formula frameworks and error fixes published here, ensuring you get immediate, no-fluff solutions to your most complex data bottlenecks.