Build a Customer Health Score System

Design a health scoring system in Airtable to track and manage customer accounts.

Introduction

30 Second Summary

Every SaaS company has customers silently slipping away. The teams that catch churn early are the ones with systems that surface warning signs before it's too late.

In this project, you will build a Customer Health Score system in Airtable that scores 10 fictional accounts across four health dimensions. You'll also set up automated alerts and operational views to prioritize your daily work.

What You'll Build

A relational Airtable base with formula-driven health scores, automated email alerts for critical accounts, and filtered views for different operational needs.

By the end of this project, you'll have:

  • A working health scoring engine that rates accounts from 0 to 100 across engagement, support, product adoption, and renewal proximity.
  • An automated alert that emails you when an account's health status drops to Critical.
  • Three operational views (At-Risk Accounts, Upcoming Renewals, Portfolio Overview) that demonstrate how you prioritize work as a CS Ops professional.
  • Secret Mission: Add a playbook recommendation system that auto-assigns next actions based on health score patterns.

Are there any prerequisites?

All you need is a free Airtable account. No coding or prior Airtable experience is required.

Create the Base and Data Model

Every Customer Success team needs a single source of truth for account health. Without a structured system, teams rely on gut feelings and scattered spreadsheets to decide which accounts need attention.

In this step, you will build the foundation of your health scoring system: a relational Airtable base with two connected tables. One table holds your customer accounts and their key metrics. The other tracks every interaction and touchpoint over time.

In this step, get ready to:
  • Create a new Airtable base with a fully structured Accounts table.
  • Build a linked Activity Log table to track customer interactions.
  • Populate both tables with realistic sample data representing a B2B SaaS portfolio.
Create a new base and build the Accounts table

The Accounts table is the core of your system. It stores one row per customer with all the metrics you will later feed into your health score formula.

  • Open your Airtable homepage at airtable.com.
  • Click + Create.
  • Select your preferred workspace.
  • Click Build an app on your own.

What is a base in Airtable?

A base is a collection of related tables, similar to a workbook in a spreadsheet app. Each base can hold multiple tables that link to each other, which is what makes Airtable powerful for relational data like customer accounts and their activities.

  • Airtable opens a new base with a default table called Table 1. Click the base name at the top left (it will say something like "Untitled Base") and rename it to Customer Health Score System.
  • Click the arrow next to the table tab labelled Table 1.
  • Click Rename table and type Accounts.

Now you need to add 12 fields to the Accounts table. The default table already has a few placeholder fields. Delete any existing fields except the first one (which becomes your Company Name field), then add the remaining fields one by one.

  • Rename the first field to Company Name (keep its type as Single line text).
  • Click the + icon to the right of the last field header to add a new field.
  • Select the field type Currency, name it ARR, and click Create field.
  • Repeat the process for each of the remaining fields listed below.

Here is the complete list of fields to create on your Accounts table:

  • Company Name (Single line text)
  • ARR (Currency)
  • Segment (Single select with options: SMB, Mid-Market, Enterprise)
  • CSM Owner (Single line text)
  • Renewal Date (Date)
  • Contract Start Date (Date)
  • NPS Score (Number, values 0-10)
  • Last Interaction Date (Date)
  • Login Frequency (Single select with options: Daily, Weekly, Monthly, Rarely)
  • Feature Adoption % (Percent)
  • Open Support Tickets (Number)
  • P1 Tickets (Number)

Creating Single select options

When you choose the Single select field type, Airtable lets you define the available options right in the field configuration panel. Type each option and press Enter to add it before clicking Create field.

Don't see the field type you need?

Make sure you are viewing the base table (not a form or interface view). Only owners and creators can add fields. If the field type dropdown appears incomplete, try refreshing your browser.

help me find the right field type in Airtable

Create the Activity Log table

The Activity Log tracks every customer interaction over time. Linking it to the Accounts table creates a relational data model where each activity is tied to a specific customer.

  • Click + Add or import next to the Accounts table tab at the top of your base.
  • Name the new table Activity Log.
  • Click Save.

Now add the 6 fields to your Activity Log table using the same process as before (click the + icon to the right of the last field header):

  • Activity Name (Single line text)
  • Account (Link to another record, select the Accounts table)
  • Type (Single select with options: QBR, Check-in, Onboarding, Escalation, Training)
  • Date (Date)
  • Sentiment (Single select with options: Positive, Neutral, Negative)
  • Notes (Long text)

