DEV Community

Cover image for Solved: Can I invite my own team as users of an internal “Portal” in Airtable?
Darian Vance
Darian Vance

Posted on • Originally published at wp.me

Solved: Can I invite my own team as users of an internal “Portal” in Airtable?

🚀 Executive Summary

TL;DR: Airtable’s expensive ‘Collaborator’ user model makes internal read-only portals costly, as it’s designed for database builders, not data consumers. To circumvent this, solutions range from a quick service account hack to a robust middleware gateway or leveraging third-party tools, abstracting Airtable’s direct user access and reducing costs.

🎯 Key Takeaways

  • Airtable’s ‘Collaborator’ model is for users with direct editing rights within the Airtable UI, making it expensive for ‘Consumers’ who only interact with data via a custom portal.
  • The ‘Service Account’ method offers a quick fix by using a single paid Airtable seat for all portal interactions, but it introduces security risks due to shared credentials and lacks user-level audit trails.
  • A ‘Middleware Gateway’ is the architecturally sound solution, securely abstracting the Airtable API key, enabling custom authentication (e.g., SSO), logging, rate-limiting, and detailed auditing at the application layer.

Struggling with Airtable’s expensive user seats for your internal portal? This guide explains the problem and provides three real-world solutions, from a quick service account hack to a proper middleware architecture.

Airtable’s User Model is Holding Your Internal Portal Hostage. Here’s How to Break It Free.

I remember the moment clearly. It was 2 AM, and we’d just finished the v1 of a beautiful internal dashboard for our SRE team. It pulled on-call schedules, incident reports, and real-time status from our monitoring services, all neatly organized in an Airtable base. We used a simple front-end to make it all searchable. The project lead loved it. “Great,” he said, “Now let’s roll it out. Add the whole SRE and Ops team.” That’s when the cold sweat started. Adding 25 people as “users” to the Airtable base meant 25 full, paid “Creator” seats. The cost was astronomical for what was essentially a read-only portal. We built a sports car and then realized we had to pay a toll per passenger, per mile. This isn’t just an Airtable problem; it’s a classic snag when a great back-office tool gets promoted to a mission-critical data source.

So, What’s Actually Going On Here?

The confusion, and the pain, stems from a simple misunderstanding of Airtable’s model. When you “invite a user” to your base, you’re inviting a Collaborator. This is someone with deep, often direct, editing rights within the Airtable UI itself. They are meant to be builders and editors of the database.

Your portal users, however, aren’t Collaborators. They are Consumers of the data, interacting with it through a controlled interface you built. They don’t need to know how to create a new View or link a table; they just need to see if prod-db-01 is healthy. Airtable’s pricing is structured around the former, and you’re trying to service the latter. The API keys are tied to full-fledged users, and that’s the expensive gate you’re running into.

Let’s look at how to get around this gate without getting fired.

Solution 1: The Quick & Dirty Fix (The Service Account)

This is the “we need this working by morning” solution. It’s fast, effective, and carries some technical debt. You create a single, non-human user in your Airtable workspace and use its credentials for your portal’s backend.

  1. Create a new email address, something like svc.airtable.portal@yourcompany.com.
  2. Invite this “user” to your Airtable workspace and give it the minimum required permissions on the specific base (e.g., Editor or Commenter). This will likely consume one paid seat, but one is much better than twenty-five.
  3. Generate an API key for this service account.
  4. Hard-code this API key into your portal’s backend configuration. Now, every query your portal makes to Airtable is authenticated as this one “service” user.

Warning: This is a shared credential. If that key leaks, it’s a major security risk. You have no user-level audit trail within Airtable—every action is attributed to the service account. Use this for low-risk, internal-only tools where speed is the priority. You are essentially shifting the burden of authentication and authorization from Airtable to your own application layer.

Solution 2: The Right Way™ (The Middleware Gateway)

This is the architecturally sound solution. You build a lightweight service that sits between your portal and the Airtable API. This is my preferred method for anything that needs to be stable and secure.

The flow looks like this:

  • Your user logs into your internal portal (via your company’s SSO, like Okta or Azure AD).
  • The portal front-end makes an API call to your middleware service, not Airtable. For example, it calls https://api.internal.yourcompany.com/v1/on-call-rota.
  • Your middleware service (could be an AWS Lambda function, a small container running on api-gw-internal-01, etc.) receives the request.
  • The middleware securely retrieves the Airtable API key from a secrets manager (like AWS Secrets Manager or HashiCorp Vault).
  • It then constructs and makes the actual request to the Airtable API on behalf of the user, forwarding the necessary data back to your portal.

This approach gives you immense benefits:

  • Security: The API key is never exposed to the client-side. It’s stored securely on the backend.
  • Control: You can add logging, rate-limiting, and caching at the middleware layer.
  • Auditing: You know which authenticated portal user requested what data and when, even if Airtable only sees the request coming from your service.
  • Abstraction: If you ever decide to migrate off Airtable, you only change the middleware; the portal front-end doesn’t need to be touched.

Here’s a tiny pseudo-code example of what a Node.js/Express middleware function might look like:

// A simplified example of a middleware endpoint
const airtableApiKey = getFromSecretsManager('AIRTABLE_API_KEY');
const airtableBaseId = 'appYourBaseIdHere';

app.get('/v1/on-call-rota', async (req, res) => {
  // Step 1: Verify the user is authenticated via your own system (e.g., check JWT)
  if (!req.user || !req.user.isSRE) {
    return res.status(403).send('Forbidden');
  }

  // Step 2: Make the call to Airtable on their behalf
  try {
    const response = await axios.get(
      `https://api.airtable.com/v0/${airtableBaseId}/OnCall`,
      { headers: { 'Authorization': `Bearer ${airtableApiKey}` } }
    );

    // Step 3: Log the action and return the data
    console.log(`User ${req.user.email} accessed the on-call rota.`);
    res.json(response.data.records);

  } catch (error) {
    console.error('Failed to fetch from Airtable:', error);
    res.status(500).send('Internal Server Error');
  }
});
Enter fullscreen mode Exit fullscreen mode

Solution 3: The Pragmatic Choice (Use a Third-Party Tool)

Sometimes the best engineering decision is not to engineer anything. Several SaaS products exist purely to solve this problem: they build polished, secure front-ends on top of your Airtable data and have their own, more reasonable, user pricing models.

This is a classic “buy vs. build” scenario. Before you spin up a new service or start coding a front-end, do the math.

Factor Build It Yourself (Solution 2) Buy It (e.g., Softr, Stacker)
Upfront Cost Low (server costs) Medium (monthly subscription)
Time to Market Weeks or Months Hours or Days
Maintenance Your team owns it forever (updates, security) Handled by the vendor
Customization Infinite Limited to the platform’s features

My Take: If your portal needs to do something highly specific or integrate deeply with other internal systems, build the middleware. If you just need a clean, secure interface for CRUD (Create, Read, Update, Delete) operations on your Airtable data, a tool like Softr or Stacker will save you an incredible amount of time and money. Don’t let your ego get in the way of a smart business decision.

At the end of the day, the goal is to empower your team with the data they need without blowing your budget. Whether it’s a quick hack, a robust middleware service, or a third-party platform, the right solution is the one that gets the job done securely and sustainably.


Darian Vance

👉 Read the original article on TechResolve.blog


Support my work

If this article helped you, you can buy me a coffee:

👉 https://buymeacoffee.com/darianvance

Top comments (0)