Client portals for Attio
A page 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.
Why Attio does not have this
Attio’s own help centre is the clearest statement of the gap. It is not currently possible to share lists externally; on their Pro or Enterprise plans you can add someone as a member and limit their access to one list, and that person would still be able to see all records across your workspace.
Attio help centre, Sharing and permissions, checked 19 August 2026.
So the native options are a seat that shows more than you meant, at $99 per person per month, or an export that is wrong by Thursday. The seat comparison has the arithmetic.
What the page 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 page 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 access and edit access are set separately.
- Read-only unless you decide otherwise. Mark one or two attributes editable and your client can propose a change to them. It waits for your approval before it reaches Attio.
- Yours to look at. Page views on every plan, and on Business a per-viewer access log you can export, which is the artefact you want when somebody asks who saw what and when.
Setting one up
- Connect the Attio workspace over OAuth.
- Filter the list or object to that client’s records.
- Pick a layout. Board reads well for a pipeline, table for anything scanned.
- Switch on the five or six attributes they care about, and rename any whose internal label is not the one you would use in front of them.
- Gate it to their email domain, and set an expiry if the engagement has an end.
- Read the exposure preview as the client rather than as yourself, then publish and send the link once.
The long version, with the mistakes worth avoiding, is in how to share an Attio list.
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-page. One view is one page. Several pages 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.
One limit worth planning around
Per-viewer row scoping, where one page shows each person only their own rows, is in the launch build and is not available yet. Until it ships, separate clients means separate views. If you are building something where one person must never see another’s row, wait for it rather than working around it.
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 page they confirm an email address and nothing more.
Can I give each client their own page?
Yes. One source can carry several views, so the same list becomes a different page per client, each with its own filter, its own visible attributes, and its own gate.
Can two clients share one page and see different rows?
Yes, with per-viewer row scoping, which is on the Business 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, and 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.
How current is the page?
On a paid plan we check Attio every 5 minutes up to 500 records, every 15 minutes up to 5,000, and hourly up to 50,000. Free views check every hour. Every page carries the time it last updated, and Sync now forces a check on any plan.
Can it be on our own domain?
That is what custom domains are for, and they are not shipped yet. Until they are, a view lives on a publicviews.app link. The roadmap says where that sits.
What happens when the engagement ends?
Pause or unpublish the view. The page 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 page as they would.
Publish your first view