Watch our latest video available on Youtube.
Tutorials/Use Cases

How to Build a Client Portal with Airtable and Softr

Build a branded client portal where each customer sees only their own projects, documents, and invoices — using Airtable as the database and Softr as the frontend. No code required.

Intermediate45 min readAirtableSoftrMake

Your clients are emailing you for status updates. They're asking where to find that invoice you sent last month. They want to know if the latest deliverable is ready. Every one of those emails costs you time — and makes your business feel less professional than it is.

A client portal fixes this. It gives each client a branded login where they see only their projects, documents, invoices, and messages. No more digging through email threads. No more resending files. No more "just checking in" messages.

The problem? Custom portal development costs $50,000+ and takes months. Platforms like Salesforce Experience Cloud or custom React apps require developers and ongoing maintenance budgets most service businesses don't have.

There's a better way: Airtable as your database + Softr as your frontend. This combination lets you build a fully branded, permission-controlled client portal in days — not months — without writing a single line of code.

In this guide, you'll learn:

  • How to structure your Airtable base for portal-ready data
  • How to connect Softr and set up user authentication
  • How to configure row-level permissions so each client sees only their own data
  • How to add project tracking, document sharing, and invoicing
  • How to automate notifications with Make

What You'll Build

By the end of this guide, you'll have a working client portal with:

  • Branded login page at your custom domain (e.g., portal.yourcompany.com)
  • Project dashboard showing each client their active projects, milestones, and status
  • Document hub where clients download contracts, reports, and deliverables
  • Invoice section with payment history and outstanding balances
  • Support request form that creates tickets directly in your Airtable base

Each client logs in and sees only their own data. Your team manages everything from Airtable. Updates sync to the portal in real time.

What You'll Need

