← Back

Cutting Churn Before the Ticket Arrives (SaaS)

How Loomstack Inc. consolidated its customer-success stack into a single Airtable workspace, surfacing at-risk accounts 47 days earlier and lifting net revenue retention from 102% to 114%.

Airtable
Works with
  • Airtable
  • HubSpot
  • Stripe
  • Google Sheets
  • Slack
  • Notion
  • Zapier
  • Gmail
  • Typeform
  • Client: Loomstack Inc.
  • Industry: B2B SaaS, workflow automation
  • Segment: Series B, Enterprise + Mid-Market
  • Company size: 180 employees, 14 CSMs
  • Project duration: 9 weeks (discovery → go-live)
  • Deliverables: 11 tables, 9 automations, 3 interfaces

Executive Summary

A purpose-built customer-success workspace

Loomstack Inc. is a Series B B2B SaaS company providing workflow automation tooling to mid-market and enterprise customers, with roughly $24M ARR across 280 paying accounts. By Q4 2025 the customer success team was operating across five disconnected tools: HubSpot for CRM data, Zendesk for support tickets, Stripe for subscriptions, a homegrown product-usage dashboard, and a sprawl of Google Sheets for everything that didn’t fit elsewhere. Health scoring was a quarterly spreadsheet exercise, and renewal forecasts were assembled by hand the week before each board meeting.

Over a 9-week engagement we replaced this stack’s coordination layer with a single Airtable workspace, a unified accounts table, computed health scores updated nightly, role-specific Interfaces for CSMs and the VP, and an automation suite that triggers playbooks before churn risk turns into a churn ticket. HubSpot, Zendesk and Stripe still own their primary data; Airtable is the operating surface on top.

Outcomes after 90 days in production

114%
Net revenue retention
47 d
Earlier risk detection
3,742
Automated runs / mo.
$1.2M
Saved ARR (Q1)

Before: 5 disconnected tools, quarterly health scoring done in a spreadsheet, renewal forecast assembled by hand, average risk detection lag of 51 days.

After: 1 Airtable workspace as the CS operating layer, health scores recomputed nightly, live forecast on the VP dashboard, average risk detection lag of 4 days.

Background

The client and the problem

About Loomstack

Loomstack sells a workflow automation platform to mid-market and enterprise operations teams across North America and EMEA. Headcount is 180; the customer-facing org is split into 14 CSMs (segmented by Enterprise / Mid-Market), 6 support engineers, and 4 account executives covering expansion. The CS leadership reports to a VP of Customer Success who in turn reports to the COO.

The pain points that triggered the project

  • Churn was being detected too late. The first signal an account was in trouble was usually a renewal coming up in 30 days and a CSM scrambling. Two enterprise logos worth $640K combined churned in Q3 2025 with effectively no warning.
  • Health scoring was theatre. A quarterly spreadsheet exercise produced colour-coded statuses that nobody trusted, by the time it shipped, the underlying data was already 4–6 weeks stale.
  • CSMs lived in eight tabs. A typical customer review meant opening HubSpot, Zendesk, Stripe, Mixpanel, the usage dashboard, the renewal sheet, the QBR notes doc, and the Slack channel, for every account.
  • Forecasts were unreliable. The VP’s renewal forecast was built in a spreadsheet from CSM-submitted estimates; variance against actuals was running ±22% per quarter.
  • Playbooks didn’t run. The CS playbook library lived in Notion but was almost never triggered, because nothing automatically noticed when a playbook should fire.

Why Airtable

Loomstack evaluated three category-leading customer success platforms and Airtable. The decision came down to four factors: (1) Loomstack already had clean data sitting in HubSpot, Zendesk and Stripe, what they needed wasn’t another database, but a coordination layer on top, (2) the CS ops team wanted to own the system and iterate on it weekly without a vendor implementation queue, (3) the health-score formula needed to be theirs, not a vendor’s black box, and (4) integration with Slack was non-negotiable. Airtable’s linked-record model, sync sources, and native Slack actions made it the right fit.

Approach

How the implementation was run

