CollabPortals
Feature

Record Ownership: Each User Sees Only Their Own

Point a table at the link that says who owns a record, and each portal user sees only their rows. Works through lookups too, for tables that reach your user table indirectly.

This is the question every client portal has to answer on day one: how do I make sure client A never sees client B's records?

Record ownership answers it structurally, using the links already in your base.

What it does

Per table and per role, record visibility is one of two settings:

  • Only their own records: each signed-in user sees the rows they own
  • Everyone: the table shows all records the role's other permissions allow

Ownership is defined by an ownership field, which is the linked-record field pointing at your user table. When a table has more than one such link, Owner and Assignee for example, pick the one that decides: left alone, the first link in Airtable field order is used.

Why it matters

The alternative approaches all leak eventually. Separate views per client multiply with every new client. A filter on a client name field breaks the day two clients share a name or someone edits the cell. A portal per customer is a portal per customer.

Ownership scopes by identity instead. The signed-in user is a row in your user table, and the link is what ties a record to that row, so the rule holds however many clients you add and whatever they are called.

Because it is enforced before records are sent to the browser, an unowned record is not filtered out on screen. It never arrives.

Ownership through a lookup

Not every table links to your user table directly. A Structures table might link to Cities, and Cities to Members, so the person is two hops away.

A table can own records through an Airtable lookup field that reaches the user table indirectly, which means an indirectly linked table can still be scoped per user without adding a denormalized link column to your base.

A lookup is never selected for you. You opt into it explicitly, because a lookup reaching the user table by accident is exactly the kind of thing that should not silently become a permission.

How it works

Set record visibility on the table's Access tab, per role, and pick the ownership field. Then open the portal as a real user and confirm you see their rows and only their rows.

Ownership composes with the rest: it narrows to the user's records, and a record filter can narrow further to, say, the ones still open. The record ownership guide covers both, including the lookup case.

Who it is for

Anything where the data is per person: freelancer portals, client portals, sales rep portals where each rep works their own accounts, and membership portals where a member sees their own record and nobody else's.

Try it on your own base

Connect Airtable, build a portal, and share it. Seven days free, no card needed.