Inbound Marketing Thoughts and Curation Blog - All Articles

What Does a Good HubSpot Data Model Look Like for Associations?

Written by Boyd Wason | 15 Sep, 2026

Quick answer: A good HubSpot data model for associations separates people, organisations, and memberships into distinct records rather than flattening everything onto a Contact. Contacts represent individuals, Companies represent organisations, and Custom Objects capture repeatable relationships like memberships, event registrations, and committee terms. This structure preserves history, supports accurate reporting, and makes automation reliable.

An association migrates thousands of records into HubSpot. The project goes well. Data lands where it's supposed to. Everyone breathes out.

Six months later, staff are back to asking questions nobody can answer cleanly.

How many active memberships do we actually have? Which organisations are members, and which people are covered under those memberships? Who renewed last year but didn't renew this year? Which committee members are also current members? Which member organisations have staff attending events?

These aren't obscure questions. They're the questions a membership organisation should be able to answer on a Tuesday afternoon without opening three spreadsheets.

When the answers don't come easily, the instinct is to blame reporting. Build another dashboard. Add another filter. Ask HubSpot support why the numbers look wrong.

But the numbers usually aren't wrong. They're just built on a structure that was never designed to answer these questions in the first place.

This is rarely a reporting problem. It's a data modelling problem. And the way information gets structured in HubSpot determines what an association can later automate, segment, and report on with any confidence.

What Is a HubSpot Data Model?

A HubSpot data model defines three things: what types of records exist, what information belongs on each record, and how those records relate to one another.

Strip away the software jargon and it's a familiar concept. Every association already has an informal data model in its head. Someone knows that Jane Smith works at ABC Engineering. Someone knows ABC Engineering holds a corporate membership. Someone knows Jane sits on the technical committee. The knowledge exists—it's just scattered across people, not structured in the system.

HubSpot gives you four building blocks to formalise this:

  • An object is a category of record, such as Contacts, Companies, Deals, or Custom Objects.

  • A record is a specific instance of that object—Jane Smith is a Contact record; ABC Engineering is a Company record.

  • A property is a piece of information stored on a record, like Jane's email address or ABC Engineering's industry.

  • An association is the link between two records, such as connecting Jane's Contact record to the ABC Engineering Company record.

Get these four pieces right, and reporting, segmentation, and automation become straightforward. Get them wrong, and every downstream project inherits the problem.

The First Rule: A Contact Is a Person, Not the Entire Membership Relationship

Jane Smith is a Contact. Her record should hold information that belongs to her as a person: name, email, phone number, job title, communication preferences, and personal attributes relevant to how the association engages with her.

What shouldn't live on Jane's Contact record is her entire membership history, her committee appointments, her event attendance, or ABC Engineering's corporate membership status.

This is where a lot of association CRM structures quietly go wrong. HubSpot makes it easy to add a new property, so teams add one. Then another. Then a workaround for a scenario nobody anticipated.

The pattern usually looks something like this:

  • Membership 1 Start Date
  • Membership 1 End Date
  • Membership 2 Start Date
  • Membership 2 End Date
  • Previous Membership Status
  • Membership Notes (Free Text)

It works for exactly as long as a member has one membership and never changes anything. The moment Jane lapses, rejoins, upgrades her membership level, or holds both an individual membership and coverage under ABC Engineering's corporate membership, the property list can't keep up. Someone eventually overwrites a field that held useful history, and that history is gone.

Properties are excellent for facts that describe a person. They're a poor substitute for a relationship that changes shape over time.

Companies Should Represent Organisations, Not Just Employers

In a standard HubSpot setup, a Company is where a Contact works. For associations, a Company needs to do more.

ABC Engineering isn't just Jane's employer in this model. It might also be a corporate member, an event sponsor, a supplier, or a government body the association liaises with. All of these are organisations, and all of them belong on the Company object.

This matters most for associations running corporate or organisational membership. A single Company record can have ten associated Contacts, each playing a different role: one is the primary billing contact, another is the technical representative on a committee, another simply works there and has no active relationship with the association at all.