We delivered the implementation in four phases over nine weeks. A core working group made up of the VP of Customer Success, two senior CSMs (one per segment), the head of CS Ops, and a RevOps analyst met twice a week to validate the data model, review prototypes, and approve each automation before it went live.

PhaseWeeksWhat we didOutput
1. Discovery1–2Shadowed CSMs through 5 customer reviews. Audited HubSpot, Zendesk, Stripe and the usage dashboard. Workshopped the health-score formula with leadership.Process map, data dictionary, agreed health-score definition.
2. Data model & sync3–4Designed 11-table relational schema. Configured one-way syncs from HubSpot (accounts/contacts), Stripe (subscriptions) and Zendesk (tickets).Live Airtable base with synced data; ER diagram.
3. Interfaces & automations5–7Built the CSM Command Center, the Account Detail Workspace and the VP Forecast Room. Designed and tested 9 automations.3 production interfaces; automation library.
4. Pilot, training, go-live8–9Piloted with 4 CSMs for one week, trained all 14 CSMs and the VP team, ran a 3-day shadow-mode period before full cutover.Single-day cutover; 14 / 14 CSMs active on day 1.

Guiding principles

  • Don’t replace systems of record. HubSpot, Zendesk and Stripe stay as systems of record. Airtable is the system of action on top: pulling from each, surfacing what matters, and writing back where appropriate.
  • One health score, one definition. Health is a single formula owned by CS leadership, not three competing scores. Every place it appears in the workspace is the same calculation.
  • Surface signals, don’t bury them. An at-risk account should be impossible to miss. Risk surfaces on the CSM dashboard, the VP forecast, and as a Slack alert, within 24 hours of the signal.
  • CS Ops owns the base. The head of CS Ops and a RevOps analyst were trained as base administrators and now ship changes weekly without engineering or vendor involvement.

What Was Built

The Accounts table: the heart of the workspace

Every paying customer is a record in the Accounts table. From here, CSMs can see their book of business at a glance, sliced by segment, plan, health band, or renewal window. The grid below shows the production view used by the VP each Monday to triage the team’s at-risk accounts.

Figure 1: The Accounts grid view, grouped by segment and coloured by health band. The footer rolls up total ARR and counts at-risk / critical accounts across the visible records.

Highlights of this view

  • Health is a coloured chip driven by a formula on the record. It’s the same calculation everywhere it’s shown.
  • ARR is a rollup from the linked Subscriptions table, which is one-way synced from Stripe, no double-entry, no drift.
  • CSM is a linked record to the Staff table, so rebalancing books happens in one place and propagates everywhere.
  • NPS (last) is a lookup from the most recent record in the NPS Responses table, refreshed automatically.

Two more views the team uses every day

Kanban by health band is the view the VP uses on Monday morning. Cards are stack-ordered by ARR, so the largest at-risk accounts always sit at the top. The colour bar on the left of each card encodes the band; the avatar in the corner is the CSM.

Figure 2: Kanban view of the Accounts table, grouped by health band. Healthy / At risk / Critical / Onboarding / Churned columns make book composition obvious in one glance.

The expanded account record

Clicking any row opens the full account detail. This is the screen a CSM lives in during a customer review, every field a CSM might want is on one page, computed live from the underlying tables. The Health Score, Usage Trend, Open Tickets and Days to Renewal all turn red automatically when they cross their respective thresholds.

Figure 3: The expanded record view for ENT-00142 (Halcyon Robotics). Notice that the timeline at the bottom shows the champion-change event detected on Apr 18 that automatically triggered a save playbook.

The Data Model

Eleven tables, one source of truth

The base is built around Accounts as the central entity. Everything else (contacts, subscriptions, tickets, health scores, renewals, playbooks, NPS responses) links back to an account. This single design decision is what makes the rollups, formulas and automations possible.

Figure 4: The 11-table schema. Accounts is the hub; Subscriptions and Tickets are synced from Stripe and Zendesk respectively; the rest is native to Airtable.