What is a linked record field?

The Account field uses the "Link to another record" type. This creates a relationship between the two tables. Each activity log entry points back to a specific account, similar to a foreign key in a database.

When you create this linked field, Airtable automatically adds a corresponding field in the Accounts table showing which activity log entries are linked to each account.

Can't find the Accounts table when creating the linked field?

When selecting "Link to another record" as the field type, Airtable shows a list of tables in the current base. Make sure you named your first table Accounts (not Table 1). If you forgot to rename it, switch back to that table tab, click the arrow next to its name, and choose Rename table.

help me link my Activity Log table to the Accounts table in Airtable

Populate both tables with sample data

Your formulas and views in later steps need realistic data to demonstrate meaningful differentiation between healthy and at-risk accounts. You will add 10 fictional B2B SaaS accounts with a deliberate mix of health profiles.

  • Switch to the Accounts table tab.
  • Add 10 records by clicking the + icon at the bottom of the table. Fill in each row using the sample data below as a guide.

Aim for this distribution across your 10 accounts:

  • 4 healthy accounts: high NPS (8-10), Daily or Weekly login frequency, Feature Adoption above 70%, 0 open tickets, Last Interaction within 7 days, Renewal Date more than 90 days away.
  • 3 at-risk accounts: moderate NPS (5-7), Monthly login frequency, Feature Adoption between 30-60%, 1-3 open tickets, Last Interaction 14-30 days ago, Renewal Date within 60-90 days.
  • 3 critical accounts: low NPS (1-4), Rarely logging in, Feature Adoption below 30%, P1 tickets open, Last Interaction more than 30 days ago, Renewal Date within 30 days or overdue.

What should my sample data look like?

Use fictional company names like "Acme Corp", "Brightpath Solutions", or "NovaTech". For ARR, use a range from $12,000 (SMB) to $250,000 (Enterprise). Set CSM Owner to fictional names like "Sarah Chen" or "Marcus Johnson".

The key is variation. Your healthy accounts should have recent interactions, high adoption, and no support issues. Your critical accounts should have the opposite: stale interactions, low adoption, and unresolved P1 tickets. This contrast is what makes the health score formulas meaningful in the next step.

  • Now switch to the Activity Log table tab.
  • Add 20-25 activity log entries. Each entry should link to one of your 10 accounts using the Account linked record field.
  • Click the Account cell for each row, then select the appropriate account name from the dropdown.

Distribute your activity entries like this:

  • Give your healthy accounts 3-4 recent activities each (Check-ins, QBRs, Training) with Positive sentiment.
  • Give your at-risk accounts 2 activities each, with a mix of Neutral and Negative sentiment.
  • Give your critical accounts 1-2 older activities (Escalations) with Negative sentiment.

Speed up data entry

Use the Expand record button (click the expand icon on any row) to fill in all fields for a record in a form-style layout. This is faster than scrolling horizontally across many columns.

  • Verify your Accounts table has 10 records with all 12 fields filled in.
  • Verify your Activity Log table has 20-25 records, each linked to an account.
  • Switch between the two tables and confirm that the linked record field shows connections in both directions. In your Accounts table, you should see a column showing which activity log entries are linked to each account.

Linked records not showing up in both tables?

When you created the Account linked record field in Activity Log, Airtable should have automatically created a corresponding field in your Accounts table. If you do not see it, look for a field called Activity Log at the end of your Accounts table fields. It may be hidden. Click the + icon to check if any hidden fields exist.

help me fix my linked record fields between Accounts and Activity Log in Airtable

Your data model is in place. Next up, you will build the formula engine that transforms these raw metrics into a composite health score for each account.

Build the Health Score Formula Engine

Your data model is in place. You have 10 fictional accounts and a linked activity log that mirrors a real B2B SaaS portfolio.

Raw data alone doesn't tell you which accounts need attention right now. In this step, you'll build formula fields that calculate a health score for every account across four dimensions: engagement, support, product adoption, and renewal proximity.

In this step, get ready to:
  • Create four sub-score formula fields that each score an account from 0 to 25.
  • Build a composite Health Score formula that sums the sub-scores into a single 0-100 number.
  • Add a Health Status label that categorizes each account as Healthy, At Risk, or Critical.
Create the Engagement Score and Support Score fields