Modelling ABC Engineering as a Company—separate from any individual membership Jane might hold personally—means the association can track the corporate relationship and the personal relationship independently, without one overwriting the other.

A Membership Should Be a Record in Its Own Right

This is the most important architectural decision in the entire model.

Membership is not a status. It's not a pair of date fields. It's a relationship with its own lifecycle, and it deserves its own structured record—almost always a Custom Object in HubSpot.

A well-built Membership record can hold:

  • Membership type and level
  • Member number
  • Start date, end date, and renewal date
  • Membership status
  • Pricing or fee amount
  • Payment status
  • Eligibility information
  • Associated Contact (for individual memberships)
  • Associated Company (for organisational memberships)
  • Renewal history

The value of this approach is simple: separating the Membership record from the person or organisation means Jane can hold multiple historical memberships over time without any of them being overwritten. Last year's membership record stays intact. This year's is a new record, associated back to Jane. Nothing is lost in the transition.

Individual and organisational memberships often need slightly different treatment. An individual membership associates to a Contact. An organisational membership associates to a Company, and may need to define which individuals are covered under it—which is a different relationship again from "works at this Company."

Once membership lives as its own object, questions like "which organisations are current members" or "who renewed last year but not this year" stop being manual audits and start being filtered views.

When Should an Association Use HubSpot Custom Objects?

Rather than a fixed rule, this comes down to a set of conditions. A concept is a good candidate for a Custom Object when it has its own lifecycle, occurs multiple times, needs its own properties, needs to be associated with multiple other records, or needs independent reporting and automation.

Membership meets all five criteria for most associations. So do several other common concepts:

  • Event Registration
  • Committee Appointment
  • Credential or CPD Record
  • Chapter Membership

Not every concept clears this bar, and it shouldn't. The goal isn't maximum technical sophistication. It's an architecture that accurately reflects how the association actually operates. A Custom Object created for something that never repeats and never needs its own reporting just adds complexity without adding value.

Properties vs. Records: How to Decide Where Information Belongs

The decision comes down to one question Engaging Partners asks in almost every discovery session: can this happen more than once, and do we need to keep the history?

If the answer is no, a property is usually the right call. Good Contact properties include preferred name, profession, region, and communication preference—stable attributes that describe Jane as a person and don't need a historical trail.

If the answer is yes, the information probably deserves its own record. Memberships, event registrations, committee terms, and qualifications all fall into this category, because Jane's relationship with each of them can change, repeat, or need to be reported on independently over time.

Association Labels Are What Make Relationships Meaningful

Knowing that Jane's Contact record is associated with the ABC Engineering Company record tells you almost nothing on its own. What matters is how she's associated with it.

HubSpot's association labels solve this. They let you specify the nature of a relationship rather than just its existence:

  • Employee of
  • Primary membership contact
  • Billing contact
  • Authorised representative
  • CEO
  • Committee chair
  • Sponsor contact

Consider a corporate membership where ABC Engineering has ten employees as associated Contacts. Without labels, that's just ten records linked to one Company, with no way to know who to contact about renewal. With labels, the association can immediately filter for the one Contact marked "primary membership contact" and know exactly who to email when the renewal is due.

For associations managing organisational memberships at any scale, association labels aren't an optional refinement. They're the difference between a usable Company record and a list of names nobody can act on.

How Should Event, Committee, and CPD Data Fit Into the Model?

Event registrations, committee appointments, chapter participation, and CPD or credential records are all engagement and participation data. They describe what Jane does, not who she is—which is exactly why they shouldn't sit as properties on her Contact record.

The right architecture for each depends on how central that activity is to the association's reporting and automation needs. An association that runs CPD-accredited events and needs to prove compliance to a regulator will need a far more structured CPD Record object than one that just wants a rough attendance count.

What matters is that each of these records connects back to both the person and the organisation where relevant. An Event Registration for Jane should associate to her Contact record and, ideally, to the ABC Engineering Company record too—so the association can answer "which member organisations have staff attending our events" without cross-referencing three lists by hand.

Why Membership History Should Never Disappear at Renewal

Here's a habit that quietly undermines good reporting: when a member renews, someone updates Membership Status to "Active" and pushes the Expiry Date out to 2027.

