RevOps byTom Schoorstra.
← All case studies

HR Technology · 50–200 employees

Connecting the full customer relationship in HubSpot

I led AIHR's Account-based CRM project, from the customer model and association design to historical cleanup, workflows and recurring review.

September 2026 project snapshot: the core setup is live; enrichment remains in progress.

Why one Company record was not enough

One customer could have several Company records, licenses, deals and service projects. Parent companies and subsidiaries made grouping harder. The data team needed one customer identifier for retention reporting across current and historical contracts.

How I connected the records

I defined the Account model and association rules, reviewed duplicates and parent-child relationships, and backfilled active and historical B2B customer records. Older licenses stay linked for retention reporting.

Three automated paths create or find Accounts for new licenses and professional services, and link deals. The associated Company is the matching point. The setup uses HubSpot custom objects, workflows and JavaScript.

A customer layer for reporting

The Account layer gives the data team a consistent customer identifier for account-level retention reporting.

One Account connects the customer relationship

The custom Account groups the records belonging to one customer. Company records anchor the matching.

Account

Example Group

  • Companies

    Example Netherlands and Example UK

  • Licenses

    Team training license

  • Deals

    Expansion deal

  • Professional services

    Advisory engagement

Illustrative records with fictional names. Workflows link new records; the weekly review flags missing links and possible duplicates for investigation.

Weekly review and its limits

I manually start a weekly check comparing new Accounts with the full account base. It looks for possible duplicates and parent-company relationships using names, domains and previously reviewed relationships.

It also flags licenses and professional services without an Account, and signed deals missing expected service records. Codex and Claude Code help assess candidate matches and put findings in context.

Incomplete source data or an unexpectedly large candidate list stops the run for investigation. I review the findings before changing HubSpot. The check itself does not merge records or change associations.

Related expertise: HubSpot automation · HubSpot consultancy · HubSpot custom objects.

Want to compare notes on this project? Get in touch.