The first two sub-scores measure how recently a customer interacted with your team and how many open support tickets they have. Each formula outputs a number between 0 and 25.

  • In your Accounts table, click the + icon to the right of your last field.
  • In the field name box, type Engagement Score.
  • Search for and select Formula as the field type.
  • Paste the following formula into the formula editor:
IF(
  DATETIME_DIFF(TODAY(), {Last Interaction Date}, 'days') < 7,
  25,
  IF(
    DATETIME_DIFF(TODAY(), {Last Interaction Date}, 'days') < 14,
    20,
    IF(
      DATETIME_DIFF(TODAY(), {Last Interaction Date}, 'days') < 30,
      15,
      IF(
        DATETIME_DIFF(TODAY(), {Last Interaction Date}, 'days') < 60,
        8,
        0
      )
    )
  )
)
  • Click Create field.

What does this formula do?

This formula checks how many days have passed since the account's last interaction. The more recent the interaction, the higher the score.

  • Less than 7 days ago: 25 points (excellent engagement).
  • Less than 14 days ago: 20 points.
  • Less than 30 days ago: 15 points.
  • Less than 60 days ago: 8 points.
  • 60+ days ago: 0 points (account has gone dark).

You should see a number between 0 and 25 appear in the new column for each account. Accounts with recent Last Interaction Date values score higher.

Seeing an error or blank values?

  • Make sure the field name Last Interaction Date inside curly braces matches your actual field name exactly, including spaces and capitalization.
  • Check that you selected Formula as the field type, not a different type like Single line text.
  • If a cell is blank, that account may have an empty Last Interaction Date value. Fill in a date and the score will calculate.

help me fix my Airtable formula error for the Engagement Score field

Now create the second sub-score. This one evaluates support ticket health.

  • Click the + icon to the right of the Engagement Score field to add another new field.
  • Name it Support Score and select Formula as the type.
  • Paste this formula into the editor:
IF(
  AND({Open Support Tickets} = 0, {P1 Tickets} = 0),
  25,
  IF(
    AND({Open Support Tickets} <= 2, {P1 Tickets} = 0),
    20,
    IF(
      {P1 Tickets} = 0,
      12,
      IF(
        {P1 Tickets} <= 1,
        6,
        0
      )
    )
  )
)
  • Click Create field.

What does this formula do?

This formula scores support health based on ticket volume and severity. P1 (priority 1) tickets are critical issues that weigh heavily against the account.

  • Zero open tickets and zero P1 tickets: 25 points (clean slate).
  • 2 or fewer tickets with no P1s: 20 points.
  • More than 2 tickets but no P1s: 12 points.
  • 1 P1 ticket: 6 points.
  • Multiple P1 tickets: 0 points (serious trouble).

Verify that accounts with zero tickets show 25 in the Support Score column. Accounts with P1 tickets should show 6 or 0.

Support Score showing unexpected values?

  • Confirm that Open Support Tickets and P1 Tickets field names match exactly. Field references inside curly braces are case-sensitive.
  • If all values show the same score, check that your sample data has a mix of ticket counts. At least one account should have P1 tickets greater than 0.

help me debug my Support Score formula in Airtable

Create the Adoption Score and Renewal Proximity Score fields

The next two sub-scores measure product stickiness and how close the account is to its renewal date. Together with the first two, these form a complete picture of account health.

  • Click the + icon to add a new field.
  • Name it Adoption Score and select Formula as the type.
  • Paste this formula:
IF(
  AND({Login Frequency} = "Daily", {Feature Adoption %} > 0.7),
  25,
  IF(
    AND({Login Frequency} = "Daily", {Feature Adoption %} > 0.4),
    20,
    IF(
      {Login Frequency} = "Weekly",
      15,
      IF(
        {Login Frequency} = "Monthly",
        8,
        0
      )
    )
  )
)
  • Click Create field.

What does this formula do?

This formula combines login frequency with feature adoption percentage. An account that logs in daily AND uses more than 70% of your product's features is fully engaged.

  • Daily logins with over 70% feature adoption: 25 points.
  • Daily logins with over 40% feature adoption: 20 points.
  • Weekly logins (regardless of adoption): 15 points.
  • Monthly logins: 8 points.
  • Rarely or never logging in: 0 points.

Accounts with Daily login frequency and high feature adoption should show 25 or 20. Accounts set to Rarely should show 0.

Now create the final sub-score. This one flags accounts approaching their renewal date.

  • Click the + icon to add a new field.
  • Name it Renewal Proximity Score and select Formula as the type.
  • Paste this formula:
