Airplane for SaaS: admin panels, customer onboarding, feature flags, and more

Airplane enables engineers at SaaS companies to focus on doing the thing they do best: building a great product. With Airplane, you can move quickly by transforming code into enterprise-grade internal apps in minutes that can be used by anyone on your team.

Why SaaS companies choose Airplane

SaaS companies are able to grow more quickly when developers can fully focus on building the company's core offering. Airplane enables this by:

  • Enabling non-engineers to safely run operations that were previously engineering-only
  • Eliminating the time that developers spend on running recurring eng-heavy operations and managing infra for internal tools
  • Limiting the level of interruptions that developers experience
  • Making it easy to set up granular permissions and approval flows around sensitive tasks

Use cases

  • Account administration and user management
  • Customer onboarding
  • Feature flagging
  • Democratized but safe access to SQL write queries
  • Run operationally sensitive tasks safely
  • More use cases

Account administration and user management

One of the most common SaaS use cases is building internal tools for customer support or success teams to administer accounts and manage users.

Examples of these kinds of tasks include things like:

  • Updating a user's email address
  • Making a user an admin
  • Changing a team's owner
  • Extending a free trial period

Typically, companies have a couple options to deal with these issues. Engineers can directly write queries against a database or use tools like Postman to hit internal APIs, which both require engineers to get involved every time. Another option is invest time in building a full-fledged internal dashboard, which is time-consuming. Airplane makes it possible to get the power of the admin dashboard with very little time investment.

Let's say you already have a SQL query, REST API endpoint, or a JS or Python script that represents how to update a user's email, for example. Instead of running this yourself, you can deploy this to Airplane in 2 minutes. After this, the support team can run this action themselves whenever they need to. Later in this article we'll walk through exactly how to create this in Airplane.

Customer onboarding

At many enterprise SaaS companies with manual onboarding processes, the customer success or implementation team needs to execute a series of tasks to bring on a new customer. Typical onboarding tasks include:

  • Migrate the customer's historical data
  • Create a new account and set initial account metadata
  • Import a list of initial users
  • Set up billing
  • Send the customer notifications
  • Set their account plan and turn on/off features
  • Setup integrations with third-party tools

Dover is a B2B SaaS platform that helps companies automate their recruiting processes. Airplane has been critical as Dover has scaled their customer operations and engagement teams from 0 to over 20 people in the last year. These teams do a significant amount of work to onboard customers, spin up new roles, and provide user support. They automate all of these operations through Airplane, which is currently their primary internal tools platform. Check out more on how Dover uses Airplane here.

Feature flagging

When rolling out new features, SaaS companies often want to specify which accounts to turn these new features on for. Additionally, they need a solution to easily toggle specific sets of features on or off without manually updating configs.

Airplane is a simple way to turn features on and off without manual code changes or configuration updates. Flatfile has used Airplane to test and iterate on new features before full rollouts, enabling them to gather feedback quickly and speed up the process of launching a new product.

Airplane also allows non-engineers like product managers or account managers to control which customers have access to which features without involving engineers.

An Airplane task to toggle a feature flag might look something like this:

If you're already using a feature flagging solution like LaunchDarkly or Split, you can have Airplane hit their API directly to have your feature flagging workflows in the same place as the rest of your internal tools.

Democratized but safe access to SQL write queries

At many SaaS companies, only people on the engineering team have access to run write queries directly against the production DB. Even among the engineering team, as a startup grows, companies tend to limit access to only a few engineers who truly need it for safety reasons.

As a result, if internal needs require people to run queries against prod, a small number of people can become a huge bottleneck for the entire organization. Airplane makes it easy to take specific repeated queries and turn them into reusable, parameterized, internal apps that can be shared safely. In addition to being a bottleneck, running raw queries against prod means that small syntax errors could result in accidental deletions or overwritten data.

Airplane makes these write actions safe for anyone on the team to use by limiting who can edit, request, and run tasks, by setting input validation rules for parameters, and by collecting audit logs.

Since Airplane is simple and accessible enough for your entire team, companies like Flatfile have been using Airplane to build and execute recurring SQL queries with ease. Flatfile limits the number of devs who have access to their prod DB and instead grants their customer success team and other engineers access to specific, common SQL queries via Airplane.

Run operationally sensitive tasks safely

Here a few examples of manual but sensitive tasks that can be automated using Airplane:

  • Billing and refund operations such as issuing a refund to a customer, adding a credit to an account, or updating a user's billing information
  • Deleting data such as deleting a user, an account, an environment, or resetting an account
  • GDPR or CCPA-related data operations which are often highly sensitive due to their irreversible nature and record-keeping requirements
  • Bulk actions where tasks such as "add all users in this CSV to an account" could  require significant investment in cleanup if gone wrong

Engineers tend to run these operations themselves and become a bottleneck for the rest of the organization, due to how dangerous it can be to broaden access (resulting in accidental deletions of data, unintentional config changes, etc.). Airplane makes it easy to safely share these operations more broadly.

You can layer group-based permissions, approval flows, notifications, and audit logs on top of tasks to ensure sensitive operations are done in a safe way.

Granular permissions

Since each task in Airplane represents a single, unique operation, you can specify at a very granular level which groups and users should have access to view, request, or run certain tasks.

Create groups in Airplane and specify who has access to which tasks:

Create approval flows so sensitive tasks have separate groups that are allowed to request and/or approve them. Send requests to certain groups which can be received directly on Slack. A member of the group can then execute the request directly or reject the request:

Safety and audit logs

Airplane is also SOC 2 compliant and you can self-host Airplane agents within your own VPC. Additionally, every operation is recorded in an audit log. In the example below, you can use logs to see every time someone ran "Issue Stripe Refund."

More use cases

In addition to the above, Airplane is also an effective solution for:

  • Scheduled tasks: running daily reports, setting up scheduled syncs of data, importing information at a specific cadence
  • Data / system hygiene: running specific tests though Airplane and notifying of system or operational failures

Walkthrough

Let's take a simple but common admin task, updating a user's email address, and walk through how that's done using Airplane in just a few steps taking under 3 minutes.

Step 1: Define your task

We want to look up the user based on their current email, and then update their email to a new email. Therefore we need two parameters: 1) the user's current email and 2) the desired new email.

Step 2: Build your task

It takes just one line of SQL to create a task that will forever remove the need for an engineer to go into a DB to manually update someone's email address.

Let's write a query that updates our users table to replace a current email with a new email. In order to use the parameters that this task takes in, we'll use the {{new_email}} syntax to refer to the parameter within the SQL query as shown below:

Step 3: Run your task

Now that we've created this task, it's available to anyone on our team to run. Anyone can login to Airplane, find the "Update a user's email address" task, fill out the current email and new email parameters and hit "execute" to run the task. Not only can you see the task running real-time, but you'll also have access to a run history and audit logs.

Bonus: Advanced settings

As mentioned previously, you can also set granular permissions to specify which groups are able to do what with your tasks. In this example, we've given the Engineering team admin access and the Operations team requester access meaning that Operations have permission to view and request the task but not to run it themselves.

Check out this 3-min demo walking through the entire task creation process:

Here at Airplane we want you to be able to focus on the thing you do best and for SaaS, that's building great product. By eliminating the time that your company spends on recreating engineering-heavy operations, spinning up internal tools, and worrying about the internal state of things, your team can focus on the important things like helping your customers win.

If you liked anything you read or think Airplane would be a good fit for your business, say hello via chat or email hello@airplane.dev. Signing up takes about 30 seconds and you can check out our docs for more information.

Share this article: Link copied to clipboard!

You might also like...