Agencies and consultants often use Airtable to manage client work: projects, tasks, deliverables, approvals, files, invoices, and status updates. Airtable works well for the internal team, but it is not always the right place to send clients.
Clients usually do not need full Airtable access. They need a simpler place where they can see the records that matter to them, submit updates, upload files, review progress, and approve work.
That is where a client portal helps.
With miniExtensions Portal, you can build a client-facing portal on top of your Airtable base. Airtable stays as your source of truth, while each client gets a controlled front end where they only see the records connected to them.
Why build a client portal on Airtable?
If you already manage projects in Airtable, a portal lets you keep your existing workflow instead of moving client-facing work into another tool.
A client portal can help you:
- Share project status without sending manual updates
- Let clients upload files directly into Airtable
- Collect change requests in a structured way
- Let clients review deliverables or approvals
- Show only the records connected to each client
- Avoid giving clients access to your Airtable base
- Reduce back-and-forth across email, Slack, and shared docs
This is especially useful for marketing agencies, design studios, consultants, recruiters, accountants, operations teams, and service businesses that manage recurring client work.
Example Airtable setup
A simple agency client portal might use these Airtable tables:
ClientsProjectsTasksRequestsApprovalsInvoices
The Clients table should contain one record per client or client contact. This is the table your portal users log in through.
The other tables should be linked back to the relevant client. For example, each project record can be linked to a client record, each task can be linked to a project, and each file or approval can be linked to the client or project it belongs to.
This linked structure is what lets miniExtensions show the right records to the right logged-in client.
How the portal works in miniExtensions
When you create a Portal in miniExtensions, you select a users table. For this use case, that is usually your Clients table.
Each client logs in through the portal and sees the records connected to their user record. You can then add portal tables for projects, tasks, files, requests, or approvals.
Your clients do not need Airtable accounts. They also do not need miniExtensions accounts. A miniExtensions account is only needed by the builders who create and configure the portal.
You can share the portal using a regular URL, magic links, email login links, an embed on your website, or a custom URL.
What clients can do in the portal
A client portal can be as simple or as advanced as you need.
For example, clients can:
- View active projects
- Check task status
- Open project details
- Submit a new request
- Upload files or reference documents
- Review deliverables
- Update contact information
- See invoices or payment status
- Add comments or notes
- Access external links from the portal menu
For records that clients should update, you can configure child forms. A child form controls which fields the client can view or edit when they create or update a record.
For example, a client might be allowed to submit a new change request with fields like:
- Request title
- Description
- Priority
- Attachment
- Related project
But they should not edit internal fields like:
- Assigned team member
- Internal estimate
- Profit margin
- Internal notes
miniExtensions lets you expose only the fields that make sense for the client-facing workflow.
Using views to control access
A good client portal is not just a list of records. It should show the right information at the right stage.
You can use Airtable views and miniExtensions portal views to control what clients see. For example:
- Active projects
- Completed projects
- Open tasks
- Pending approvals
- Approved deliverables
- Submitted requests
You can also use conditional tables or conditional views when different types of clients need different access. For example, a premium client might see a “Strategy Dashboard” table, while standard clients only see projects and requests.
This lets you keep one portal instead of creating separate portals for every client type.
Let clients update their own profile
The Portal profile feature lets a logged-in user access their own record from the users table. For a client portal, this can be useful for letting clients update fields such as:
- Company name
- Primary contact
- Billing contact
- Email address
- Phone number
- Address
- Communication preferences
You decide which fields are shown and which fields are editable. After a user updates their profile, the portal refreshes the tables and views available to them based on the latest data.
When to use a Form instead
A portal is best when clients need to see several records or return repeatedly.
If the client only needs to update one specific record, a miniExtensions Form may be enough. For example, you can send a client a form link to update one project brief, submit one approval, or upload files for one record.
Use a Portal for ongoing client access. Use a Form for one-off submissions or single-record updates.
Best practices for agency portals
Start with the client experience. Most clients do not want to browse your whole internal structure. They want quick answers.
A strong first version might include:
- A projects table
- A requests table
- A files table
- A profile page
- A short welcome message
- A simple menu with only the most important items
Keep internal fields hidden. Use client-friendly field names. Avoid exposing internal workflow stages unless clients need to know them.
Also choose your users table carefully. Once a portal is created, the users table cannot be changed. If you later need a different users table, you would create a new portal.
Build your Airtable client portal with miniExtensions
If your agency already runs on Airtable, you do not need to move client collaboration into another system. You can keep Airtable as the database and use miniExtensions to create a client-facing portal on top of it.
Clients get a clean place to view and update their work. Your team keeps using Airtable. Everyone stays aligned.
Start with miniExtensions Portal and turn your Airtable base into a client portal your clients can actually use.
How to set this up in miniExtensions
1. Create or prepare your Airtable base.
Start with a Clients table. This will be the Portal users table. Each client or client contact should have one record.
Add fields such as:
- Client name
- Email address
- Company
- Client type
- Account manager
- Active client checkbox or status
- Any internal notes you do not plan to show in the portal
Then create the tables clients should access, such as:
ProjectsTasksRequestsApprovals
Each of these tables needs a linked record field pointing back to the Clients table. This is how miniExtensions knows which records belong to which logged-in client.
2. Create the Portal.
In miniExtensions, go to Create Extension and choose Portal.
Select the Airtable base you want to use. Select a data table (e.g. Projects) and then the field that links back to the users table (e.g. Client). Portal login is enabled automatically, and the login settings are managed in Users & Login.
Use the client email field as the login field. If you want extra control, add another login field such as a client code or password field, or use email verification.
Important: choose the users table carefully. After a Portal is created, the users table cannot be changed. If you need a different users table later, create a new Portal.
3. Create useful views.
Create Airtable views for the client-facing workflow. Good examples:
- Active Projects
- Completed Projects
- Open Tasks
- Pending Approvals
- Submitted Requests
- Uploaded Files
You can then use these views within the portal to define filters and sort conditions, by going to the Table settings -> Views -> Filter & Sort.
4. Configure what clients can edit.
For views where clients should not be able to update any data (e.g. Completed Orders), you can disable editing entirely.
For ‘in progress’ views, i.e. where clients should be able to update, configure the child form and expose only the right fields. For example, in Requests, show:
- Request title
- Description
- Priority
- Related project
- Attachment
Hide internal fields such as:
- Assigned team member
- Internal priority
- Internal notes
- Margin
- Internal status logic
5. Let clients submit new requests.
In the Requests Portal table, enable record creation through the child form. Any new records will be linked to the logged-in user without any special configuration.
6. Add a client profile page.
In the Portal configuration, go to Profile and enable Show logged in profile.
Configure the profile child form so clients can update safe fields such as:
- Contact name
- Phone
- Billing contact
- Address
- Communication preferences
This can help you save time by letting users update their own details, as needed. Make sure to keep internal fields read-only or hidden.
7. Add conditional access if needed.
If different client types should see different sections, use conditional tables or conditional views.
Go to:
Portal configuration -> Tables -> select table -> Conditional Table
or:
Portal configuration -> Tables -> select table -> Views -> select view -> Conditional View
Add conditions based on fields in the Clients users table, such as plan, client type, region, or active status.
8. Share the portal.
Go to Share and choose the sharing method:
- Copy URL to send the portal link manually
- Get Magic Link to create direct login links for each client
- Email Login Links to send login links to users in the clients table
- Copy Embed Code to embed the portal on your website
- Customize Extension’s full URL if you want a custom URL
Test the portal by logging in as a sample client and confirming they only see their own records.