Skip to content
Solution Blueprint

AI client health scoring from calls, email, and Slack for a professional services firm

Hero featured image

Account health at the firm depended on a weekly traffic meeting, and when two website engagements ran about 250 hours past budget, the only record was a line in an email. We passed on a single automated score, which nobody could check, and built an event-based monitor over Fathom calls, Gmail, and Slack. Account managers now see each active account by tier, with the evidence one click away.

Executive Summary

context-header-icon

Context

A multi-region professional services firm on HubSpot, running more than 40 active North America client accounts across project and retainer work. Account health depended on who attended the weekly meeting and what they recalled.

what-we-built-header-icon

What We Built

A scoring pipeline that tags client events from three sources, weighs them by confidence and recency, and publishes a tiered portfolio board with the evidence behind each tier one click away.

tech-stack-header-icon

Tech Stack

  • HubSpot CRM
  • Fathom
  • Gmail
  • Slack
  • Supabase
  • Claude
  • password-protected internal page

Not a fit if client conversations mostly happen outside recorded calls and company email, because the monitor can only score what it can read. Also not a fit for a team with fewer than a dozen active accounts, where the weekly meeting already covers each one, or for leadership that wants an automated score with no human review.

the-challenge-header-icon

The Challenge

The first version was a prototype built in about half an hour. It looked right, but every refresh meant a manual sweep across five tools, and it read everything as narrative. A complaint the client had resolved 80 days earlier could still hold an account at risk, and a colleague's frustration about a client counted the same as the client's own words.

Budget overruns, launch slips, and champion departures stayed invisible unless someone wrote them down, and collections status existed only as quotes in Slack. The board could not tell a slow-paying healthy account from one that was preparing to leave.

our-approach-header-icon

Our Approach

The prototype treated health as a written summary, and a summary has no dates to age out and no record of who said what. We rebuilt it as a series of dated events. Each email, call summary, or Slack thread becomes an event tagged with flags such as deadline slip or decision maker absent, with a confidence score and a corroboration check. Every event also records whether the client said it or someone at the firm said it about the client.

The firm's own post-mortems set the next rule. On its two hardest engagements, each SOW called for a Change of Scope at a checkpoint and none was executed. That pattern is now a detection rule on the roadmap, alongside budget burn thresholds at 20, 50, 80, and 100 percent of the SOW figure.

We kept people in the loop on purpose. Judgments are written with a rationale and the event IDs behind them, and account managers review them before the weekly traffic meeting, so a tier changes only after a person has confirmed it.

impact-header-icon

Impact

check-icon

Each risk tier links to its evidence

Each tier links to the Fathom call, Gmail thread, or Slack message behind it. For one of the firm's website clients, the monitor connected two internal traffic meetings and a client email over three weeks into one pattern of slipping deadlines and an absent decision maker. Leadership set a decision deadline and moved the deal to maybe, so the next quarter's development capacity could go to other work.

check-icon

Client voice is kept apart from team sentiment

Separating what the client said from what the firm's team said about the client removed the most common source of false alarms in the prototype, where an internal complaint could tip a healthy account into watch.

check-icon

Gaps in account data are scored

A context completeness score from 0 to 100 flags accounts with no owner on record, no recent events, or a name found in fewer than two systems. The same tool that watches health also cleans the account data it depends on.

check-icon

One portfolio view for client success

Account managers, the program director, and leadership read the same tiered portfolio (champion, healthy, watch, risk) instead of comparing notes from memory. It feeds the same post-sale motion that starts with a sales to service handoff page for every signed deal.

Technical Blueprint
1

Sweeps match on email domain rather than contact name, so a new sender from a known client counts toward that account. This is also how stakeholder changes become visible: a champion who goes quiet while a new name appears is recorded as an event.

2

Each flag has a confidence value and a corroborated marker. Scoring reads days since the last corroborated event and the 30-day event count, so stale complaints age out instead of anchoring a tier.

3

Health score, tier, risk flag, expansion signal, and hygiene issue are written as separate judgments. Each one records its rationale, evidence IDs, recipe version, and model, so a tier change can be audited later.

4

Every run writes a dated snapshot and a reconciliation list of accounts that changed tier, appeared, disappeared, or where sources disagree. Disagreements are shown to a person instead of being resolved silently.

Fathom calls, Gmail and Slack feeding a dated event store, then tiered judgments reviewed by account managers before the portfolio board.

Systems: Fathom call summaries, Gmail threads and Slack threads (the three sources read); HubSpot company records (account manager field, matched by owner); a Supabase event store (one dated event per email, call summary or Slack thread, keyed on client email domain); the scoring step run by Claude (tags flags with a confidence value and a corroborated marker, records whether the client or the firm's own team said it); a judgments store (health score, tier, risk flag, expansion signal, hygiene issue, each with rationale, evidence IDs, recipe version and model); the account manager review (a person confirms a tier change before the weekly traffic meeting); and the password-protected portfolio board (champion, healthy, watch, risk). Flows: each email, call summary or Slack thread becomes an event in the Supabase event store, matched to an account by email domain. Scoring reads days since the last corroborated event and the 30-day event count, then writes judgments with their evidence IDs. Each run writes a dated snapshot and a reconciliation list of accounts that changed tier, appeared, disappeared, or where sources disagree; disagreements go to an account manager instead of being resolved silently. After the review gate, confirmed tiers appear on the portfolio board, and each tier links back to its call, email or Slack message. Layout: left to right in one row, from the three sources to the event store, scoring, judgments, review gate and portfolio board, with HubSpot company records feeding the event store from below and the reconciliation list branching from the judgments step to the review gate.

FAQ

Can an AI health score replace the account manager's judgment?

No, and this one isn't built to. The model tags events from calls, email, and Slack and proposes a tier with its evidence attached. The account manager confirms it before the weekly review, and the evidence links make disagreements quick to settle.

What does it take to run client health scoring on HubSpot without a data warehouse?

A clean account manager field on the HubSpot company record, recorded calls, and company email, because events are matched to accounts by email domain and owner. The heavy work is the tagging rules and domain matching, and the firm ran its first production version on a small Supabase event store beside HubSpot. A first conversation would check how complete your owner fields are and how many client conversations are recorded today.

Continue reading

Hero featured image
209049082795

$500M+ telecom provider: 60+ tools into one event-driven CRM

Hero featured image
209049052783

$500M+ telecom provider: one CPQ for MSP and ISP catalogs

Hero featured image
209049052787

$50M+ telehealth provider: HIPAA-compliant clinical ERP sync

footerCTA footerCTA-mobile
Spice up your inbox
Sign up for our newsletter
Don't worry - we only average, like, two emojis per subject line.