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 readMar 22, 2026

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

ToolPlan RequiredCost
AirtableTeam plan or higher$20/user/month (your team only — clients don't need Airtable seats)
SoftrProfessional 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 NameField TypePurpose
Client NameSingle line text (primary)Display name in portal
EmailEmailMust match Softr login email — this is how permissions work
CompanySingle line textOrganization name
PhonePhone numberContact info
StatusSingle select: Active, Onboarding, InactiveFilter who sees what
ProjectsLinked record → ProjectsAll projects for this client
InvoicesLinked record → InvoicesAll invoices for this client

2. Projects

Field NameField TypePurpose
Project NameSingle line text (primary)e.g., "CRM Implementation"
ClientLinked record → ClientsWho this project belongs to
Client EmailLookup → Client → EmailUsed for Softr filtering
StatusSingle select: Not Started, In Progress, Review, CompleteCurrent stage
Start DateDateProject timeline
Due DateDateProject deadline
ProgressPercentCompletion percentage
DescriptionLong textProject scope/brief
DeliverablesLinked record → DocumentsAttached deliverables

3. Documents

Field NameField TypePurpose
Document NameSingle line text (primary)e.g., "Q1 Report - Final"
ProjectLinked record → ProjectsWhich project this belongs to
ClientLinked record → ClientsDirect client link for filtering
Client EmailLookup → Client → EmailUsed for Softr filtering
FileAttachmentThe actual document
TypeSingle select: Contract, Report, Deliverable, Invoice, OtherCategory
Upload DateCreated timeAuto-set
NotesLong textVersion notes or description

4. Invoices

Field NameField TypePurpose
Invoice NumberAutonumber or formula (primary)e.g., "INV-001"
ClientLinked record → ClientsWho to bill
Client EmailLookup → Client → EmailUsed for Softr filtering
AmountCurrencyInvoice total
StatusSingle select: Draft, Sent, Paid, OverduePayment status
Issue DateDateWhen sent
Due DateDatePayment deadline
Payment LinkURLStripe/PayPal link
PDFAttachmentInvoice document

5. Support Tickets

Field NameField TypePurpose
SubjectSingle line text (primary)Ticket title
ClientLinked record → ClientsWho submitted it
Client EmailLookup → Client → EmailAuto-set from logged-in user
PrioritySingle select: Low, Medium, HighUrgency level
StatusSingle select: Open, In Progress, ResolvedCurrent state
DescriptionLong textIssue details
CreatedCreated timeAuto-set
Assigned ToCollaboratorInternal 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:

MethodBest ForSetup Effort
Magic link (email)Most client portals — no password to rememberLow
Email + passwordClients who prefer traditional loginLow
Google OAuthTeams already in Google WorkspaceMedium
Microsoft OAuthEnterprise clients on Microsoft 365Medium
SAML SSOEnterprise with strict security requirementsHigh (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

ApproachSetup CostMonthly CostTime to LaunchCustomization
Airtable + Softr (this guide)$0 (DIY)~$239/month1–2 weeksHigh
Airtable + Softr (with consultant)$3,000–$8,000~$239/month1–3 weeksHigh
Airtable Native Portals$0 (DIY)$120–$150/month for 15 users1 weekLimited
Custom development (React/Node)$50,000–$150,000$500–$2,000/month hosting + maintenance3–6 monthsUnlimited
Salesforce Experience Cloud$25,000+ implementation$3,000+/month2–4 monthsHigh (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.