How to score customer health as Professional Services Founders

Customer SupportFor Professional Services Founders2 apps12 steps~24 min to set up

You run a 12-person consultancy. You have a rough sense of which clients are healthy and which are drifting — but that sense lives in your head, not in a system. A client's health score is whatever you remember from the last call, minus whatever slipped through because nobody updated HubSpot after the debrief. Retainer renewals sneak up on you. An account goes quiet for six weeks and you notice on week seven. You're stitching together HubSpot deal stages, Gmail thread recency, Stripe invoice aging, and gut feel — none of which talk to each other. By the time you realize a client is at risk, they've already mentally moved on.

Customer SupportFor Professional Services Founders2 apps12 steps~24 min to set up
Outcome

What you'll set up

A live client health dashboard that pulls HubSpot deal data, Gmail thread recency, and Stripe invoice status into a single score per account — updated automatically, not on a senior's Friday
An automated alert that flags any account where email contact has gone quiet for more than 14 days, an invoice is overdue, or a renewal date is within 60 days
A weekly digest delivered to Slack that surfaces your three most at-risk retainer clients with the specific signals driving each score
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 on a schedule (contacts, companies, deals, deal stage history). Starch syncs your Gmail data on a schedule (thread recency, last sender, labels). Starch syncs your Stripe data on a schedule (invoices, payment status, subscription state). Google Calendar is synced on a schedule to check upcoming meeting presence. Slack is connected from Starch's integration catalog; the agent queries it live to post the weekly digest. All scoring logic and alert thresholds are described in plain language — you tell Starch how to weight the inputs.

Prompts to copy
Build me a client health scoring app. Each client should get a score from 1–10 based on: days since last Gmail thread, whether their most recent Stripe invoice is paid or overdue, number of HubSpot deal stage changes in the last 30 days, and whether we have a meeting on the calendar in the next 14 days. Show me a dashboard ranked by score, lowest first. Flag anyone below 6 in red.
Every Monday at 8am, generate a Slack summary of the three lowest-scoring clients from my health dashboard. For each one, include the specific signals that dragged the score down and a suggested next action — for example, 'No email contact in 18 days — send a check-in' or 'Invoice 30 days overdue — escalate to billing conversation'.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect HubSpot as a scheduled-sync provider — Starch pulls your contacts, companies, deals, and deal stage history automatically. If your pipeline lives in a Google Sheet instead, connect Google Sheets from Starch's integration catalog; the agent queries it live.
2 Connect Gmail as a scheduled-sync provider — Starch tracks thread recency and last-contact date per client domain, so you know whether anyone on your team has been in touch this month.
3 Connect Stripe as a scheduled-sync provider — Starch pulls invoice status, payment dates, and subscription data so overdue invoices surface in the health score automatically.
4 Connect Google Calendar as a scheduled-sync provider — Starch checks whether a client meeting exists in the next 14 days, which is one of the strongest leading indicators that a relationship is active.
5 Open Starch and describe your health scoring model in plain language: which signals matter, how to weight them, and what score threshold means 'at risk.' Starch builds the scoring logic and the dashboard from that description.
6 Review the initial scores — you will almost certainly find one account you thought was fine sitting at a 4 because nobody has emailed them in 23 days and their last invoice cleared 45 days ago.
7 Adjust the weighting by telling Starch what to change: 'Give overdue invoices double weight' or 'Don't penalize clients where we have a call booked in the next 7 days.' Starch updates the logic immediately.
8 Set up the Monday morning Slack automation: Starch pulls the three lowest-scoring clients, summarizes the signals, and posts to your #client-health channel before your weekly team standup.
9 Add a renewal-date alert: tell Starch to flag any client whose retainer renewal is within 60 days and whose health score is below 7, and to Slack you directly — not the team channel — so you can take the renewal conversation personally.
10 Ask the CRM a natural-language question to validate the setup: 'Which clients haven't had an email from us in more than 21 days?' — if the answer surprises you, you have found your first real use of the system.
11 Review the dashboard at your weekly leadership meeting instead of asking a senior to compile a status slide. The signal is live; the conversation can be about action instead of assembly.
12 Each quarter, revisit the scoring weights with your team. Retainer clients have different risk signatures than project clients — you can maintain separate scoring models for each and toggle between them in the dashboard.

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

Q1 2026 retainer health review — Meridian Consulting (8-client book)

Sample numbers from a real run
Thornfield Capital (retainer, $14,000/mo)3
Arcos Group (project, $28,000 remaining)7
Pelham & Associates (retainer, $8,500/mo)8
Vantage Infrastructure (retainer, $11,000/mo)5
Sunridge Media (project, $19,000 remaining)9
Keller Advisory (retainer, $6,000/mo)4
Dune Capital (retainer, $22,000/mo)8
Fairway Partners (retainer, $9,500/mo)6

