HubSpot case studies | The Lunse

How TriState HVAC moved commission payroll out of a spreadsheet and into HubSpot

Written by Jonathan Snavely | Nov 9, 2026, 8:54:42 PM

Every month, TriState HVAC's finance team rebuilt commission payroll by hand. The deal lived in HubSpot, the job lived in BuildOps, and the math lived in a spreadsheet.

If your finance team trusts the spreadsheet more than the CRM, here's how that gap closed.

  • 100% of commission payroll paid from HubSpot since September 2026
  • 1,900+ booked jobs on automated 18-month commission schedules
  • $319K in overpaid commission recovered or scheduled

At a glance

Platform
HubSpot Sales Hub Enterprise, Data Hub Enterprise, Revenue Hub Professional, Marketing Hub Professional
Connected systems
BuildOps, Snowflake, Google Cloud
Timeline
Records live December 2025, payroll cut over September 2026
My role
Strategy, architecture, build, and ongoing administration

The challenge

Commission is paid on margin, not revenue, in 18 monthly installments. A single job can split across several reps and partner companies.

None of that math lived in HubSpot. Three problems kept it out:

  • Margin started in HubSpot but didn't stay there. It's set on the quote when the job is priced. Once the job moves to BuildOps, real costs change it, and HubSpot never sees the final number. What reps are paid and what the job earns drift apart.
  • The field and the CRM disagreed. When a job changed status in BuildOps, HubSpot didn't always follow, and the payout schedule could drift.
  • Errors surfaced after payday. A wrong split or a duplicate payment was found only after a rep had been paid.

The strategy

The goal was one trusted source for pay, built where TriState already worked. Three calls shaped the scope:

  • Build on HubSpot, not around it. Native deal splits can't hold company-level shares or an 18-month schedule, so payouts became custom records tied to each deal.
  • Own the margin math. The integration vendor would have needed a paid build to skip quoted deals. TriState chose to route events through its own cloud engine instead, then gave the vendor notice.
  • Earn trust before cutover. HubSpot ran in parallel with the CFO's workbook for nine months, and he held the go-live gate. The parallel run surfaced errors the old process had missed, such as jobs paid on the wrong split and jobs never booked at all. Each was reconciled before cutover. Every bulk change and deploy needed my named approval, after a review by a separate AI agent that never saw the build.

Scope moved in three-month phases, each approved by the owner, with a working demo every week.

The solution

I rebuilt commissions as data inside HubSpot instead of math in a spreadsheet.

  1. Commission records in the CRM. Two custom objects hold every payout. Booking a job builds a revenue allocation for each split company and 18 monthly installments for each rep.
  2. A calculation engine on Google Cloud. Deal margin rollups are moving off a third-party integration platform, retired in December 2026, onto a Cloud Run service that works with HubSpot through a private app and webhooks.
  3. Field data connected. BuildOps job status, shared through Snowflake, is checked against HubSpot every morning. Changes in the field drive the CRM.
  4. Guardrails before payroll. Custom code workflow actions stop installments from building on an incomplete deal, and a locked close date protects the payout schedule.
  5. A true-up after the last payment. In month 19, TriState's in-house audit tool compares final margin to what was paid and writes the difference back as an adjustment.
  6. Reports people pay from. The CFO pays from a HubSpot export report. Each rep has a dashboard with their own pay 18 months forward.

Next: The same engine powers a HubSpot UI extension for quoting, now heading into beta, so margin is right from the first quote.

From quote to payroll, numbered in the order each step happens.

The impact

HubSpot became TriState's system of record for compensation, not just pipeline.

  • Time to value: Commission records went live in December 2025. After a nine-month parallel run, payroll fully cut over to HubSpot in September 2026. The spreadsheet is now archived.
  • Reps: Reps used to have little visibility into what they'd be paid until payday. Now each rep opens HubSpot and sees next month's pay and an 18-month forecast, job by job. Pay stopped being a black box, and that builds trust between the sales team and the business.
  • Finance: Pays from the CRM instead of reconciling against it, and fields fewer "why is my check different" questions.
  • Accuracy: The first full audit matched 1,887 of 1,901 schedules (99%).
  • ROI: As of November 2026, audits and month-19 true-ups have recovered or scheduled $175K in overpaid commission and paid $108K to reps who were shorted. Cancelled jobs now trigger clawbacks automatically, another $144K.

AI impact

Leadership uses AI on HubSpot daily, so the CRM had to be AI-readable and safe to act on.

  • Context AI can read. Leadership wanted to ask Claude which contractor won a job, across years of deals. HubSpot's AI connector couldn't see that relationship, so I wrote it onto all 16,781 deals in four minutes, with zero failures. An hourly job keeps it current.
  • An agent that proposes, a human who decides. A custom deal integrity agent on Google Cloud reviews every booked job each morning. It proposes each fix as an Accept or Reject card. Nothing applies on its own, and a fix type earns autonomy only after a clean track record.
  • AI-checked true-ups. Every commission adjustment is logged the day it's made, so the AI behind TriState's audit tool checks a job's full adjustment history before its 19th-month true-up.

"[Fresh quote from John, 1 to 2 sentences. Prompt: What changed for finance and leadership now that commissions run from HubSpot?]"

John P., [Title], TriState HVAC