Blog/September 21, 2026 8 min read • By Miraz from Portalize

Client Portal vs Shared Notion Page: Where Each Setup Fails

Agencies often treat “send the client a Notion link” as a client portal. It is sharing. A portal is a different product: each person authenticates as themselves, and the system is allowed to return only their rows. This post is the failure-mode map — not another setup tutorial. If you want the DIY build path, start with How to Build a Client Portal in Notion. If you want the product landing, see Share Notion with clients.

Four setups people call a portal

Almost every Notion-for-clients experiment is one of these four. They look similar in a screenshot. They fail at different layers.

  • Public page or Notion Site — anyone with the URL, no login.
  • Guest share — invited person uses a Notion account and page permissions.
  • Shared database with a filtered view — one page, filter set to “this client.”
  • Authenticated portal layer — identity checked on the server; rows scoped before render.

Failure-mode table

Read this left to right as “what breaks first.” Guest-seat math lives in the guest-limit guide. Filter-vs-identity scoping is unpacked in How to scope Notion data per client.

Failure modePublic pageGuest shareFiltered shared viewPortal (identity scoping)
Who can open itAnyone with the URLInvited guest with a Notion accountAnyone with access to that page or databaseAuthenticated client only
Forwardable to another companyYes — the URL is the access keyIf they can add guests or share onwardIf they can share the page or copy a linkNo — access is bound to the logged-in identity
Row isolationNone (one public document)Page-level onlyFilter is UX, not authorizationServer returns only that client’s rows
Client can reach sibling clientsIf the page includes themIf parent pages or linked DBs are reachableOften yes if they clear the filter or open the source DBNo, if scoping is enforced before the browser
Uses a Notion guest seatNoYesUsually yesNo
Client needs a Notion accountNoYesYesNo (magic-link portal login)
Branded, non-Notion UINotion or Sites chromeNotion UINotion UIYour portal chrome
Notion guest caps, Sites publishing, and plan limits change. The rows above describe architecture, not a particular Notion SKU month.

How public pages actually fail

A published Notion page or Site has no client identity. The URL is a capability. Screenshots, Slack forwards, and “can you just send me that link?” all clone access. Notion’s own Sites documentation is explicit that published sites are not a private, per-user login product. Fine for a public process doc. Not fine for invoices, drafts, or another brand’s campaign.

How guest shares actually fail

Guests solve “someone specific can open this page.” They do not solve “this person may only see their rows in a shared database.” Permissions inherit down the page tree. Linked databases and relations are easy to mis-share. On Free, you also hit a workspace-wide guest cap. Buying more Notion seats fixes collaboration with contractors. It does not invent row-level security for twenty concurrent clients.

Guest vs member vs portal client is a different question — access, billing, and UI.

Notion guest vs member

How filtered views actually fail

A filter labeled “Client is Acme” is a convenience for you. It is not an authorization check. Depending on how the database is shared, a viewer can often change the filter, open the source database, or follow a relation into another client’s record. Treat filters as layout. Treat identity scoping as security.

What a portal has to get right

Three properties, together: (1) the client authenticates as themselves, (2) the server decides which rows they may see before HTML or JSON is sent, (3) they never receive a Notion guest seat or a workspace UI to wander. Portalize is built for that trio on top of databases you already run. It is not a replacement for Notion Sites when you need a public marketing page.

Share Notion with clients through magic-link portals — scoped server-side, no guest seats.

Start free

Related

Share a Notion page without an account covers the “no Notion login” options. Notion permissions for client work covers why page ACLs are not enough. How to scope Notion data per client is the filter-versus-API follow-up.

Need the secure sharing product page rather than the failure table?

Share Notion with clients