Client portals for Attio
A view per client, built from the pipeline you already keep.
Most people searching for an Attio client portal want one thing: show this client their records and nothing else, without buying them a seat. That is a filtered view, a set of attributes you switched on, and a gate.
What the view is
Not an application. A web page, rendered from your Attio records, that you control down to the attribute.
- Filtered to one client. Point the view at a list, or at an object with a filter such as company is Acme. Membership follows the filter, so a new deal appears on their view at the next check and a closed one comes off it.
- Only the attributes you switch on. Everything starts hidden. Margin, internal owner and the note about the renewal stay on our side and are never sent to the browser.
- Gated how the relationship deserves. A password, their email domain, named addresses, an expiry date, or several at once.
- Read-only unless you decide otherwise. Mark one or two attributes editable and your client can change them. By default the change waits for your approval before it reaches Attio; a view can instead apply it straight away, with the same checks and a record of what it replaced.
- Yours to look at. Visits on every plan, and on Pro a per-viewer access log you can export, which is the artefact you want when somebody asks who saw what and when.
The step-by-step version, with the mistakes worth avoiding, is how to share an Attio list. Why a seat is not this, in Attio’s own words and with the arithmetic, is the seat comparison.
| Project | Stage | Due |
|---|---|---|
| Website rebuild | In build | 12 Mar |
| Brand refresh | Delivered | 28 Feb |
| SEO retainer | In build | Monthly |
| Analytics audit | Not started | – |
The three controls
What is visible, who may open it, and what they may change. Every view is those three decisions and nothing else.
- arr_2026_committed→Committed
- stage
- internal_owner
- margin_pct
- renewal_risk_score
- csm_notes_raw
This view is limited to specific people. Enter your email.
What it is not
The word portal carries expectations, and it is cheaper to disappoint them here than after you have built something on it.
- There are no logins for your client, which is the point, and it also means no per-client settings screen, no saved preferences, and no account for them to lose the password to.
- It is not multi-view. One view is one view. Several views means several views and several links, and there is no navigation between them yet.
- No file uploads, no forms, no record creation. A view publishes the records your filter already matches.
- One hop. A view shows a list’s records and their direct attributes, not a chain of related objects.
- No custom logic or roles. If you need an application, Softr, Stacker, Pory and Jet Admin build them, and that comparison says when they are the better answer.
Questions
Does my client need an Attio seat?
No. They open a link. There is no account with us and no seat in your workspace. On a gated view they enter a password or an email address, and nothing more.
Can I give each client their own view?
Yes. One source can carry several views, so the same list becomes a different view per client, each with its own filter, its own visible attributes, and its own gate.
Can two clients share one view and see different rows?
Yes, with per-viewer row scoping, which is on the Pro plan. It matches one attribute on each record against the address the viewer confirmed, so the same link is a different set of rows for each of them. It is built on a verified address, so email verification stays on while it is enabled, and a viewer who has confirmed nothing sees no rows rather than all of them.
Can they update anything?
Only the attributes you mark editable. By default their change does not reach Attio on its own. It waits in your dashboard beside the value Attio holds now, and it is written when you approve it. If you would rather not review each one, the view can apply them straight away and record what changed.
What happens when the engagement ends?
Pause or unpublish the view. The view stops resolving on the next request and every viewer session is signed out with it. The cached rows stay on our side, unreachable while the view is down, and your configuration is kept, so the same page can come back if the client does.
Build one for a real client and look at it.
The free plan covers one view of up to 500 records and does not expire. Connect Attio, filter to one client, and read the view as they would.