Meridian runs eight active client relationships worth roughly $89,000 in monthly and project revenue. Before the health dashboard, the founder had a vague sense that Thornfield Capital was 'a little quiet' but assumed no news was good news. The dashboard surfaced the reality: Thornfield's score was a 3 — last Gmail thread was 31 days ago, their February invoice ($14,000) was 22 days overdue, no meeting on the calendar, and the HubSpot deal stage hadn't moved in 47 days. Keller Advisory scored a 4 for different reasons: email contact was recent, but their March retainer renewal was 38 days out and nobody had sent a renewal proposal. Vantage Infrastructure scored a 5 because the invoice was paid but email recency was thin — turns out the senior lead had left the firm and nobody had updated the contact in HubSpot. The Monday Slack digest surfaced Thornfield, Keller, and Vantage as the three to address that week. The founder called Thornfield on Tuesday; the invoice cleared by Thursday. Keller's renewal proposal went out Wednesday. Total time to go from 'vague unease' to three concrete actions: one Monday morning Slack notification.

Measurement

How you'll know it's working

Average client health score across the retainer book, tracked weekly
Number of active retainer clients with health score below 6 at any point in the quarter
Days since last meaningful client contact (email or meeting) per account
Invoice aging: percentage of retainer invoices paid within 15 days of issue
Retainer renewal rate: what percentage of eligible renewals convert, and what was the average health score of accounts that churned
Comparison

What this replaces

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

HubSpot + manual deal stage hygiene
HubSpot tracks deal stages and contact history, but it only knows what your team remembers to log — it has no concept of invoice aging from Stripe or email recency from Gmail, so the 'health' signal is only as good as your CRM discipline, which at 12 people is never perfect.
Gainsight or ChurnZero
Purpose-built customer success platforms with sophisticated health scoring, but they're priced for SaaS companies with 200+ accounts and a dedicated CS team to configure and maintain them — at a 12-person consultancy with 8 retainer clients, the implementation cost alone is a multiple of the value.
Spreadsheet-based monthly status review
A senior spends two to three hours on the last Friday of the month pulling data from HubSpot, Gmail, and Stripe into a Google Sheet — it's accurate once a month and stale the other 29 days, which is exactly when the at-risk signal would have been useful.
Kantata (formerly Mavenlink) or Deltek
Enterprise PSA tools that include client health and utilization tracking, but they're built for 200-person firms, take a quarter to implement, require dedicated admin, and will replace tools your team already knows rather than sitting on top of them.
On Starch RECOMMENDED

One platform — crm, sales agent 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

Our pipeline lives in a Google Sheet, not HubSpot. Does this still work?
Yes. Connect Google Sheets from Starch's integration catalog; the agent queries it live when your health app runs. You won't get the deal-stage history depth you'd get from a scheduled HubSpot sync, but you can still pull contact names, deal values, and any columns you track. If you want to migrate, Starch's CRM app lets you describe your existing sheet structure and builds a custom CRM from it.
How does Starch know whether an email thread is with a client vs. internal?
You tell it. When you build the health app, you specify the rule: 'Match email threads to clients by the company domain in HubSpot.' Starch filters accordingly. If a client uses a personal Gmail address rather than a company domain, you can add that as an exception in plain language — 'Also count emails from jane@gmail.com as Thornfield Capital contact.'
Will this work if different team members own different client relationships?
Yes — and that's actually where it's most valuable. The health dashboard shows recency and invoice status at the account level regardless of which team member owns the relationship. The weekly Slack alert goes to you, the founder, so you see the full picture even when individual seniors are heads-down on delivery.
Is Starch SOC 2 certified? Our enterprise clients ask about this.
Not yet — Starch is not currently SOC 2 Type II certified. If your clients have formal vendor security review requirements, that's an honest constraint to weigh. For most 12-person consultancies, this isn't a blocker for internal tooling, but it's worth knowing upfront.
What happens if the health score model I describe doesn't feel right after a few weeks?
Tell Starch to change it. 'Give overdue invoices twice the weight of email recency' or 'Add a positive signal for clients who have attended more than two of our quarterly reviews' — the app updates the logic immediately. You're not editing a config file; you're describing the change the same way you'd explain it to a team member.
Can Starch pull data from Harvest or Float for utilization signals in the health score?
Harvest and Float are web-based SaaS tools. If they're accessible through Starch's integration catalog, the agent can query them live. If not, Starch can automate them through your browser — no API needed. You'd tell Starch: 'Also pull hours logged per client from Harvest this month and include utilization as a health signal.'

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.