Back to Blog
Best Practices
Aug 14, 20267 min read

What to Hide From Clients in Notion: A Privacy Checklist

The fastest way to lose a client's trust is showing them something you did not mean to. Here is a field-by-field checklist of what to hide before you share anything from Notion.

Share:

Most client-facing accidents in Notion are not dramatic breaches. They are a rollup that quietly includes another client's project name, or a cost column someone forgot was on the table.

This is the audit worth doing before anyone outside your team sees a portal.

Start from the right assumption

Assume everything on a shared record is visible until you have specifically confirmed otherwise. Hidden-by-default is a property of the tool you use, not of Notion pages.

The obvious ones

  • Cost, margin, and internal rate fields on any billable record
  • Freelancer or subcontractor names and their day rates
  • Internal status values like 'padding the estimate' or 'client is difficult'
  • Time tracked, if you bill fixed-fee and the hours would invite renegotiation
  • Profitability rollups on the Clients database itself

The ones people miss

These are the ones that cause the awkward email.

Check each of these individually

  • Rollups and formulas that reach across clients - the formula output may aggregate rows the client should never know exist
  • Relation properties pointing at other clients, which render as clickable names
  • Select options that reveal your internal pipeline, like 'At risk of churn' or 'Upsell candidate'
  • Created by and Last edited by, which expose your team structure and who is actually doing the work
  • Comment threads, which frequently contain the internal version of a decision
  • File attachments with revealing filenames, like final-v3-cheaper-option.pdf

The select-option trap

Hiding a property is straightforward. Hiding one option within a select is the subtler need — you may want clients to see status, but not the specific value 'Blocked on unpaid invoice'. Check that whatever you use can hide options, not just whole properties.

Structural fixes, not just hiding

Some things should not be hidden — they should not be on the record at all.

ProblemHide itBetter fix
Internal notes in a shared text fieldNot possible - it is one fieldSeparate 'Internal notes' property
Margin derived from a visible formulaHide the formula outputMove the calculation to a different database
Mixed internal and client tasksFilter per viewAdd an 'Internal only' checkbox and exclude it
Client name stored as free textNot filterableConvert to a relation to Clients

The pattern: anything you might one day need to hide should be its own property from the start. You cannot partially hide a field.

A five-minute pre-launch audit

1

Open the client view as a client

Not as an admin with everything visible. Use a real test account with a real client record.

2

Read every visible property name

Out loud if it helps. Ask whether you would be comfortable if the client screenshotted it.

3

Click every relation

Follow where it goes. Relations are the most common accidental leak.

4

Check the empty states

A client with no invoices should see a clean empty state, not an error or another client's placeholder.

5

Re-run it after schema changes

A new property added next month is visible by default in most setups. Adding a field is the moment leaks are introduced.

Test with a real second client

The single most valuable test is creating two test clients and confirming that client A genuinely cannot see client B's rows — including through search, direct links, and relation properties.

What clients should see

Removing things is only half the job. A portal that hides everything is not useful. The goal is a view where the client can answer their own questions without emailing you.

  • Current status of each active piece of work, in plain language
  • What is waiting on them specifically, separated from what is waiting on you
  • Dates that are real commitments, not internal targets
  • Invoices with amounts, due dates, and how to pay
  • Deliverables and links to the actual files

Can I hide a single property from clients in Notion itself?

Not in a way that constitutes access control. You can hide a property from a view, but anyone with access to the database can unhide it. Genuine property-level privacy requires a layer in front of Notion that only sends the permitted fields.

Are Notion comments visible to guests?

Guests with access to a page can generally see comments on it. If your team uses comments for internal discussion, that is a strong reason not to give clients direct page access.

What about 'Created by' and 'Last edited by'?

These are populated automatically and reveal who worked on what. If you subcontract, or if you would rather clients see the agency rather than individuals, hide them explicitly.

How often should I re-audit?

Any time you add a property to a client-visible database. New fields are typically visible by default, so the moment of risk is schema change rather than day-to-day work.

Hide fields without duplicating databases

Portalwith controls visibility per property and per select option, so internal data stays internal while clients see what they need.