RevOps
{Read Time} min read

HubDB vs Custom Object vs Custom Event vs Property

Vitaly Kan
November 15, 2025

The Practical Guide to Structuring Data in HubSpot

Once you start scaling HubSpot, one question shows up fast:

Where should this data live?

Choose wrong, and you’ll spend months fixing:

  • Broken reports
  • Fragile workflows
  • Confusing associations

Choose right, and the system stays clean, fast, and easy to trust.

After 100+ RevOps projects for SaaS teams, here’s the plain-English decision guide to HubDB, Custom Objects, Custom Events, and Properties.

What HubSpot Data Structuring Actually Means

Data structuring is not about where data can live.

It’s about where it should live.

The right structure ensures:

  • Automations behave predictably
  • Reporting reflects reality
  • Teams don’t fight the CRM

Every data type in HubSpot solves a different problem.

Using the wrong one creates technical debt.

HubDB, Best for Static Reference Data

Think of HubDB as a lookup table, not a CRM object.

It’s ideal for storing values that rarely change and are referenced elsewhere.

✅ Use HubDB when:

  • Data changes infrequently
  • You need a reference list used across records
  • You want controlled dropdown values
  • You’re under ~10,000 rows

🚫 Avoid HubDB when:

  • You need associations to contacts, companies, or deals
  • You need owners, notes, or activity history
  • You want to report on individual records

Real-world examples:

  • Country → state mappings
  • Product tiers used in dropdowns
  • Suppression or allow lists
  • Reference tables for automation logic

Key limitation:

HubDB is not relational. It’s reference-only.

Custom Events, Best for Tracking What Happened

Custom Events answer one question:

Did something happen?

They are perfect for tracking actions that occur multiple times.

✅ Use Custom Events when:

  • You need to trigger workflows from actions
  • You track time-based or product events
  • You expect many records per contact
  • You don’t need to edit the data later

🚫 Avoid Custom Events when:

  • You need to update or correct records
  • You need ownership or associations
  • You want to view or manage records manually

Real-world examples:

  • User signed up
  • Feature used
  • Trial started
  • Demo booked

Important rule:

Custom Events are immutable. Once sent, they cannot be edited.

Custom Objects, Best for Structured, Changing Data

Custom Objects are your power tool.

They behave like native HubSpot records and support full CRM functionality.

✅ Use Custom Objects when:

  • You need multiple associations
  • Records change over time
  • Ownership matters
  • You need notes, tasks, and activity logs
  • Reporting and automation depend on the data

🚫 Avoid Custom Objects when:

  • You only need one field
  • The data is purely event-based
  • You expect extremely high volumes per contact

Real-world examples:

  • Customer projects
  • Subscriptions
  • Assets or licenses
  • Shortlinks owned by reps

Scale note:

Custom Objects support millions of records when designed properly.

Properties, Best for Single Values

Properties store one fact about one record.

They are simple, fast, and everywhere.

✅ Use Properties when:

  • You need a single value
  • History and ownership don’t matter
  • The data belongs directly to the record

🚫 Avoid Properties when:

  • You need multiple instances of the same data
  • You need relationships or history

Real-world examples:

  • Lifecycle stage
  • State or region
  • Lead source
  • Notes (rich text)

When to Use Custom Events in the Real World

A simple rule:

If it happens, use an event.

If it exists, use an object or property.

Events are best for:

  • Funnels
  • Triggers
  • Behavioral reporting

They are not good for:

  • Management
  • Ownership
  • Ongoing updates

Real-World Example, Tracking Shortlink Performance

A SaaS team wanted to track shortlinks inside HubSpot.

Requirements:

  • Multiple shortlinks per contact
  • Ownership per link
  • Click and send counts
  • Manual and automated updates
  • Reporting by customer and rep

The Solution

  • Custom Object for shortlinks
  • HubDB to store available link templates
  • Automation to create object records from HubDB

The Result

  • Full ownership and association
  • Accurate reporting
  • Zero manual tracking
  • Clean automation

This structure scaled without rebuilds.

Quick Decision Framework

You need to… Use
Store static reference data HubDB
Track actions over time Custom Events
Manage relational, changing data Custom Objects
Store one simple value Properties

HubSpot Data Setup Best Practices

A few rules we apply on every build:

  • Default to simpler structures first
  • Avoid using properties for relational data
  • Never use Custom Objects as event logs
  • Document why each data type exists
  • Design for reporting before automation

This is the foundation of a clean HubSpot implementation.

Why This Matters

Data architecture determines whether HubSpot helps or hurts.

When structure is right:

  • Workflows stay stable
  • Reporting stays accurate
  • Teams trust the system

When it’s wrong:

  • You rebuild later
  • Costs increase
  • Adoption drops

If you want a second set of eyes on your setup, our HubSpot consulting services help teams fix data models before they become liabilities.

Final Takeaway

There is no “best” data type in HubSpot.

There is only the right one for the job.

Choose based on behavior, relationships, and change over time.

That’s how HubSpot stays scalable.