Notion for lawyers · 30 September 2026
How to Structure a Client Portal in Notion
A client portal is not a shared page with a document list on it. It is a filtered view of your own systems, built so a client sees exactly what they need and nothing they shouldn't.
The most common mistake I see when a firm tries to build a client portal in Notion is starting from a blank page and building something new for the client, separate from the systems the firm already uses internally. That approach guarantees drift: the internal matter record and the client-facing portal are two different places, and the moment someone updates one and forgets the other, the client is looking at stale information with total confidence that it is current. The portal that actually works is not a separate build. It is a carefully filtered, permission-scoped view of the exact same underlying databases the firm already runs the matter through.
Start from the databases you already have
If your firm has a Matters, Documents, Deadlines and Tasks database structured relationally, the portal is not a new system, it is a shared view into that existing structure, filtered to one matter and stripped of anything internal. This is the entire reason the relational structure in the underlying workspace matters: a portal built on top of disconnected pages has nothing coherent to filter down from.
Decide what the client actually needs to see
Not everything in your internal record belongs in front of a client. Internal strategy notes, privileged attorney work product, and candid case assessments have no place on a shared page, even a permission-restricted one, because Notion sharing settings are not a substitute for genuinely separating what gets built where. My rule: if a document or note would be uncomfortable for opposing counsel to see if it leaked, it does not go anywhere near a client-facing page, full stop, regardless of how the permissions are configured.
What clients actually want, in my experience building these, is narrower than most firms assume: where things stand right now, what is due from them and when, what documents have been filed or received, and a way to reach the firm without waiting for a status call. A portal built around those four things covers the overwhelming majority of client anxiety, and anxiety, more than information, is usually what a client is actually managing when they check a portal.
Structure the page itself
I build the client-facing page as a single page per matter, not a shared workspace, using linked, filtered database views embedded on that page rather than duplicated content. A status summary at the top, a filtered Deadlines view showing only what is upcoming and only what involves the client directly, a filtered Documents view showing only documents the firm has cleared for client visibility, and a simple way to send a message or upload a requested document. Keep it to one page. A client portal with its own navigation and sub-pages is a client portal nobody actually uses, because it asks more of the client than a worried person checking on their case is willing to give.
Get the permissions right, deliberately
Notion's sharing model lets you share a specific page and its nested content without exposing the parent workspace, but this only works safely if the page structure was built with that boundary in mind from the start. I keep a strict separation: the internal matter workspace lives in one location, and the client portal page pulls filtered views from it but sits in a genuinely separate area of the workspace with its own sharing settings, so a permissions mistake on one page cannot cascade into exposing the internal record. Test this by logging in as the client would, not by trusting the settings panel, because Notion's permission inheritance has enough edge cases that the only reliable check is looking at what the shared link actually shows.
Make status updates a system, not a habit
A portal that goes stale is worse than no portal, because it actively misleads a client into thinking nothing has happened when in fact the firm simply forgot to update the page. The fix is not a reminder to update it, reminders get skipped exactly when things are busiest. The fix is making the client-facing status pull directly from the same status field the internal matter record already uses, so updating the internal record is the only action anyone has to take, and the portal reflects it automatically because it was never a separate record to begin with.
What I leave out on purpose
I do not build client-facing task assignment into these portals, asking a client to manage their own checklist inside your workspace, and I do not build open-ended commenting on internal documents. Both invite exactly the kind of unsupervised, unstructured interaction that a portal should be reducing, not creating. A client asking a specific question through a controlled message field is manageable. A client leaving comments directly on a draft document, where privilege and tone both matter, is not something I want happening without a lawyer in the loop first.
Why this is worth building properly
A well-structured client portal does something most firms underestimate: it replaces the single most common reason clients call, "what's going on with my case," with a page they can check themselves at ten at night, which is usually when the anxiety actually strikes. That does not just save the firm phone calls. It changes how the client experiences the entire matter, from something opaque happening to them, to something they can see moving. Building it as a real, filtered extension of your existing systems, rather than a separate performance staged for the client, is what makes that experience trustworthy enough for them to actually rely on.
notion · client portal · legal operations · notion for lawyers