Field-level decisions worth calling out

  • health_score is a single formula combining four sub-scores: usage (40%), support (25%), NPS (20%), commercial signals (15%). Weights live in a Settings table so leadership can tune them without code changes.
  • health_band is a derived formula (Healthy / At risk / Critical) with bands at 80 and 60, the only place the thresholds are defined in the entire workspace.
  • days_to_renewal is a formula reading from renewal_date; the renewal automations all read this field, so date arithmetic lives in one place.
  • Subscriptions is one-way synced from Stripe: Airtable doesn’t write back. ARR is rolled up from synced rows.
  • Tickets is one-way synced from Zendesk every 15 minutes, open_tickets on the Account is a count rollup.

Interfaces

Three role-based interfaces, one underlying base

Different people on the CS org need different things from the same data. We built three Interfaces on top of the base, each tailored to a role. All three read from and write to the same tables. There is no duplication.

The CSM Command Center

This is the screen a CSM opens when they sit down at their desk. It surfaces the four KPIs that matter to them, the live health distribution of their book, a renewal forecast for the next six months, and a prioritised list of accounts that need attention today, all filtered to their book automatically.

Figure 5: The CSM Command Center, scoped to the logged-in CSM. KPI cards on top; health distribution and renewal forecast charts below; on the right, the accounts that need attention today, sorted by ARR × risk.

Two other interfaces

  • Account Detail Workspace: the single screen a CSM uses during a customer review. Live health timeline, ticket history, usage chart, contacts directory, active playbooks, and a notes stream, all on one scrollable page.
  • VP Forecast Room: read-only org-wide view for CS leadership. Net revenue retention trend, weighted renewal forecast by quarter, churn-risk dollar amount, and CSM utilisation. Replaces what used to be a manual Friday afternoon spreadsheet exercise.

Automations

Automating the work that catches churn early

Nine automations remove roughly 3,700 manual touchpoints from the team’s month, but more importantly, they catch churn signals while there’s still time to act. None of them replace a CSM’s judgment; they make sure no signal slips through.

Figure 6: The Automations panel. Nine automations, eight currently enabled, with run counts visible per automation. The detail pane on the right shows the trigger and three actions of the renewal-playbook workflow.

The automation catalogue

Each automation is owned by a named person on the CS Ops team, documented in a Notion runbook, and reviewed monthly.

#AutomationTriggerActionsReplaces
1Health score recompute (nightly)Schedule: 2:00 AM, every nightRuns the health-score formula across all accounts; writes a row into Health Scores; updates health_band.Quarterly spreadsheet exercise
2Score drop > 15 pts → Alert CSMHealth Scores.delta_30d < −15Slack DM to CSM + tags account as ‘momentum loss’; logs into the activity timeline.Nothing: drops were missed
3Renewal in 90/60/30 days → PlaybookAccounts.days_to_renewal IN (90, 60, 30)Branches on plan + health to pick playbook (e.g. Enterprise + <80 → exec save). Spawns 5 linked tasks.Manual playbook lookup in Notion
4Trial ending in 7 days → Sales handoffSubscriptions.status = trial AND term_end in 7 daysCreates handoff record; assigns AE; Slack DM to AE with usage summary; books a calendar slot.CSM-to-AE handoff via email
5New ticket P1 → Slack war roomTickets.priority = P1 (synced from Zendesk)Posts to #cs-warroom; tags CSM, AE, support engineer; creates a Linear issue if flagged.Manual Slack post by support
6NPS detractor → Recovery sequenceNPS Responses.score ≤ 6Sets account flag; emails CSM with NPS comment; creates a follow-up task due in 48 hours.NPS responses going unread
7Usage anomaly → Tag accountUsage signal: WAU drop > 25% w/wSets a ‘usage_drop’ tag; surfaces it on CSM dashboard ‘Needs attention’ panel.Caught (sometimes) at quarter-end
8Onboarding day 14/30/60 check-insSchedule: nightly scan of accounts in OnboardingSpawns the right check-in task at each milestone; emails customer with the day-30 product-tour link.Three different CSM templates
9Champion change detected → PlaybookContacts.is_primary changes OR HubSpot role-change signalCreates ‘Champion change’ playbook record; spawns a 5-step exec-meeting save plan.Nothing: usually noticed too late

