The client portal
Clients want to see what's happening without learning your internal tooling. The Portal gives them a clean read-only view without pulling them into the operator dashboard.
What the client sees
A logged-in portal user gets four pages:
- Overview: the AI Visibility Score, recent trend, and what changed this period.
- Visibility: Share of Model by AI model, by keyword.
- Citations: the threads where their brand has been seeded and what's landed.
- Reports: the reviewed reports you publish to them.
That's it. No team management, no billing, no proposals queue, no other clients. Read-only by design.
How access works
You issue a magic link from /dashboard/clients/[id]/portal. The token is SHA256-hashed in the database and validated by middleware on every request. Cookies are httpOnly, sameSite: lax, secure in production, and explicitly host-only: so the client's session can't leak between subdomains.
Invite links use Outrigger's standard portal address, a per-client subdomain where that is enabled, or your own verified domain once Outrigger has added it to hosting (see the next lesson).
When to invite a client
Three rules of thumb:
- After the first audit completes. Show them the baseline. Don't wait until you have wins.
- After at least one citation has landed. A portal with empty citations confuses non-technical clients.
- Once you have a reporting rhythm. If you publish monthly they'll expect it, and they'll notice a skipped month.
You can also keep the portal off entirely: some clients prefer a Loom and a PDF. The settings UI lets you turn portal access on or off per client.