That single edit erases the answer to several questions the association will eventually need to answer:

  • Who renewed, and who lapsed?
  • How long has this member actually been with us?
  • What was our retention rate last year?
  • Did this member upgrade or downgrade their level?
  • How many separate membership periods has this organisation held over time?

When each renewal creates a new Membership record instead of overwriting the last one, this history stays intact automatically. Retention analysis, cohort reporting, and lifetime value calculations all become possible because the data was never destroyed in the first place.

What Happens When the Data Model Is Wrong?

The consequences rarely show up on day one. They show up gradually, as the CRM gets used for real work.

Workflows start triggering for the wrong people, because the automation logic depends on a property that means something different than the team assumed. Membership counts become unreliable, because there's no clean way to distinguish current members from historical ones. Event activity can't be tied back to the organisations that sent attendees. Staff start building spreadsheets alongside HubSpot because the system can't answer the questions they need answered. Renewals require someone to manually check three fields instead of filtering one view. Different teams pull different membership numbers for the same board report. Integrations become harder to build, because there's no clean object to sync against. Duplicate properties multiply as staff work around the gaps.

None of this is a HubSpot limitation. It's the operational cost of a data model that was never built to reflect how the association actually works.

How Engaging Partners Designs the Data Model Before Configuring HubSpot

The build always comes second. Before any object gets created or any property gets added, Engaging Partners works through the association's membership model, its business processes, its reporting requirements, the relationships between its key entities, its historical reporting needs, its automation requirements, and any systems it needs to integrate with.

Only once those questions have clear answers does the actual configuration decision get made: which objects are needed, what properties belong where, how records should associate, which labels distinguish those associations, and who owns each piece of data going forward.

For associations layering an association-specific system like NativelyAMS on top of HubSpot, this sequencing matters even more. NativelyAMS extends HubSpot's native objects with membership-specific functionality, but it still depends on the underlying Contact, Company, and Custom Object structure being sound. A strong data model makes that layer more powerful. A weak one just gives the problems somewhere new to surface.

The Data Model Is the Foundation of the HubSpot Implementation

Dashboards, automation, and member experiences are all downstream of architecture. None of them can be better than the structure underneath them.

It's easy to add another property to a Contact record. It takes five minutes and solves today's problem. It's much harder to redesign that structure once thousands of records, dozens of workflows, and a stack of board reports all depend on the way things were originally set up.

Associations planning a HubSpot implementation, or replacing an AMS, get the best outcome by settling the architecture questions before any configuration begins. Engaging Partners works through exactly this process with membership organisations—mapping the membership model, the reporting requirements, and the relationships between people, organisations, and memberships, before a single object gets built in HubSpot. If your association is at that stage, it's worth talking through the architecture first.

Frequently Asked Questions

Should membership information be stored as Contact properties or as a separate object?
Membership should be modelled as its own record, typically a Custom Object, rather than as properties on the Contact. This allows an association to preserve full membership history and manage multiple memberships—individual or organisational—without overwriting previous data at renewal.

What's the difference between a Contact and a Company in an association CRM?
A Contact represents an individual person, such as Jane Smith. A Company represents an organisation, such as ABC Engineering. For associations, Companies can also represent corporate members, sponsors, suppliers, and government bodies—not just employers.

When does an association need a HubSpot Custom Object instead of a property?
A Custom Object is worth using when a concept has its own lifecycle, occurs multiple times, needs independent properties, needs to associate with multiple other records, or requires its own reporting and automation. Membership, event registrations, and committee appointments typically meet this threshold.

What are HubSpot association labels used for?
Association labels describe the nature of a relationship between two records, rather than just confirming that a relationship exists. For example, they can distinguish a "billing contact" from a "committee chair" within the same set of Contacts linked to a Company.

Why does a poorly structured data model cause problems later, even if HubSpot is set up correctly?
Because reporting, automation, and integrations are all built on top of the data model. If Contacts, Companies, and memberships aren't structured to reflect real relationships, workflows trigger incorrectly, membership counts become unreliable, and staff end up managing data outside HubSpot in spreadsheets.