How to Set Up a Client Portal

A buildable portal spec: mine your support inbox for the real requirements, a v1 scope contract, status views that end 'where do we stand?' emails, auth and tenancy done right, live data from your systems of record, and a measured 3-client pilot.

Osamah Aldoaiss • 22.9.2026

Most client portals are built once, demoed proudly, and then quietly bypassed. Clients keep emailing "quick question — where do we stand?", your team keeps answering, and the portal becomes an expensive login page nobody visits. We have audited enough of these graveyards to know the pattern: the portal was designed around the company's internal structure, filled with manually updated content that went stale in week three, and scoped by brainstorm instead of evidence.

The portals that work are boring and alive: they answer the three questions clients actually have, with data that is never stale because no human updates it. This guide is the full spec method — from mining your inbox for requirements to a measured pilot with go/no-go criteria.

Copy & paste

Start here: plan it with AI

Copy this prompt into any LLM or coding agent (Claude, ChatGPT, Cursor …) to apply this guide to your own project.

Guide: https://blackcard.dev/guides/how-to-set-up-a-client-portal
Markdown version (fetch this for the full method): https://blackcard.dev/guides/how-to-set-up-a-client-portal.md

I want to apply the guide "How to Set Up a Client Portal" to my business. The method: (1) mine ~3 months of client emails and categorize every question - the portal exists to answer the top three categories, which are almost always: Where do things stand? What do you need from me? Where are my documents and invoices? (2) write a v1 scope contract that is as explicit about what is OUT as what is in; (3) design the status view around stages, not percentages, and make "waiting on you" items impossible to miss; (4) choose auth by client profile (magic links vs SSO), with per-client data isolation; (5) the portal reads live from our systems of record via API - zero manually updated content, because staleness kills trust; (6) pilot with 3 friendly clients against a measured baseline of status emails per week.

Interview me one question at a time:
1. What does my company deliver to clients, and how long does a typical engagement run?
2. What do clients email us to ask, week after week? (the literal questions, as many as I can recall)
3. Which systems hold the answers today (project tool, CRM, accounting, file storage) and do they have APIs?
4. How many active clients would use the portal, and are they individuals or companies with teams?
5. Who answers these emails now, and roughly how many hours per week does it cost?
6. Any compliance constraints on client data (industry, region)?

Then produce: the question-category table from my answers, a v1 scope contract (in/out with reasoning), a data-source map showing where each portal element lives today and how fresh it can be, an auth and tenancy recommendation, a build-ladder recommendation with effort range, and the pilot plan with baseline metrics. Ask your questions now.

Why portals die: the graveyard autopsy

Before building, understand the failure modes, because v1 scope decisions either prevent them or guarantee them:

  • Built around your org chart, not their questions. Tabs named after your departments. The client doesn't care which team owns it; they care where their thing stands.
  • Manually fed. Someone was supposed to update the status page every Friday. They did, for three Fridays. The first time a client sees stale data, they email to verify — and now the portal generates more support load than before, because every view needs confirmation.
  • Scoped by brainstorm. "Wouldn't it be cool if clients could also…" Six months of features nobody asked for, while "where's my invoice" still takes an email.
  • Login friction. Passwords clients forget for a tool they open twice a month. Every reset is a support ticket the portal created.
  • No measured goal. Nobody counted status emails before, so nobody can say whether the portal changed anything, so nobody defends its maintenance budget.

Every section below is the counter-move to one of these.

Step 1: Mine the inbox — the requirements are already written

Your clients have been writing your portal spec for years, one email at a time. Extract it:

  1. Pull three months of inbound client emails (and recurring call topics) from the people who handle them.
  2. Tag each with a short category: status inquiry, document request, invoice/payment question, input you were waiting on, scope/new work, complaint, other.
  3. Count. In services businesses the distribution is remarkably consistent: 40–60% status, 15–25% documents and invoices, 10–20% "what do you need from me" confusion in both directions.

The top three categories are your portal. Everything else is explicitly out of v1. This half-day of tagging does two jobs: it writes the scope, and it records your baseline (emails per week per category) — the number the pilot will be judged against.

Step 2: The v1 scope contract

Write the scope as a contract with yourself, as explicit about OUT as IN, with one line of reasoning per line. This document is what you'll point at in week five when someone suggests a feature:

CLIENT PORTAL v1 - SCOPE CONTRACT

IN:
+ Engagement status per project: stage, what is happening now,
  next milestone, expected date            -> kills the #1 email category
+ "Waiting on you" items with due dates    -> unblocks our team, not just theirs
+ Document area: deliverables + invoices,
  read-only, named consistently            -> kills the #2 category
+ One activity feed: what changed since
  your last visit                          -> makes repeat visits worthwhile
+ One contact button: opens a thread with
  the project owner                        -> email replaced, not bolted on

OUT (v1, deliberately):
- Payments inside the portal               -> invoice links to existing payment flow
- Messaging/chat threads per document      -> becomes unanswered-message debt
- Client-editable anything                 -> doubles auth + validation scope
- Notifications settings page              -> we choose sane defaults instead
- Dashboards/analytics for clients        -> no evidence from inbox mining
- White-label theming per client           -> v2 if clients with teams ask