Worked example: automation #3 in detail

  • Trigger: nightly check on every Account where days_to_renewal equals exactly 90, 60, or 30 and status = Active.
  • Action 1 (Conditional branch): evaluates plan + health. Enterprise + health < 80 routes to Playbook A: Executive Save; everything else routes to Playbook B: Standard Renewal.
  • Action 2 (Create Playbook + tasks): writes a row in the Playbooks table linked to the account, then spawns 5 tasks with due dates working back from the renewal date.
  • Action 3 (Notify): Slack DM to the CSM with a deep link to the account; appends the record to the VP’s weekly forecast view.
  • Replaced: CSMs manually checking renewal calendars and looking up playbooks in Notion (frequently the wrong playbook, frequently too late).

Integrations

How the workspace connects to the SaaS stack

Airtable doesn’t replace HubSpot, Zendesk, Stripe, or the product analytics warehouse. It coordinates them.

SystemDirectionWhat flowsMechanism
HubSpotOne-way (in)Accounts and Contacts sync nightly. Field-level mapping for industry, employee count, lifecycle stage and owner.Airtable HubSpot sync source
StripeOne-way (in)Subscription rows sync every 4 hours. ARR rolls up from subscription records to the account.Stripe → Airtable via Zapier
ZendeskOne-way (in)Tickets sync every 15 minutes. Priority, status, assignee, and time-open are all rollup-able.Native Zendesk sync
SlackOne-way (out)Health drops, P1 tickets, renewal-playbook triggers, NPS detractor alerts.Native Slack action in Automations
Mixpanel / SnowflakeOne-way (in)Daily WAU and feature-adoption metrics per account, used as inputs to the health score.Snowflake → Airtable via reverse-ETL
LinearOne-way (out)P1 tickets that need engineering escalation create a Linear issue with customer context attached.Linear API call from script action
Gmail / OutlookOne-way (out)Customer-facing emails (NPS follow-ups, day-30 onboarding tour) sent from automation actions.Native email actions

Permissions & data handling

  • Workspace plan: Airtable Business with SAML SSO via the company’s identity provider. Two-factor authentication enforced for all users.
  • Field-level permissions: ARR and renewal amounts are read-only for CSMs and hidden from support engineers; visible to AEs and the VP.
  • Book-level filtering: CSMs see only their own accounts by default on every interface; the VP sees the full org. No CSM can edit another CSM’s accounts.
  • Audit: Airtable’s revision history is retained, and a nightly backup is exported to the company’s S3 bucket via the Airtable API.

Results

Measurable change after 90 days in production

MetricBeforeAfterChange
Net revenue retention (NRR)102%114%+12 pts
Average risk-detection lag51 days4 days−92%
Renewal forecast variance± 22%± 6%−73%
At-risk ARR identified earliern/a$1.2M (Q1)+ saved revenue
CSM time spent on reporting≈ 6 hr / week≈ 45 min / week−87%
Playbook trigger rate≈ 14% of cases100% of cases+ coverage
Automated touchpoints / month03,742 across 8 active flowsn/a
CSM adoption (firm-wide)n/a14 / 14 active on day 1100%

In the words of the team

The thing that changed isn’t really the dashboard: it’s that the team has time. My CSMs aren’t building reports any more, they’re actually talking to customers. And when an account starts going sideways, we know about it the next morning, not three weeks later when the renewal blows up. We saved $1.2M of ARR last quarter that would otherwise have walked out the door.

VP of Customer Success, Loomstack Inc.

What we’d do again, and what we’d change

  • Worked well: co-designing the health-score formula with leadership in week 1. Because they owned it from day one, nobody argued with the scores once they started shipping.
  • Worked well: shipping the CSM Command Center first and the VP Forecast Room last. Adoption follows the front line.
  • Would change: we underestimated the data-cleanup burden in HubSpot during phase 2. About 11% of accounts had missing or stale ownership; cleaning that up consumed three days we hadn’t planned for.
  • Would change: add an in-product feedback widget that writes directly to the NPS Responses table. The current Typeform-based flow has a higher drop-off than we’d like.