IF(
  DATETIME_DIFF({Renewal Date}, TODAY(), 'days') > 90,
  25,
  IF(
    DATETIME_DIFF({Renewal Date}, TODAY(), 'days') > 60,
    20,
    IF(
      DATETIME_DIFF({Renewal Date}, TODAY(), 'days') > 30,
      12,
      IF(
        DATETIME_DIFF({Renewal Date}, TODAY(), 'days') > 0,
        5,
        0
      )
    )
  )
)
  • Click Create field.

What does this formula do?

This formula calculates how many days remain until the account's renewal. Accounts with plenty of runway score high. Accounts with renewals coming soon score low because they need immediate attention.

  • More than 90 days until renewal: 25 points.
  • 61-90 days until renewal: 20 points.
  • 31-60 days until renewal: 12 points.
  • 1-30 days until renewal: 5 points (urgent).
  • Past renewal date (0 or negative days): 0 points.

Check that accounts with distant renewal dates show 25 and accounts with renewals within the next 30 days show 5 or 0.

Renewal Proximity Score showing 0 for all accounts?

  • Make sure your Renewal Date values are set in the future. If all renewal dates are in the past, every account will score 0.
  • Confirm the formula uses {Renewal Date}, TODAY() in that order (not reversed). The order matters because DATETIME_DIFF subtracts the second date from the first.

help me fix my Renewal Proximity Score formula in Airtable

Create the composite Health Score and Health Status fields

You now have four sub-scores, each worth up to 25 points. The final two formula fields bring them together into a single composite score and a human-readable status label.

  • Click the + icon to add a new field.
  • Name it Health Score and select Formula as the type.
  • Paste this formula:
{Engagement Score} + {Support Score} + {Adoption Score} + {Renewal Proximity Score}
  • Click Create field.

What does this formula do?

This formula adds all four sub-scores together. The result is a number between 0 and 100 that represents overall account health. Each dimension contributes equally (25 points max each).

You should see a number between 0 and 100 for each account. Healthy accounts with recent interactions, no tickets, daily logins, and distant renewals should score near 100. At-risk accounts should score much lower.

Now add the final field that translates the numeric score into a readable label.

  • Click the + icon to add a new field.
  • Name it Health Status and select Formula as the type.
  • Paste this formula:
IF(
  {Health Score} >= 70,
  "Healthy",
  IF(
    {Health Score} >= 40,
    "At Risk",
    "Critical"
  )
)
  • Click Create field.

What does this formula do?

This formula translates the numeric Health Score into one of three labels that are easy to scan at a glance.

  • 70 or above: "Healthy" (account is in good shape).
  • 40 to 69: "At Risk" (needs proactive attention).
  • Below 40: "Critical" (immediate intervention required).

Your Accounts table should now display both a numeric score and a text label for every account. Scroll through and confirm that your intentionally at-risk accounts (low NPS, rarely logging in, P1 tickets) are scoring lower than your healthy accounts.

Health Status showing blank or an error?

  • The Health Status field references Health Score by name. If you named that field something different (like "Total Score"), update the curly-brace reference to match.
  • If any sub-score field shows blank instead of a number, the Health Score sum will also be blank. Go back and fix the sub-score field that has the issue first.

help me troubleshoot my Health Status formula field in Airtable

Why four equally weighted dimensions?

Real CS teams often weight dimensions differently (e.g., support issues might count double for enterprise accounts). This equal 25-point structure gives you a clean foundation. In the Secret Mission, you'll see how the scoring logic can drive automated playbook recommendations.

If you want to customize the weights later, you can multiply each sub-score by a different factor (e.g., {Support Score} * 1.5) and adjust the total accordingly.

✔️ Awesome, I've got everything!

Great. Confirm you have 6 new formula fields in your Accounts table: Engagement Score, Support Score, Adoption Score, Renewal Proximity Score, Health Score, and Health Status.

ⓧ I'd like to double check all the formulas

