How to score customer health as Small RevOps Teams

Customer SupportFor Small RevOps Teams2 apps12 steps~24 min to set up

Your HubSpot sync is current, your Apollo sequences are running, your reps are logging calls — and you still have no reliable answer to 'which accounts are about to churn or go dark?' You're manually cross-referencing deal stage, last activity date, email reply rates, and LinkedIn touches in a Google Sheet that goes stale the moment you close the tab. The CRO asks for a health score in the Monday forecast call and you're copy-pasting last Thursday's snapshot. With 30 reps and hundreds of open accounts, keeping a real-time pulse on customer health is a full-time job — and you're two people doing five jobs.

Customer SupportFor Small RevOps Teams2 apps12 steps~24 min to set up
Outcome

What you'll set up

A customer health scoring app that pulls from HubSpot (scheduled sync), Apollo, and Gmail into a single view — updated automatically, no manual refreshes
A scoring model you define in plain language: weights for email engagement, deal stage velocity, last touch recency, open support signals, and rep activity — customized to how your team actually defines 'healthy'
A weekly digest that surfaces accounts moving from healthy to at-risk before your Monday forecast call, so you're flagging problems to the CRO instead of discovering them live
The Starch recipe

Apps, data, and prompts

The combination of Starch apps, the data sources they pull from, and the prompts you use to drive them.

Apps used
Data sources & config

Starch syncs your HubSpot data — contacts, companies, deals, and owners — on a schedule, so the health model always has current pipeline data. Gmail is also synced on a schedule, giving the agent visibility into email thread activity per account. Apollo is connected from Starch's integration catalog and queried live for sequence engagement and contact-level outreach history. Slack is connected from Starch's integration catalog so the weekly digest posts automatically. LinkedIn enrichment runs through browser automation — no LinkedIn API needed — to keep company and contact profiles current.

Prompts to copy
Build me a customer health scoring dashboard that pulls contacts, companies, and deals from HubSpot, email activity from Gmail, and sequence engagement from Apollo. Score each account 0–100 based on: last inbound reply (30 points), days since last rep activity (25 points), deal stage progression in the past 30 days (25 points), and open deal count vs. expected by stage (20 points). Flag anything below 50 as at-risk and anything that dropped more than 15 points week-over-week as a priority alert.
Add a weekly automation: every Sunday at 7pm, recalculate health scores across all open accounts, generate a ranked list of the 10 most at-risk accounts with a one-sentence reason for each drop, and post it to the #revops Slack channel so it's ready before the Monday forecast call.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect HubSpot — Starch syncs your contacts, companies, deals, and owner assignments on a schedule. This is the backbone of the health model; every score traces back to deal and contact data already in your CRM.
2 Connect Gmail — Starch syncs message data on a schedule, so the agent can measure inbound reply rates and last-touch dates per account without you manually pulling email reports.
3 Connect Apollo from Starch's integration catalog. The agent queries it live to pull sequence enrollment status, open/reply rates, and last outreach step for each contact in scope.
4 Connect Slack from Starch's integration catalog so automated digests can post directly to your #revops or #forecast channel.
5 Open the Sales Agent CRM app as your starting point — it has HubSpot and Apollo already wired — then describe the health scoring logic you want layered on top in plain language.
6 Define your scoring weights in a natural-language prompt. Be specific: tell Starch what 'healthy' means for your segment — inbound reply recency, stage velocity, rep activity cadence. Starch builds the scoring formula to your spec.
7 Set thresholds: accounts below 50 are flagged at-risk, accounts that drop 15+ points in a week get a priority-alert tag. These become filterable columns in your health dashboard.
8 Build the weekly automation: every Sunday evening, recalculate all scores, identify week-over-week movers, generate a plain-English summary for each at-risk account (e.g., 'No inbound reply in 22 days, deal stalled at Proposal stage for 18 days'), and post to Slack.
9 Add a 'rep coverage check' view: for any account that scores below 60 and has no logged activity in 14 days, surface the assigned rep's name and last touch so you can route a nudge before the forecast call.
10 Wire LinkedIn enrichment through browser automation so account-level company data — headcount changes, funding rounds, new hires — refreshes weekly and can factor into manual score overrides.
11 Build a secondary view for the CRO: top 20 accounts by ARR, current health score, trend arrow (up/down/flat vs. last week), and the single biggest risk factor per account. Export or share as a live link — no slides needed.
12 Each Monday morning, review the Slack digest, pull up the at-risk list, and use Starch's CRM app to log any intervention actions — reply drafts, re-engagement tasks, or stage corrections — directly from the same surface.

See this running on Starch

Connect your tools, describe what you want, and the agent builds it. Closed beta is free.

Try it on Starch →
Worked example

Q2 2026 Mid-Quarter Health Sweep — Week of April 14

Sample numbers from a real run
Meridian Logistics (ACV $84,000) — score dropped from 71 to 4484,000
Farrow & Crane (ACV $52,000) — score stable at 68, last reply 9 days ago52,000
Tidewater SaaS (ACV $31,000) — score 29, no inbound reply in 41 days31,000
Halcyon Payments (ACV $120,000) — score 81, deal advanced from Proposal to Negotiation120,000

