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 |
| 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 |
| 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
- Sign up at softr.io and create a new app
- Choose "Start from scratch" or select the Client Portal template to get a head start
- Name your app (e.g., "YourCompany Portal")
Connect Airtable as a Data Source
- In the Softr sidebar, click Data Sources
- Click Connect Data Source → select Airtable
- Authenticate your Airtable account and grant access to your Client Portal base
- Softr will import your tables and fields automatically
Set Up Your Custom Domain
On the Professional plan ($139/month), you can:
- Go to Settings → Domain
- Add your custom domain (e.g.,
portal.yourcompany.com) - Add the CNAME record Softr provides to your DNS settings
- 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
- In Softr, go to Users → User Management
- Connect your Clients table as the users source
- Map the Email field as the login identifier
- Map Client Name as the display name
- 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:
- Clients — default group for all portal users
- VIP Clients — optional group with access to premium features
- 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:
- Header block — your logo, navigation, and a "Welcome, {user name}" greeting
- Stats block — connected to Projects table, showing counts (Active Projects, Documents Uploaded, Open Tickets)
- List block — connected to Projects table, filtered where Client Email = Logged-in User's Email, showing project name, status, and progress bar
- 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.
- Table or List block — connected to Projects table, filtered by Client Email = Logged-in User
- Enable record detail pages so clicking a project opens a detail view showing description, milestones, linked documents, and timeline
- 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.
- Table block — connected to Documents table, filtered by Client Email = Logged-in User
- Enable search and filtering by Type (Contract, Report, Deliverable)
- Make the File attachment field downloadable directly from the table
- Sort by Upload Date (newest first)
Page 4: Invoices
Invoice history and payment access.
- Table block — connected to Invoices table, filtered by Client Email = Logged-in User
- Display: Invoice Number, Amount, Status, Due Date, Payment Link
- Use conditional formatting — red for Overdue, green for Paid
- Make the Payment Link column clickable so clients can pay directly
- 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.
- 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
- 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
- Logo & colors: Upload your logo and set brand colors in Softr's global styles
- Typography: Match your website's fonts
- Remove Softr branding: Available on Professional plan and above
- Favicon: Add your custom favicon
- 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
- Add their email to the Clients table in Airtable with Status = "Active"
- Create their user in Softr (manually or via the Make onboarding automation)
- 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.