CollabPortals

Linked Record Filtering

Restrict a linked record field's picker to a fixed list of records, or to the records linked to another field on the same form, so portal users only pick from the options that make sense.

Overview

A linked record field shows up in a portal form as a picker. By default the picker offers every record in the linked table that the user is allowed to see. Linked record filtering narrows that to a fixed list of records you choose by hand.

You pick the records once, in the portal admin. Everyone in the role gets that same list.

This is not per-user scoping. It does not look at who is signed in and it does not follow links back to your user table. To show each user only their own records, use record ownership on the table the field points at.

What It Does

Say your Contracts table has a Plan link field pointing at a Plans table of forty rows, and only three of them are currently on sale. Turn on filtering for the Plan field, tick those three, and the picker offers three options instead of forty.

The list is the same for every user in the role. It is a shortlist, not a permission boundary between one user and the next.

Where the List Applies

It applies in two places, and the second one is easy to miss:

  • The picker, on the create and edit forms. Only the records on the list are offered.
  • The read path. A link that was saved before you set the list, and points at a record you did not tick, has no name resolved for it. If that accounts for every link in the cell, the cell renders as a dash, the same as an empty one. If only some of them are off the list, the rest still show and the excluded ones are counted as "and N more".

So the list is worth setting before records are linked, not after. If an existing cell goes blank, the record it points at is off the list.

Configuring It

  1. 1

    Open the table's Fields tab

    In the portal admin, open the role you want to configure, open the main page of the table that holds the link field, and switch to the Fields tab.

    The filter belongs to the table, so on any other page of the same table it is shown but cannot be changed.

  2. 2

    Give the field Create or Edit

    Tick Create or Edit on the link field's row. The filter restricts a picker, and a picker only appears on a form the field is written on, so the setting stays hidden until one of the two is on.

  3. 3

    Open the field's settings

    Click the field's row. A panel opens on the right with that field's extra settings.

  4. 4

    Turn on Filter options and pick the records

    Switch on Filter options, headed "Restrict which records are available in this dropdown". Under Specific records, CollabPortals loads the linked table's records and you tick the ones you want offered, then save the portal. Leave it empty if you only want Filter by another field, which sits under the same switch.

    This admin list labels each record with the linked table's Airtable primary field, which is not always the same as the record name your end users see on it. Where a table has both, expect the two lists to read differently.

Turning the switch back off clears both the list and any filter by another field, and the picker goes back to offering everything the user can see.

Filtering by Another Field

The list above is fixed. Sometimes the right options depend on what the user has already chosen on the same form. Airtable calls this dynamic filtering.

Say an Invoices table has a Deal field and a Deliverables Billed field, and each Deliverable belongs to one Deal. On an invoice, only that Deal's Deliverables should be billable. Open Deliverables Billed's settings, switch on Filter options, and under Filter by another field choose Deal. The picker then offers only the Deliverables whose Deal is the one chosen on the invoice.

How it behaves on the form:

  • Until Deal has a value, Deliverables Billed can't be filled in. The field says "Choose Deal first".
  • Changing Deal empties Deliverables Billed, because the old choices belonged to the old Deal.
  • Adding an invoice from a Deal's Invoices related tab fills Deal in for you, so the picker is ready straight away, even though the Deal field itself stays hidden on that form. This works because Deal is the field linking the invoice back to the tab's record.
  • Editing an invoice works even if the role can't see Deal. The portal reads the invoice's Deal itself, so the picker still offers only that Deal's Deliverables.

It is enforced when the record is saved, not only in the picker. A Deliverable from another Deal is refused with an error, on both new and edited records. The one exception is a related tab that links straight back through the matched field: an invoice added from a Deliverable's Invoices tab is linked to that Deliverable, as any related tab links its new records, without checking its Deal.

It needs two things in your base:

  • Two link fields on the form's table. Here, Deal and Deliverables Billed on Invoices.
  • A two-way link between the two linked tables. Here, Deliverables has a Deal field and Deals has the matching Deliverables field that Airtable creates alongside it. That is Airtable's default when you add a link field. If Filter by another field is greyed out, one of these is missing.

If more than one field could be used, the setting lists each one, showing which field of the linked table it goes through.

It works alongside Specific records. With both set, the picker offers only records that pass both.

When to Use It

Use it when:

  • The linked table holds more options than the portal should offer: retired plans, closed projects, archived categories.
  • The right answer is one of a handful, and scrolling the rest is friction.
  • You want the same short list for everyone in a role.

Use something else when:

  • Each user should see only their own records. That is record ownership on the linked table, not this. The picker already respects it.
  • The options depend on another field of the same form, like "only this Deal's Deliverables". That is Filtering by Another Field, above.
  • The rule is a field value rather than a list of records, like "only Active projects". That is a record filter on the linked table, and unlike a hand-picked list it keeps up as records change.
  • Nobody should be picking from that table at all. Turn the link field's Create and Edit off in field permissions, which removes the picker rather than shortening it.

What the Picker Already Does Without It

With filtering off, the picker is not a free-for-all. It runs through the same access rules as everything else, so it offers only records in a table the role may view, narrowed by that table's record ownership and record filter, and each result is re-checked against the ownership rule before it is returned.

That is why "the dropdown shows records belonging to other people" is almost always a visibility setting on the linked table rather than a missing allowlist.

One thing the allowlist is not a substitute for. Turning a table's own View permission off keeps end users from browsing it, but it does not hide the names of its records where another table's link field already shows them: those labels still resolve, they just stop being clickable. A link field you expose is a decision to reveal the names of the records it points at, so treat it that way when the linked table holds something private.

Per Role

The list is stored per table, per role, like the rest of a table's settings. A staff role can pick from the whole table while a client role picks from three records, on the same field.

Next Steps