Tool Plan Required Cost
Airtable Team plan or higher $20/user/month (your team only — clients don't need Airtable seats)
Softr Professional plan or higher $139/month (includes 100 portal users, custom domain, remove branding)
Make (optional) Free plan to start $0–$9/month for basic automations

Total cost for a 5-person team with up to 100 clients: ~$239/month. Compare that to $50,000+ for custom development.

Why Softr over Airtable's native Portals? Airtable launched its own Portals feature, but it starts at $120/month for just 15 external users and offers limited design customization. Softr gives you 100 users on Professional, full white-labeling, custom domains, and far more control over the user experience.

Step 1: Design Your Airtable Base Structure

Your base architecture determines whether your portal works smoothly or becomes a maintenance headache. Spend time here — changing structure after connecting Softr requires reconfiguring every linked block.

Required Tables

Create a single base called Client Portal with these five tables:

1. Clients (your portal users)

Field Name Field Type Purpose
Client Name Single line text (primary) Display name in portal
Email Email Must match Softr login email — this is how permissions work
Company Single line text Organization name
Phone Phone number Contact info
Status Single select: Active, Onboarding, Inactive Filter who sees what
Projects Linked record → Projects All projects for this client
Invoices Linked record → Invoices All invoices for this client

2. Projects

Field Name Field Type Purpose
Project Name Single line text (primary) e.g., "CRM Implementation"
Client Linked record → Clients Who this project belongs to
Client Email Lookup → Client → Email Used for Softr filtering
Status Single select: Not Started, In Progress, Review, Complete Current stage
Start Date Date Project timeline
Due Date Date Project deadline
Progress Percent Completion percentage
Description Long text Project scope/brief
Deliverables Linked record → Documents Attached deliverables

3. Documents

Field Name Field Type Purpose
Document Name Single line text (primary) e.g., "Q1 Report - Final"
Project Linked record → Projects Which project this belongs to
Client Linked record → Clients Direct client link for filtering
Client Email Lookup → Client → Email Used for Softr filtering
File Attachment The actual document
Type Single select: Contract, Report, Deliverable, Invoice, Other Category
Upload Date Created time Auto-set
Notes Long text Version notes or description

4. Invoices

Field Name Field Type Purpose
Invoice Number Autonumber or formula (primary) e.g., "INV-001"
Client Linked record → Clients Who to bill
Client Email Lookup → Client → Email Used for Softr filtering
Amount Currency Invoice total
Status Single select: Draft, Sent, Paid, Overdue Payment status
Issue Date Date When sent
Due Date Date Payment deadline
Payment Link URL Stripe/PayPal link
PDF Attachment Invoice document

5. Support Tickets

Field Name Field Type Purpose
Subject Single line text (primary) Ticket title
Client Linked record → Clients Who submitted it
Client Email Lookup → Client → Email Auto-set from logged-in user
Priority Single select: Low, Medium, High Urgency level
Status Single select: Open, In Progress, Resolved Current state
Description Long text Issue details
Created Created time Auto-set
Assigned To Collaborator Internal team member

The Critical Design Pattern: Email-Based Filtering

Notice every table has a Client Email field (lookup from the Clients table). This is the linchpin of the entire portal. Softr identifies logged-in users by their email address and filters records to show only rows where the Client Email field matches the current user's email.

If you skip this pattern, clients will see each other's data. Every table that displays in the portal needs a path back to the client's email address.

Architecture Tips

  • One base, not multiple. Keep all portal tables in a single Airtable base. Cross-base relationships in Airtable require sync, which adds complexity and latency.
  • Use linked records, not duplicated data. Link Projects → Clients rather than typing the client name in a text field. This ensures updates propagate and enables lookups.
  • Create portal-specific views. In each table, create a view called "Portal View" that filters out internal-only records (e.g., only show Status ≠ "Draft" for Invoices). Softr connects to specific views, not entire tables.

Step 2: Set Up Softr and Connect Airtable

Create Your Softr App

  1. Sign up at softr.io and create a new app
  2. Choose "Start from scratch" or select the Client Portal template to get a head start
  3. Name your app (e.g., "YourCompany Portal")

Connect Airtable as a Data Source

  1. In the Softr sidebar, click Data Sources
  2. Click Connect Data Source → select Airtable
  3. Authenticate your Airtable account and grant access to your Client Portal base
  4. Softr will import your tables and fields automatically

Set Up Your Custom Domain

On the Professional plan ($139/month), you can:

  1. Go to Settings → Domain
  2. Add your custom domain (e.g., portal.yourcompany.com)
  3. Add the CNAME record Softr provides to your DNS settings
  4. Enable SSL (automatic)

This gives clients a professional URL with your branding — no "softr.app" in the address bar.

Step 3: Configure User Authentication

Set Up the Users Table

  1. In Softr, go to Users → User Management
  2. Connect your Clients table as the users source
  3. Map the Email field as the login identifier
  4. Map Client Name as the display name
  5. Map Status field for conditional access (optional — hide portal for "Inactive" clients)

Choose an Authentication Method

Softr supports several login methods:

Method Best For Setup Effort
Magic link (email) Most client portals — no password to remember Low
Email + password Clients who prefer traditional login Low
Google OAuth Teams already in Google Workspace Medium
Microsoft OAuth Enterprise clients on Microsoft 365 Medium
SAML SSO Enterprise with strict security requirements High (Enterprise plan)

Our recommendation: Start with magic link authentication. Clients enter their email, receive a login link, and they're in. No passwords to reset, no friction. You can layer on additional methods later.

Add User Groups

Create user groups to control what different users see:

  1. Clients — default group for all portal users
  2. VIP Clients — optional group with access to premium features
  3. Internal Team — your staff, who see admin-level data

In Softr, assign users to groups based on a field in your Airtable Clients table (e.g., a "Tier" single select field).

Step 4: Build Your Portal Pages

Page 1: Client Dashboard (Home)

This is what clients see after logging in — a personalized overview of their account.

Add these blocks:

  1. Header block — your logo, navigation, and a "Welcome, {user name}" greeting
  2. Stats block — connected to Projects table, showing counts (Active Projects, Documents Uploaded, Open Tickets)
  3. List block — connected to Projects table, filtered where Client Email = Logged-in User's Email, showing project name, status, and progress bar
  4. List block — connected to Invoices table, filtered to show only "Sent" or "Overdue" status, displaying amount and due date

The critical filter: On every data block, set the filter:

  • Field: Client Email
  • Condition: is equal to
  • Value: Logged-in User's Email

This single filter ensures each client sees only their own records.

Page 2: Projects

A detailed view of all the client's projects with drill-down capability.

  1. Table or List block — connected to Projects table, filtered by Client Email = Logged-in User
  2. Enable record detail pages so clicking a project opens a detail view showing description, milestones, linked documents, and timeline
  3. Add a List block inside the detail page connected to Documents, filtered by the current project

Page 3: Documents

A searchable document library for the client.

  1. Table block — connected to Documents table, filtered by Client Email = Logged-in User
  2. Enable search and filtering by Type (Contract, Report, Deliverable)
  3. Make the File attachment field downloadable directly from the table
  4. Sort by Upload Date (newest first)

Page 4: Invoices

Invoice history and payment access.

  1. Table block — connected to Invoices table, filtered by Client Email = Logged-in User
  2. Display: Invoice Number, Amount, Status, Due Date, Payment Link
  3. Use conditional formatting — red for Overdue, green for Paid
  4. Make the Payment Link column clickable so clients can pay directly
  5. Optionally add a summary stat block showing total outstanding balance (using a rollup or Softr's built-in sum)

Page 5: Support

A form for submitting support requests plus a view of existing tickets.

  1. Form block — connected to Support Tickets table
    • Pre-fill the Client Email field with the logged-in user's email (hidden from the form)
    • Show fields: Subject, Priority, Description
    • On submission, create a new record in Airtable and show a confirmation message
  2. List block — below the form, showing the client's existing tickets (filtered by Client Email = Logged-in User) with status badges

Step 5: Apply Your Branding

  1. Logo & colors: Upload your logo and set brand colors in Softr's global styles
  2. Typography: Match your website's fonts
  3. Remove Softr branding: Available on Professional plan and above
  4. Favicon: Add your custom favicon
  5. Login page: Customize the login/signup page with your brand imagery and messaging

The goal is that clients feel like they're using your platform, not a third-party tool.

Step 6: Automate Notifications with Make

A portal without notifications is a portal nobody checks. Use Make (or Zapier) to send automated alerts:

Essential Automations

1. New document uploaded → Email client

  • Trigger: Airtable — Watch Records in Documents table
  • Filter: Only new records (Created Time = last 15 minutes)
  • Action: Email (Gmail/SendGrid) — "A new document has been uploaded to your portal"
  • Include a direct link to the portal Documents page

2. Invoice status changed → Email client

  • Trigger: Airtable — Watch Records in Invoices table, filtered to Status = "Sent"
  • Action: Email — "You have a new invoice: {Invoice Number} for {Amount}"
  • Include the Payment Link directly in the email

3. Support ticket updated → Email client

  • Trigger: Airtable — Watch Records in Support Tickets, filtered to Status changed
  • Action: Email — "Your ticket '{Subject}' has been updated to {Status}"

4. New support ticket → Slack your team

  • Trigger: Airtable — Watch Records in Support Tickets
  • Action: Slack — Post to your internal #support channel with ticket details

5. Client onboarding → Welcome email + portal credentials

  • Trigger: Airtable — Watch Records in Clients table, filtered to Status = "Onboarding"
  • Action: Softr API — Create user account
  • Action: Email — "Welcome! Here's your portal login: {Magic Link}"

Step 7: Test and Launch

Pre-Launch Checklist

  • Permission check: Log in as a test client and verify you see ONLY that client's data — not other clients' projects, documents, or invoices
  • Mobile check: Test the portal on phone and tablet — Softr apps are responsive by default, but verify layout and readability
  • Form test: Submit a support ticket as a test client and confirm it creates the correct record in Airtable with the right client link
  • Document download: Upload a test file and verify clients can download it
  • Payment link: Click an invoice payment link to confirm it routes correctly
  • Email automations: Trigger each Make scenario and confirm emails arrive with correct content
  • Login flow: Test the full signup → login → dashboard experience from scratch
  • Branding: Verify logo, colors, favicon, and custom domain all render correctly

Invite Your First Clients

  1. Add their email to the Clients table in Airtable with Status = "Active"
  2. Create their user in Softr (manually or via the Make onboarding automation)
  3. Send them a welcome email with the portal URL and magic link

Start with 3–5 trusted clients and ask for feedback before rolling out broadly.

Security Considerations

Client portals handle sensitive data. Here's what to know:

What Softr handles well:

  • SOC 2 Type II certified
  • GDPR compliant
  • SSL encryption on all plans
  • User authentication with email verification
  • Data transmission encrypted in transit

What you need to manage:

  • Softr's filtering is client-side by default. Softr filters data in the browser, meaning a technically sophisticated user could potentially access the Airtable API directly if they extract the API key. For most service business portals, this is an acceptable risk. For highly sensitive data (healthcare, legal, financial), consider server-side alternatives like Noloco or Stacker, which enforce row-level security at the server level.
  • Airtable API keys: Softr uses your Airtable API token to fetch data. Use a scoped Personal Access Token with read-only access to only the base and tables needed — not a full-access token.
  • Regular access reviews: Audit your Clients table monthly. Set inactive clients to "Inactive" status and revoke their Softr access.

What This Costs vs. the Alternatives

Approach Setup Cost Monthly Cost Time to Launch Customization
Airtable + Softr (this guide) $0 (DIY) ~$239/month 1–2 weeks High
Airtable + Softr (with consultant) $3,000–$8,000 ~$239/month 1–3 weeks High
Airtable Native Portals $0 (DIY) $120–$150/month for 15 users 1 week Limited
Custom development (React/Node) $50,000–$150,000 $500–$2,000/month hosting + maintenance 3–6 months Unlimited
Salesforce Experience Cloud $25,000+ implementation $3,000+/month 2–4 months High (complex)

For service businesses with 10–500 clients, the Airtable + Softr approach delivers 80% of the functionality at 5% of the cost of custom development.

Common Mistakes to Avoid

1. Skipping the email filtering pattern. Every single data block in Softr must filter by Client Email = Logged-in User Email. Miss one block and clients see other clients' data.

2. Connecting to full tables instead of filtered views. Create portal-specific views in Airtable that exclude draft records, internal notes, and archived data. Connect Softr to these views, not the raw tables.

3. Over-building on day one. Start with Dashboard + Documents + one other section. Add features based on what clients actually ask for, not what you imagine they'll want.

4. Ignoring mobile. Over 40% of portal visits happen on phones. Test every page on mobile before launching.

5. No notification automations. If you build it, they won't come — unless you tell them there's something new to see. Email notifications for new documents and invoices are non-negotiable.

Next Steps

If you've followed this guide, you now have a working client portal with personalized data, document sharing, invoicing, and support — built entirely without code.

To take it further:

  • Add Stripe integration for in-portal payments (Softr supports this on Professional plan)
  • Build an onboarding flow with multi-step forms that collect client information and populate your Airtable base
  • Create client-facing reports using Airtable Interface Designer views embedded in the portal
  • Set up automated document generation from Airtable records using Make + PDF.co

If you'd prefer someone to build this for you — with optimized architecture, custom automations, and professional design — that's what we do. We've built dozens of Airtable + Softr portals for service businesses, agencies, and consulting firms.

Book a discovery call and we'll map out your portal in 30 minutes.

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.