Hey @NEynon , this is a genuinely hard modeling problem, and you’ve already identified the core constraint correctly. HubSpot is still fundamentally email-centric. A contact record represents a person, and email remains the primary, immutable identifier.
Phone numbers are treated as mutable attributes, not identities. That means HubSpot can’t really support “phone number as a first-class entity” in the same way your business logic does.
With how HubSpot works today, the cleanest mental model is this: contacts are people, transactions are events.
If phone numbers can move, be shared, or exist before an account is created, they shouldn’t be the backbone of the contact record itself. Instead, they should live on a transactional object that can change over time.
In practice, that usually means one of two patterns. The most common is to keep a single contact per real person (anchored to the email once it exists), and store each purchase or call as a deal, ticket, or custom object. Each transaction record captures the phone number used at that moment.
When Tom later links accounts or adds a new number, you associate those past transaction records to the same contact, but you don’t try to retroactively “merge identities” at the phone level.
This avoids fighting HubSpot’s identity rules. HubSpot’s contact model and deduping behavior are outlined here (Deduplicate records in HubSpot )
The alternative, creating one contact per phone number and trying to associate and disassociate contacts over time, tends to break down quickly. Associations between contacts exist, but HubSpot doesn’t treat them as identity joins. Reporting, attribution, and automation all assume one primary contact, so you end up constantly undoing merges or duplicating history.
So in your example, Tom ultimately becomes one contact once the email exists. The different phone numbers remain historical facts on the transaction records. The contact evolves, but the events keep their original context. That model scales better and stays aligned with HubSpot’s core assumptions.
If you want, the next question to clarify is which object today represents a “purchase” for you, because that usually determines whether deals, tickets, or a custom object is the right home for those phone numbers.