Watch our latest video available on Youtube.
Tutorials/Tutorial

How to Build a Client Portal with Airtable and Softr

Every services business eventually hits the wall: clients want visibility into their projects, files, and invoices, but you can't give them Airtable access — they'd see other clients' data. The answer is a branded client portal: Airtable as the backend, Softr as the frontend, with authentication and row-level permissions that show each client only their own data. This guide is the full build, from schema to launch — including the permission model that prevents data leaks.

Intermediate17 min readSep 9, 2026

Every services business eventually gets asked the same thing: "Can I see what's happening with my project?" Most agencies, consultancies, and ops teams handle this with weekly status emails, ad-hoc Loom videos, or one-off shared docs — and burn 4–6 hours/week on it. A real client portal replaces that hour-by-hour drip with a self-service experience clients actually like.

The fastest way to build one in 2026 is Airtable as the backend and Softr as the frontend. This guide is the full build: schema, authentication, row-level permissions, design, and the security checks that prevent data leaks. For our shorter overview, see how to build a client portal.

Why Airtable + Softr

Other portal-building options exist (Stacker, Noloco, Glide), but Softr wins for most client-portal use cases in 2026 because:

  • Airtable-native. Deep integration that "just works" — no API glue code.
  • Template library. Dozens of portal templates as starting points.
  • Authentication and permissions built in. Logged-in-user filters are first-class.
  • Polish out of the box. Designs look good without designer effort.
  • Predictable cost. $29–$269/month covers most small-to-medium portal use cases.

You build a custom portal in code only when you have requirements Softr genuinely can't meet — pixel-perfect custom UI, complex multi-tenant logic, or a brand requirement for fully bespoke front-end.

Step 1: Design the Airtable Schema

Before touching Softr, get the Airtable schema right. A client portal typically needs:

TablePurpose
ClientsOne record per client. The Softr user table.
ProjectsOne record per engagement, linked to Clients.
Tasks or DeliverablesProject-level work items.
FilesDocuments shared with the client (or attached to Projects).
InvoicesBilling records, linked to Clients and Projects.
Messages (optional)Client-portal communication log.

Critical fields on every table

Every table that clients view must have a clear "who can see this?" field that maps to the Clients table:

  • Projects.Client — linked record to Clients.
  • Tasks.Client — formula or rollup from Projects → Client (so tasks inherit the client).
  • Files.Client — same pattern.
  • Invoices.Client — direct linked record.

The Client field is the security boundary. Every Softr block filters on it.

Clients table essentials

FieldPurpose
EmailThe login identifier — required by Softr
NameDisplay name in the portal
LogoOptional — for branded portal pages
Primary ContactSingle line text
StatusActive / Inactive / Archived — drives Softr access
Plan / TierIf different clients see different features

Step 2: Connect Softr to Airtable

  1. In Softr, click Create New App and choose a Client Portal template (or start blank).
  2. Settings → Data sources → Connect Airtable.
  3. Authenticate with your Airtable account and grant access to the workspace.
  4. Pick the bases you'll use.
  5. Softr generates internal data references for every table.

