Setting Up Your Airtable Base
How to structure your Airtable base so CollabPortals can connect users to their data. Covers user tables, linked records, and common base patterns.
How CollabPortals Connects Users to Data
CollabPortals needs to know two things about your Airtable base:
- Who is this user? It matches the portal user's email to a record in your "user table."
- What data belongs to them? It follows linked record fields from other tables back to that user record.
If your base doesn't have these two pieces in place, users will be able to log in but won't see any data. This guide walks through exactly how to set things up.
The User Table
Every CollabPortals portal needs a user table: a table where each row represents one person who will use the portal. This table must have an email field.
Common names for this table: "Contacts", "Clients", "Users", "Team Members", "Students", "Vendors."
At minimum, the user table needs:
| Field | Type | Purpose |
|---|---|---|
| Name | Single line text | Display name for the user |
| How CollabPortals identifies the user (must be unique per person) |
You can have as many other fields as you like on the user table (phone, company, role, notes, etc.). The email field is the only one CollabPortals requires.
If you already have a table with one row per person and an email column, that's your user table. You don't need to create a new one.
Linking Data to Users
Here's the part that trips people up: for CollabPortals to filter a table's records per user, those records need to be linked back to the user table.
In Airtable, this means adding a "Link to another record" field (the multipleRecordLinks field type) that points to your user table. Each record then gets linked to the user it belongs to.
This is the mechanism for per-user filtering, but it is not the only way a table can appear in a portal. A table with no link to the user table can still be shown to everyone who can view it, or nested inside a parent record as a related tab. The sections below cover when to use each.
Example: A Project Management Base
Say you have three tables:
| Table | What it stores |
|---|---|
| Contacts | One row per person (the user table) |
| Projects | Client projects |
| Tasks | Individual tasks within projects |
For a portal user to see their projects, the Projects table needs a linked record field pointing to Contacts:
| Projects Table | ||
|---|---|---|
| Project Name | Client (linked to Contacts) | Status |
| Website Redesign | Alice Smith | In Progress |
| Brand Strategy | Alice Smith | Complete |
| Mobile App | Bob Jones | In Progress |
When Alice logs in to the portal, CollabPortals sees that her email matches "Alice Smith" in Contacts, then shows her only the projects linked to her record: "Website Redesign" and "Brand Strategy." She never sees Bob's "Mobile App."
What About Tasks?
Tasks usually belong to a project rather than to a person directly. You have two ways to surface them, and the right one depends on how you want users to reach them.
Option 1: Show tasks inside each project. This is the natural fit for one-to-many data: tasks under a project, line items under an order, reports under a property. If your Tasks table links to Projects, you can show a project's tasks as a tab on that project's record. A user opens a project in the portal and finds a "Tasks" tab next to the details, scoped to just that project's tasks. The Tasks table does not need its own link to the user table here: it inherits its scope from the project the user opened. Turn this on with the Show as related tab option on the Project's Tasks field in your portal's table settings.
Option 2: Give tasks their own direct link. If you want a standalone Tasks page in the sidebar that filters per user, where each user sees only their own tasks across every project, the Tasks table needs its own linked record field pointing to Contacts. For a standalone page's per-user filter, CollabPortals does not follow chains through intermediate tables, so a Tasks-to-Projects-to-Contacts chain alone does not scope a standalone Tasks page.
| Tasks Table | |||
|---|---|---|---|
| Task Name | Project (linked to Projects) | Contact (linked to Contacts) | Due Date |
| Design homepage | Website Redesign | Alice Smith | 2026-04-01 |
| Write copy | Brand Strategy | Alice Smith | 2026-04-15 |
| Build API | Mobile App | Bob Jones | 2026-03-30 |
Related tabs follow the parent's link for you, so child tables like Tasks or Order Lines rarely need their own link to the user table. Reach for a direct link when you want a standalone, per-user page in the sidebar.
Common Base Patterns
Simple: Every Table Links to Users
The most straightforward setup. Every table has its own linked record field pointing to the user table.
- Contacts (user table)
- Projects links to Contacts
- Invoices links to Contacts
- Documents links to Contacts
With Cross-Table Links
Tables can link to each other for your own workflows (Tasks to Projects, for example), but every table that should filter by user still needs its own direct link to the user table.
- Contacts (user table)
- Projects links to Contacts
- Tasks links to Contacts (and also links to Projects for your own use)
- Invoices links to Contacts
- Notes links to Contacts (and also links to Projects for your own use)
The links between tables (Tasks to Projects, Notes to Projects) are useful in Airtable but are not what CollabPortals uses for filtering. The links to Contacts are what matter.
What Happens Without Links
A table with no link to the user table can still appear in a portal, in one of two ways:
- As a standalone page that shows everyone the same records. Turn the table on and every user who can view it sees every record. This is fine for reference tables (like a "Categories" or "Statuses" table) that everyone should see. There is no per-user filtering, because there is no link to filter on.
- As a related tab nested inside a parent record. The tab shows only the children of the record the user opened (a project's tasks, an order's line items), following the parent's link. The child table needs no link of its own to the user table.
If you turn a table on as a standalone page without a link to the user table, make sure it doesn't contain sensitive data. Every portal user who can view it will see every record. A related tab is the safer choice when records belong to a specific parent, since it only ever shows that parent's children.
Setting Up Links in Airtable
If your base doesn't have the right links yet, here's how to add them:
- 1
Open the table that needs linking
Go to the table where records should be filtered per user (e.g., Projects).
- 2
Add a Link to another record field
Click the "+" button to add a new field. Choose "Link to another record" as the field type. Select your user table (e.g., Contacts) as the target.
- 3
Link existing records
Go through your existing records and link each one to the correct user. Click the cell in the new linked record column and select the right person.
- 4
Link new records going forward
When adding new records in Airtable, always link them to the appropriate user. CollabPortals auto-links records created through the portal, but records created directly in Airtable need to be linked manually.
Checklist Before Creating Your Portal
Before you create your portal, confirm:
- You have a table with one row per person and an email field (your user table)
- Every person who needs portal access has a record in the user table with their email address
- Every table that needs a standalone, per-user page has its own linked record field pointing directly to the user table
- Child tables you'd rather show inside a parent record (tasks under a project, line items under an order) link to that parent, ready to surface as a related tab
- Existing records are linked to the correct users
- Reference tables and standalone pages that everyone should see don't contain sensitive data
Common Mistakes
"My users can log in but see no data" The most common cause: the data tables aren't linked to the user table. Add a linked record field and connect the records.
"Users see all records, not just their own" The linked record field exists but the records aren't actually linked to anyone. Open Airtable and check that each record has a value in the linked record column.
"I added a linked record field but it points to the wrong table" The linked record field must point to the user table you selected when creating the portal. If your user table is "Contacts," the link should go to "Contacts," not to some other table.
"Some tables filter correctly but others don't" Each table needs its own direct link to the user table. If Projects filters correctly but Tasks doesn't, check that Tasks has its own "Link to another record" field pointing to Contacts. Linking Tasks to Projects is not enough.
Next Steps
- Creating a Portal - Build your portal once your base is ready
- Table Permissions - Control which tables are visible
- Linked Record Filtering - Restrict dropdown options in linked record fields
- Record Filtering - Limit which rows a portal shows
- Related Tabs and Nested Tables - Surface a linked table as a related tab or a page