Here is a summary of all 6 formula fields you should have in the Accounts table. Verify each field name and formula matches:

  • Engagement Score - Uses DATETIME_DIFF(TODAY(), {Last Interaction Date}, 'days') with thresholds at 7, 14, 30, and 60 days. Scores: 25, 20, 15, 8, or 0.
  • Support Score - Uses AND() to check {Open Support Tickets} and {P1 Tickets}. Scores: 25, 20, 12, 6, or 0.
  • Adoption Score - Uses AND() to combine {Login Frequency} and {Feature Adoption %}. Scores: 25, 20, 15, 8, or 0.
  • Renewal Proximity Score - Uses DATETIME_DIFF({Renewal Date}, TODAY(), 'days') with thresholds at 90, 60, 30, and 0 days. Scores: 25, 20, 12, 5, or 0.
  • Health Score - Sums all four sub-scores. Output: 0-100.
  • Health Status - Translates Health Score to a label. 70+ = "Healthy", 40-69 = "At Risk", below 40 = "Critical".

Every account now has a dynamic health score that recalculates as data changes. Next up, you'll build an automation that sends you an email alert the moment an account drops to Critical status.

Set Up Automated Alerts

Your health scores are now calculating across all 10 accounts, giving you a clear picture of which customers are thriving and which are struggling.

A score only matters if someone acts on it in time. In this step, you'll build an automated alert that emails you whenever an account drops to Critical status. This turns your scoring system from a passive reference into an active early warning system.

In this step, get ready to:
  • Create an automation that monitors account health status.
  • Configure an email alert with dynamic account details.
  • Test and activate the automation so it fires on real data changes.
Create the automation trigger

An automation in Airtable watches your data for specific changes and takes action automatically. You'll create one that monitors the Health Status field and fires whenever an account becomes Critical.

  • Click Automations in the top-center of your base.
  • Click + Create new…, then click Create automation.
  • Name the automation Critical Account Alert by clicking on the default name at the top and typing the new name.
  • Click + Add trigger.
  • Select When record matches conditions from the list of available triggers.
  • Under the Table section, select Accounts.
  • Under the Conditions section, click + Add condition.
  • Set the condition so that the Health Status field contains Critical.

What does this trigger do?

The "When record matches conditions" trigger watches your Accounts table continuously. Whenever a record changes and its Health Status field becomes Critical, the automation fires.

This trigger does not fire retroactively. Records that already matched the condition before you turned the automation on will not trigger it. The record must change states after the automation is enabled.

Configure the email action

Now you'll tell the automation what to do when it detects a Critical account. You'll configure it to send you an email with specific details about the at-risk account.

  • Click + Add advanced logic or action.
  • Under the Airtable header, choose Send email.
  • In the To field, select yourself as the recipient. On the Free plan, you can only email collaborators on the base, and you are a collaborator on your own base.
  • In the Subject field, type ALERT: Critical Health Score Detected.
  • In the Message field, type a brief intro like "The following account needs immediate attention:" and then insert dynamic tokens.
  • Click the blue + button inside the Message field to insert a dynamic value. Select the Company Name field from the triggering record.
  • Click the blue + button again and insert the Health Score field.
  • Click the blue + button one more time and insert the Renewal Date field.

Why include dynamic tokens?

Dynamic tokens pull live data from the triggering record into your email. Instead of a generic "an account is at risk" message, you get specific details: which company, how bad the score is, and when their renewal is coming up.

This context tells you exactly which account needs attention and helps you prioritize your response.

Why can I only email myself?

On Airtable's Free plan, the Send email action can only deliver to verified collaborators on the base. Since you are a collaborator on your own base, you can send alerts to yourself. Paid plans allow sending to any email address.

Test and activate the automation

Before turning the automation on, you need to verify it works correctly with a test record.

  • In the trigger step, click Test trigger.
  • Airtable will look for a record that matches your condition. Click Use suggested record to let Airtable pick one of your Critical accounts automatically.
  • Verify the test shows a green checkmark indicating success.
  • Now test the email action step. Click the test button on the Send email action.
  • Check your email inbox for the test alert. It should contain the company name, health score, and renewal date from the test record.
  • Once both tests pass, find the red OFF toggle and click it so it turns green and shows ON.

What if no test record is found?

If Airtable cannot find a matching record, it means none of your accounts currently have a Health Status of "Critical". Go back to your Accounts table and check that at least one of your sample accounts has low enough metrics to score below 40.

To see the automation fire on a live change, you need to make a record change states after the automation is ON.

  • Return to your Accounts table.
  • Pick one of your healthy accounts (one with a Health Score above 70).
  • Change its Last Interaction Date to a date 90+ days in the past.
  • Set its P1 Tickets field to 2.
  • Set its Login Frequency to Rarely.
  • Watch the Health Score recalculate. If it drops below 40, the Health Status changes to Critical and the automation fires.
  • Check your email for the live alert.

