Skip to content

Case study · Cleanup and implementation

From job-number deals to a working pipeline

A multi-division training and consulting firm owned HubSpot but used it mainly to generate job numbers for accounting. I cleaned up the portal, rebuilt three division pipelines, tied QuickBooks invoices to deals by job number, and built reporting that shows whether the team is managing pipeline.

Client
Multi-division security training and consulting firm
Platforms
HubSpot Sales Hub and Marketing Hub, QuickBooks Online, Zapier, HubSpot private app
Services
Cleanup and implementation, reporting

Key result

98%

of historical revenue tied to accounts in HubSpot, split by division

  • 3

    division pipelines built around how each team sells

  • 826

    duplicate contacts merged

  • 99

    renewal targets surfaced on day one

The situation

The firm sells training, consulting and protection services, each run by its own division lead with its own sales motion. HubSpot had been implemented years earlier, but the team had settled into using it for one thing: creating a deal when accounting needed a job number.

Everything else lived somewhere else. Pre-sale conversations sat in inboxes. Post-sale tracking lived in spreadsheets. Revenue lived in QuickBooks, split across two company files. Leadership could not see what was in progress, what each account was worth, or which clients were due for renewal.

What was getting in the way

  • Deals existed for accounting

    They were created when a job was already won, so the pipeline showed almost nothing in progress.

  • Billing and CRM never met

    Invoices carried job numbers in QuickBooks, but nothing tied them back to a deal or company.

  • Years of stale records

    Deals sat in legacy stages, fields were duplicated, and list imports had created hundreds of duplicates.

  • Three divisions, three motions

    Training books quickly, Consulting scopes longer engagements, Protection works through letters of engagement.

Every invoice now lands on the deal that produced it, which made pipeline, lifetime value and renewals measurable in one system.

What I built

Cleanup first, then pipelines, billing and the reporting that keeps it honest.

  1. A full cleanup

    Legacy deals corrected by each division lead and reloaded, duplicate fields and contacts merged.

  2. Three division pipelines

    Job numbers created at the right stage per division, with required fields that stop stage skipping.

  3. Invoices tied to deals

    A custom integration on Zapier and a private app matches each invoice's job number to its deal.

  4. Accounting alerts

    Flags for invoices without a job number and job numbers without a deal.

  5. Lifetime value and retention

    Per-division value, last service and expired-certification lists on every company.

  6. Adoption reporting

    Issue tags, a weekly opportunities report and a dashboard tracking deals created at close.

How it works now

Before
After
BeforeDeals created only for a job number
AfterDivision pipelines worked from the first conversation
BeforeInvoices never reached the CRM
AfterEvery invoice associated to its deal by job number
BeforeAccount value lived in accounting
AfterLifetime value and last service by division on each company
BeforeAdoption was anecdotal
AfterA weekly report flags deals needing attention

What carries to your firm

If your team only creates deals when accounting needs them, start with billing.

Tie the CRM to your accounting system so every invoice lands on a deal. Then build pipelines that match how each team sells, and report on behavior so leadership can track adoption week to week.