Sunday evening the automation runs. By 7:04pm, the Slack digest is in #revops. Meridian Logistics dropped 27 points — the model flagged that their deal has been stuck at Proposal for 23 days, the last inbound reply was 18 days ago, and the Apollo sequence went cold after step 4. The assigned rep hasn't logged any activity in 11 days. That's $84k sitting in a stage it should have cleared two weeks ago. Tidewater is worse: score of 29, 41 days of silence, no sequence enrollment at all. You add both to a 'Monday intervention' list before the forecast call even starts. Halcyon, on the other hand, advanced stages — the model picked that up from the HubSpot deal sync and bumped the score to 81. You take it off the watch list. When the CRO asks 'what are we worried about this week?' you have a ranked answer with reasons, not a vague feeling. The whole prep took you four minutes instead of forty.

Measurement

How you'll know it's working

Percentage of open ARR with a health score below 50 (at-risk ARR ratio)
Average days since last inbound reply, segmented by deal stage
Week-over-week score change for accounts in the top 20 by ACV
Rep coverage rate: percentage of at-risk accounts with logged activity in the past 14 days
Forecast call prep time: minutes spent assembling the at-risk list before Monday standup
Comparison

What this replaces

The other ways teams handle this today, and how the Starch version compares.

HubSpot health scores + manual Sheets model
HubSpot's built-in scoring is limited to CRM-native signals; adding Apollo sequence data and Gmail reply rates requires manual exports and a Sheet that goes stale between refreshes — Starch replaces the Sheet with a live app that recalculates automatically.
Gainsight or ChurnZero
Purpose-built CS platforms with deep health scoring, but they require a dedicated admin, a multi-month implementation, and per-seat pricing that's hard to justify for a 2-person RevOps team running a 30-rep org — Starch lets you define equivalent logic in a prompt and ship it this week.
Salesforce Health Cloud or custom Salesforce reports
Powerful if you have a Salesforce admin and enough SFDC licenses to build cross-object rollups, but most small RevOps teams don't — Starch connects to Salesforce from its integration catalog without requiring admin-level SFDC configuration work.
Looker or Metabase connected to your CRM
Good for historical BI dashboards, but requires a data pipeline, a SQL-literate analyst, and ongoing maintenance — Starch's natural-language app authoring skips all of that for a 2-person team that needs to ship the dashboard, not configure the warehouse.
On Starch RECOMMENDED

One platform — sales agent crm, crm all running on connected data. Setup in plain English; numbers stay current via scheduled syncs and live agent queries.

Try it on Starch →
FAQ

Frequently asked questions

We use Salesforce, not HubSpot. Can Starch still build a health scoring app from our CRM data?
Yes. Connect Salesforce from Starch's integration catalog; the agent queries your contacts, accounts, opportunities, and activity data live when the health app runs. The scoring logic you define works the same way — you're just pointing it at Salesforce instead of HubSpot. Note that HubSpot has the deepest scheduled-sync integration (data refreshes automatically in Starch's database), while Salesforce is queried live from the integration catalog, so query timing differs slightly.
Is Starch SOC 2 certified? We have to answer a security question from our CRO before connecting HubSpot.
Not yet. Starch is not currently SOC 2 Type II certified. That's worth knowing before connecting production CRM data. If your org requires SOC 2 as a prerequisite, that's a legitimate blocker today — flag it and revisit when certification lands.
Can the health score pull in support ticket data from Zendesk or Intercom?
Yes. Connect Zendesk or Intercom from Starch's integration catalog; the agent queries open ticket counts, resolution times, and CSAT scores live and can factor them into the scoring formula you define. Just describe it in your prompt: 'add 15-point penalty if the account has more than 2 open tickets unresolved for 7+ days.'
How current is the data? If a rep logs a call in HubSpot at 2pm, will the health score reflect it by the forecast call at 3pm?
HubSpot syncs on a schedule — not in real time. For most RevOps use cases (weekly forecast prep, Monday digests) that's fine. If you need intra-day freshness, you can trigger a manual recalculation from inside Starch rather than waiting for the next sync cycle. Starch is designed for live operational surfaces, not a long-horizon data warehouse, so scheduled syncs rather than real-time streams are the honest tradeoff here.
We don't have a uniform definition of 'healthy' across our segments — enterprise accounts are judged differently than SMB. Can the scoring model handle that?
Yes, and this is where the natural-language authoring pays off. Describe two separate scoring models in plain language — one for enterprise (weights deal stage velocity and exec engagement more heavily) and one for SMB (weights reply recency and sequence activity) — and Starch builds both views. You can surface them as separate tabs in the same health dashboard.
What happens if Apollo is down or rate-limits us during the Sunday recalculation?
The automation will log the failure and skip the Apollo data for that run rather than blocking the entire digest. You'll see a note in the Slack post indicating Apollo data is stale for that cycle. The HubSpot and Gmail signals will still calculate normally. You can re-run the Apollo query manually once the rate limit clears.

Ready to run score customer health on Starch?

Request closed-beta access. Everything is free during beta.

You're on the list! We'll be in touch soon.