Give the automation a moment

Airtable automations can take a few seconds to a couple of minutes to fire after a record changes. If you do not see the email immediately, wait 2-3 minutes and check again.

Not receiving the email?

Make sure the account's Health Score actually dropped below 40. If the score is 40 or above, the status will be "At Risk" instead of "Critical" and the automation will not trigger.

Also check your spam or junk folder. Airtable automation emails sometimes end up there on the first send.

If the automation history shows no runs, confirm the toggle is set to ON (green). The automation must be enabled before it can fire on live changes.

Help me troubleshoot my Airtable automation that is not sending email alerts when an account becomes Critical.

Cost warning

The Airtable Free plan allows 100 automation runs per month. With 10 sample records, this is more than sufficient for demonstration and testing purposes. You will not come close to this limit during this project.

You should now see the automation listed as ON in the Automations panel with at least one successful test run in its history.

Your system now actively watches for trouble and notifies you the moment an account becomes critical. Next up, you'll build filtered views that give you and your stakeholders different operational lenses into the same data.

Build Operational Views

Your automation is live and watching for critical accounts. Now it's time to build the views that shape how you actually work with this data every day.

Different stakeholders need different slices of the same data. A CSM needs at-risk accounts front and center. A renewal manager needs upcoming dates sorted by urgency. A CS leader needs a portfolio-level view by segment.

In this step, get ready to:
  • Create an At-Risk Accounts view filtered to struggling accounts.
  • Create an Upcoming Renewals view for accounts nearing renewal.
  • Create a Portfolio Overview view grouped by customer segment.
Create the At-Risk Accounts view

This view puts your most vulnerable accounts at the top of your screen. It filters out healthy accounts entirely so you can focus on the ones that need attention.

  • In the Accounts table, open the views sidebar by clicking the three horizontal bars icon in the top-left area of your base.
  • Click + Create new... at the bottom of the sidebar.
  • Click Grid as the view type.
  • Name the view At-Risk Accounts and leave the permission set to Collaborative.
  • Click Create new view.

Your new empty grid view appears. Now add a filter to show only at-risk and critical accounts.

  • Click the Filter button in the view toolbar.
  • Click Add condition.
  • Set the field to Health Status, the operator to contains, and the value to At Risk.
  • Click Add condition again to add a second filter rule.
  • Change the conjunction from And to Or.
  • Set the second condition's field to Health Status, operator to contains, and value to Critical.

Why use Or instead of And?

The Or conjunction means a record shows up if it matches either condition. Using And would require both conditions to be true simultaneously, which is impossible since a single record can only have one Health Status value.

Next, sort the view so the worst-scoring accounts appear at the top.

  • Click the Sort button in the view toolbar.
  • Select Health Score as the sort field.
  • Set the sort order to ascending (lowest scores first).

Finally, hide fields that are not immediately actionable to keep this view focused.

  • Click the Hide fields button in the view toolbar.
  • Toggle off Contract Start Date and CSM Owner so they are hidden (gray toggle).
  • Click anywhere outside the modal to close it.

Your At-Risk Accounts view now shows only accounts with a Health Status of At Risk or Critical, sorted with the worst scores at the top.

Don't see any records in the view?

Check that your filter conjunction is set to Or and not And. If it's set to And, the view will be empty because no record can have two different Health Status values at once.

Also confirm that your sample data includes at least one account with a Health Score below 70. If all your accounts are Healthy, the view will correctly show nothing.

Help me troubleshoot my At-Risk Accounts view filter

Create the Upcoming Renewals view

This view surfaces accounts that are approaching their renewal date regardless of health status. It answers the question: which conversations need to happen in the next 90 days?

  • Open the views sidebar again and click + Create new....
  • Click Grid.
  • Name the view Upcoming Renewals and keep Collaborative selected.
  • Click Create new view.

Now add a filter that shows only accounts renewing within 90 days.

  • Click the Filter button.
  • Click Add condition.
  • Set the field to Renewal Date, the operator to is within, and the value to the next 90 days.

Sort the view so the soonest renewals appear first.

  • Click the Sort button.
  • Select Renewal Date as the sort field.
  • Set the order to ascending (earliest dates first).

Finally, group by Health Status so you can instantly see which upcoming renewals are at risk versus healthy.

  • Click the Group button (located between Filter and Sort in the toolbar).
  • Select Health Status as the grouping field.