Step 3: Set Up User Authentication

  1. In Softr, go to Users → User groups.
  2. Create a user group called Clients. Source = Airtable, Table = Clients, Email field = Email.
  3. Add a Login page and a Sign Up page to your Softr app (most templates include them).
  4. Enable email login (Softr handles passwords; the password isn't stored in Airtable).

Now when a client signs up:

  • Softr creates the password (stored in Softr's auth system).
  • Their email matches a row in your Clients table.
  • They're authenticated as a member of the Clients group.

For first-time users, the cleanest flow is to pre-create the Clients table row when a project is sold, then send the client a Softr invitation link.

Step 4: Build the Portal Pages

Most portals need three to five pages:

Dashboard (logged-in user's home)

  • Welcome block with the client's name.
  • List block: Active Projects filtered to Project.Client = Logged-in User.
  • List block: Recent Files filtered to File.Client = Logged-in User.
  • List block: Open Invoices filtered to Invoice.Client = Logged-in User.

Projects page

  • List block with all projects, filtered to logged-in user.
  • Each row links to a Project Detail page.

Project detail page

  • Detail block showing project name, status, dates, summary.
  • List block: Tasks filtered to the project.
  • List block: Files filtered to the project.

Files page

  • List block of all files, filtered to logged-in user.
  • File names link to download/preview.
  • Form block for uploading new files back to the client's File records.

Invoices page

  • List block of invoices, filtered to logged-in user.
  • Status badges (Paid, Outstanding, Overdue).
  • Link to PDF or to a Stripe payment link.

Step 5: The Logged-In-User Filter

This is the single most important setup step. On every list and detail block:

  1. Click the block to edit.
  2. Open Filters.
  3. Add a filter: <Client field> equals Logged-in User → Email.

If the filter is missing on any block, that block leaks data — every client sees every other client's records. Verify this on every page before launch.

Linked-record auth (alternative)

For more complex setups, instead of matching emails, link the Clients table row to the logged-in user via Softr's user record and filter on the linked record. Slightly more robust against email-collision edge cases. Use whichever Softr's current templates default to.

Step 6: File Uploads (Two-Way)

To let clients upload files back through the portal:

  1. Add a Form block to the Files page.
  2. Configure it to create a new record in the Files table.
  3. Map the File attachment field to a Softr file-upload input.
  4. Set hidden field defaults: Client = Logged-in User, Uploaded At = Now(), Status = "Pending Review".
  5. Save.

On submit, the file uploads to Airtable's attachment field and the record appears in your operations view immediately.

Step 7: Notifications

Connect the portal to your operations workflow with Airtable automations:

  • New file uploaded by client: Slack notification to the account manager.
  • Invoice marked Overdue: Email to client with a payment link.
  • Project status changes to Complete: Email to client with a satisfaction survey.

See our Airtable automation guide for the full pattern library.

Step 8: Brand the Portal

Softr's design controls cover most branding needs:

  • Logo and favicon.
  • Color scheme matching your brand.
  • Custom fonts (Google Fonts library).
  • Custom domain (portal.yourcompany.com) — set up via your DNS.

For per-client white-labeling (each client sees their own logo), use the Clients table's Logo field as the page header source — Softr renders it dynamically.

Comparison: Softr vs Alternatives

ToolStrengthsWhen to Choose
SoftrAirtable-native, polished templates, easy authMost client portal use cases
StackerDeeper relational logic, more dev-friendlyComplex permissions, more custom UI
NolocoMore flexible blocks, better formsMid-complexity with non-standard requirements
GlideMobile-first, broader data sourcesMobile-primary use cases
Custom (Next.js + Airtable API)Total controlProduction SaaS where portal is product

For 90% of services-business client portals, Softr is the right answer.

Security Checks Before Launch

The single most important pre-launch checklist:

  1. Test as Client A. Log in, browse every page. Verify you see only Client A's data.
  2. Test as Client B. Log in, browse every page. Verify zero overlap with Client A.
  3. Test as a logged-out user. Verify protected pages redirect to login.
  4. Test the URL manipulation attack. As Client A, copy the URL of a Project Detail page, modify the record ID in the URL, and try to access Client B's project. Softr's filters should block this.
  5. Test file uploads. Confirm uploaded files land on the right client's record.
  6. Test password reset. Confirm the flow works end-to-end.

If any of these fails, do not launch. Fix the leak and re-test.

Common Mistakes

Mistake 1: Forgetting the logged-in-user filter on a block. The most common security mistake. Audit every block.

Mistake 2: Storing client passwords in Airtable. Don't. Softr manages auth — Airtable should only hold profile data.

Mistake 3: Granting Airtable workspace access to clients. Defeats the point. Clients access via Softr only.

Mistake 4: One Clients table that mixes prospects and current clients. Use Status to filter, or split tables. Prospects shouldn't see portal pages.

Mistake 5: Launching without monitoring. Set up an automation that alerts you if a client logs in for the first time, uploads a file, or hits a 404 — catch UX issues early.

Troubleshooting

Client can't log in. Email doesn't match the Clients table (case sensitivity, typos), or the password reset email went to spam.

Client sees an empty dashboard. The logged-in-user filter is too strict — maybe filtering on a field that's empty for that client. Test the filter against a known record.

File upload fails. File too large (Softr/Airtable have limits), or the field mapping is wrong. Confirm the form block's field is mapped to an Attachment field in Airtable.

Page loads slowly. Softr fetches data on every page load. For large tables (1000+ rows), use Softr's pagination or filter aggressively.

Two clients with the same email. Email is the login key — duplicates break auth. Add validation on the Clients table to prevent this.

Next Steps

A working client portal is one of the highest-ROI builds a services business can ship — it eliminates a recurring weekly time sink and improves client satisfaction in ways clients notice. Once the portal is live, the natural extensions are:

  • Adding a messaging or comment layer for in-portal communication.
  • Connecting the portal to your billing system for self-service invoice payment.
  • Adding a knowledge base or onboarding library scoped per client tier.

For broader patterns, see our build CRM in Airtable guide, client onboarding with Make, reporting dashboards guide, and permissions guide. For a custom client portal build done by our team, get in touch.

Frequently Asked Questions

Common questions about this tutorial.

Ready to Transform Your Business Operations?

Join 100+ companies that have automated their way to success. Get started today and see the difference.