If a stakeholder wants to move an OUT item IN, the price is moving an IN item OUT. v1 stays this size.

Step 3: Information architecture per client question

"Where do things stand?" — the status view. Use named stages, not percentages. "Design review — started Nov 3, next: your feedback by Nov 14" is informative; "73%" is theater that invites the exact email you're preventing. Each engagement shows: current stage (of a visible, finite sequence), what is happening right now in one sentence, the next milestone with a date, and the last-changed timestamp. That timestamp is load-bearing: it proves the data is alive.

"What do you need from me?" — the action list. This is the view that pays for the portal, because it unblocks your team. Rules that make it work: every item has a due date and a short "why we need it"; items block visibly ("Design review can't start until this is in"); completed items disappear into history immediately; and when the list is empty it says, in large friendly text, "Nothing — we have everything we need." Clients learn to trust an empty list only if it is genuinely empty.

"Where are my documents?" — the file area. Two sections only: Deliverables and Invoices. Enforce a naming convention at the source (2026-11-10 — Brand Guide v3.pdf), show only the current version by default with history one click deep, and mark invoice status (paid/open/overdue) from the accounting system — not from memory.

Step 4: Auth and tenancy — the part that bites later

Choosing the login method. Decision criteria, not fashion:

  • Magic links (emailed sign-in links) — right default for individuals and small-company clients who visit weekly or less. Zero passwords to forget, zero reset tickets. Links must expire (15–30 min) and be single-use.
  • SSO (Google/Microsoft) — right when your clients are companies whose teams will use the portal; their IT may even require it. Offer alongside magic links.
  • Passwords — only if compliance explicitly demands a credential you manage. You are signing up for reset support forever.

Tenancy: per-client isolation at the query level. The embarrassing portal failure is Client A seeing Client B's invoice. Avoid it structurally, not by discipline: every data query carries the client-organization ID from the session — never from a URL parameter — and no code path can fetch cross-client data without an explicit internal role. Test it adversarially before pilot: log in as client A, manipulate URLs and IDs, try to reach client B. If you can, fix it before anyone else can.

The access-review ritual. Quarterly, 20 minutes: list every active portal account against your active client list. People change jobs; the portal shouldn't be the last to know.

Offboarding a client is a defined procedure, not an afterthought: access revoked on engagement end + grace period, their documents delivered as a final export, and their data retained or deleted per your contract's retention clause.

Step 5: The window, not the filing cabinet

The single most important architectural rule: the portal owns no data. It is a window onto your systems of record — the project tool, the accounting system, the file storage — via their APIs. The moment someone has to update portal content by hand, you have built a second copy of the truth, and second copies go stale, and stale kills trust, and trust is the entire product.

Operationalized:

  • Status comes from the project tool's actual stage field. If your project tool's stages are a mess, fix them there first — the portal will only amplify what the source contains. (The same systems feed your internal view; see the dashboard guide for that twin.)
  • Invoices and their paid/open status come from the accounting system, refreshed at least nightly.
  • Files sync from the storage folders your team already uses, filtered by the naming convention.
  • If a data source has no API, the fix is upstream (change the tool or add the glue), not a human bridge.

Freshness honesty: every view shows when it was last updated. "Synced 7 minutes ago" builds more trust than pretending to be real-time.

Step 6: Notifications that help instead of spam

Default to a weekly digest (one email: what changed, what's waiting on you) plus instant notifications for exactly two events: a new item is waiting on you, and a new invoice or deliverable landed. Everything else accumulates silently into the digest. Two rules: never notify about your internal activity (clients don't care that a task moved columns), and every notification's reply-to goes to the project owner's real inbox — a noreply address on a relationship business is self-sabotage.

Step 7: The build ladder

Three rungs, with honest effort ranges for v1 scope as specced above:

  1. Configured SaaS portal (client-portal features of your project tool, or a portal product) — days of effort. Right when your systems of record are mainstream, your branding needs are modest, and the data mapping fits the vendor's model. This is the correct starting rung for most companies.
  2. Low-code build (internal-tool builders with external user auth) — 2–6 weeks. Right when you need custom views over multiple systems the SaaS portals can't join, but the experience is still utilitarian.
  3. Custom build — 1–2 quarters including hardening. Right when the portal is part of your product experience — when clients interact with it weekly, when its polish is part of why they renew, or when tenancy/compliance requirements outgrow the lower rungs.

What pushes you up a rung: joining data across 3+ systems, clients with multi-user teams and roles, compliance isolation requirements, or the portal becoming a sales argument. What should never push you up a rung: aesthetics alone (rung 1 with your logo beats rung 3 six months late) or a feature list the inbox mining didn't produce.

Step 8: The measured pilot