Your Upcoming Renewals view now shows accounts grouped by health status with the soonest renewal dates at the top of each group.

Why group renewals by health status?

A renewal conversation with a healthy account is very different from one with a critical account. Grouping lets you scan the critical renewals first and prepare save strategies before moving on to the straightforward renewals.

Create the Portfolio Overview view

This view gives a bird's-eye look at portfolio health by customer segment. It mirrors how a CS leader reviews their book of business in a weekly team meeting.

  • Open the views sidebar and click + Create new....
  • Click Grid.
  • Name the view Portfolio Overview and keep Collaborative selected.
  • Click Create new view.

Group the records by segment so Enterprise, Mid-Market, and SMB accounts are separated.

  • Click the Group button in the toolbar.
  • Select Segment as the grouping field.

Sort within each group so the healthiest accounts appear first.

  • Click the Sort button.
  • Select Health Score as the sort field.
  • Set the order to descending (highest scores first).

Your Portfolio Overview view now displays accounts grouped by Enterprise, Mid-Market, and SMB with the highest health scores at the top of each group.

How would a CS leader use this view?

In a weekly team meeting, a VP of Customer Success opens this view and scans each segment. If the Enterprise group has two Critical accounts, that's an immediate escalation. If SMB is mostly Healthy, you know that segment is stable.

Each view you built serves a different operational question. At-Risk Accounts answers "what needs attention today?" Upcoming Renewals answers "what conversations do I need this quarter?" Portfolio Overview answers "how is our book of business doing overall?"

Views not showing different data?

Make sure you are switching between views by clicking their names in the views sidebar. All views pull from the same underlying data but apply different filters, sorts, and groupings.

If your Upcoming Renewals view is empty, check that at least some of your 10 sample accounts have a Renewal Date set within 90 days of today's date. You may need to update a few records.

Help me troubleshoot my Airtable views

Secret mission

Add a Playbook Recommendation System

Your health scores tell you which accounts are struggling. But what should you actually DO about it? In this secret mission, you'll build an automated playbook recommendation system that maps health score patterns to specific interventions, mirroring how enterprise CS platforms like Gainsight and ChurnZero assign playbooks.

Clean Up Your Resources

Clean Up Your Resources

This project runs entirely on Airtable's Free plan, so there are no ongoing costs. Decide whether to keep your base running, pause it for later, or delete it entirely.

Resources you used:

  • 1 Airtable base ("Customer Health Score System") with 2 tables, approximately 35 records, 6+ formula fields, 1 automation, and 5 custom views.

Keep everything running

No action needed. Choose this if you are still actively building or want to share the base on your resume.

  • Your base persists on your free Airtable account indefinitely.
  • To share it, open the base and click Share in the top-right corner to generate a shareable link you can add to your resume.
  • The automation will continue to use your monthly run allowance (100 runs per month on the Free plan). With only 10 records, this is unlikely to be an issue.

Pause - I'll come back to this later

Turn off the automation to preserve your monthly run allowance, but keep everything else intact.

  • Open the Customer Health Score System base.
  • Click Automations in the top navigation bar.
  • Toggle the Critical Account Alert automation OFF.
  • Your base, tables, views, and formulas remain untouched. Toggle the automation back ON whenever you return.

Delete - I don't want to use this again

Remove the entire base from your workspace. This deletes all tables, records, formulas, automations, and views permanently.

  • Open your Airtable home screen.
  • Open the Customer Health Score System base.
  • Click the ⌄ arrow to the right of your base's name.
  • Click the ... icon and select Delete base.
  • Click Delete to confirm.

Can I undo this?

Deleted bases go to your workspace trash and can be restored for 30 days. After that, they are permanently removed.

Nice Work!

Nice Work!

You just built a fully functional Customer Health Score system in Airtable that mirrors the operational infrastructure CS Ops professionals build at SaaS companies.

You've learned how to:

  • Design a relational data model connecting customer accounts to activity logs, with linked records and structured field types across two tables.
  • Build a weighted health scoring engine with 4 sub-dimensions (engagement, support, adoption, renewal proximity) that outputs a composite score and status label.
  • Create automated alerts and operational views that serve different stakeholder needs, from CSM daily prioritization to leadership portfolio review.
  • Secret Mission: Added a playbook recommendation system that maps health score patterns to specific interventions and prioritizes by ARR, mirroring enterprise CS platforms.

Ready to quiz yourself?