Pick three friendly clients — ideally one enthusiastic, one neutral, one skeptical — and run six weeks:

  • Baseline first: from the inbox mining, you know status emails/week and "where do we stand" calls per client. Write the numbers down; this is the before.
  • Weeks 1–2: onboard the three clients personally (a 10-minute walkthrough call each). Watch where they hesitate — that's your UX backlog.
  • Weeks 3–6: answer every status email that still arrives with the answer plus a link to where it lives in the portal. This retrains gently without punishing.
  • Checkpoints at week 3 and 6: logins per client, status emails vs baseline, "waiting on you" items actually actioned and how fast, and one blunt question per client: "What did you still have to email us about?"

Go/no-go criteria, written before the pilot: go if status emails from pilot clients drop by half and each client logged in unprompted at least 3 times; no-go (iterate or stop) if clients log in only when you send them a link — that means the portal answers your questions, not theirs.

Then roll out in cohorts of 5–10 clients, not all at once — onboarding attention is what makes the habit stick.

Failure modes to watch after launch

The graveyard patterns from the top of this guide have launch-phase equivalents. Watch for them in the first two quarters, because each is recoverable early and fatal late:

  • The silent stale view. One data source's sync breaks and nobody notices until a client does. Counter: the sync jobs alert you on failure, and every view's "last updated" timestamp turns visibly amber past its freshness budget. A portal that admits "sync delayed" keeps trust; one that silently shows last week's status spends it.
  • The feature creep election. Every stakeholder lobbies their favorite OUT item back in. Counter: the scope contract plus one rule — new features enter only with inbox evidence (clients actually asking) and a metric they're expected to move.
  • The onboarding cliff. Cohort one got walkthrough calls and uses the portal; cohort four got a login email and doesn't. Counter: the 10-minute walkthrough is part of the client onboarding checklist forever, not a pilot luxury.
  • The internal bypass. Your own team answers status emails the old way because it's faster than checking what the portal shows. Counter: the team sees the same views the client sees (one click from their project tool), and the "answer + portal link" habit from the pilot stays policy.
  • The orphaned portal. The person who drove it leaves; maintenance decays; a year later it's the expensive login page again. Counter: the portal has a named owner in the org, a small quarterly budget, and its metric (status emails per client per week) stays on the ops dashboard permanently.

One more number worth tracking long-term: portal logins per client per month, split by cohort. Rising logins with falling status emails is the portal paying rent. Falling logins with steady emails means the portal answered your questions, not theirs — go back to the inbox mining, because the questions have probably changed.

What v2 earns the right to contain

Only after two quarters of held metrics does v2 open, and it is built from evidence the live portal generated, in this priority order: the OUT items clients actually asked for by name (your team logged every "can the portal also…?" request — that log is the v2 backlog, pre-sorted by frequency); the hesitation points from onboarding walkthroughs that never got fixed; and the first write capability — usually approving a deliverable or uploading a requested document — which doubles the auth and validation surface and therefore waited for proof the read-only portal earned visits. Payments, messaging and client-side dashboards remain where they started: out, until the request log says otherwise. A portal that grows this way stays the answer to real questions; one that grows by roadmap becomes the graveyard exhibit this guide opened with.

Copy & paste

Do it: the full prompt

Copy this prompt into any LLM or coding agent (Claude, ChatGPT, Cursor …) to apply this guide to your own project.

Guide: https://blackcard.dev/guides/how-to-set-up-a-client-portal
Markdown version (fetch this for the full method): https://blackcard.dev/guides/how-to-set-up-a-client-portal.md

Act as a product consultant and run the full method from the guide "How to Set Up a Client Portal" for my business.

My situation: [COMPANY: what we deliver, typical engagement length] . Active clients: [NUMBER, individuals or companies] . Systems of record: [PROJECT TOOL / CRM / ACCOUNTING / FILE STORAGE, note which have APIs] . The questions clients email us most: [LIST OR PASTE EXAMPLES] . Hours per week spent answering them: [HOURS] . Compliance constraints: [ANY] .

Execute in order:
1. Categorize my client questions (status / documents-invoices / waiting-on-me / scope / other) and estimate the distribution; confirm the top three categories with me.
2. Write the v1 scope contract: IN list and OUT list, one line of reasoning per line, strictly limited to answering the top three categories.
3. Design the information architecture: the status view (stages not percentages, next milestone, last-changed), the waiting-on-you list rules, and the document area with a naming convention.
4. Recommend auth (magic links / SSO / both) from my client profile, and specify the tenancy rules: client-org ID from session on every query, the adversarial pre-pilot test, the quarterly access review, and the offboarding procedure.
5. Map every portal element to its system of record and API, flag any element that would need manual updating, and propose the upstream fix for each flag - the portal must own zero data.
6. Set the notification defaults: weekly digest content plus the two instant events, reply-to the project owner.
7. Recommend my rung on the build ladder (configured SaaS / low-code / custom) with reasoning and an honest effort range.
8. Produce the 6-week pilot plan: 3 named client profiles, baseline metrics to record now, the week 3 and 6 checkpoint questions, and go/no-go criteria.

Ask me for anything missing before you assume it.

Scoping a portal from inbox evidence, wiring it to your systems of record and getting it through a measured pilot is exactly the kind of business software work we do at BlackCard — including knowing when the right answer is the cheap rung of the ladder. If you want help turning your support inbox into a portal spec, book a free call.