RevOps
3 minutes

HubDB vs Custom Object vs Custom Event vs Property: The Guide to Structuring Data in HubSpot

Vitaly Kan
November 15, 2025

When you start scaling HubSpot, the first big question hits:

Where should this data live?

Pick the wrong one, and you’ll spend months cleaning up broken reports, automations, and associations.

Pick the right one, and your system just works: fast, scalable, and easy to trust.

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

HubDB: Best for Static Reference Data

Think of HubDB as a simple lookup table. It’s great when you need a mini database that rarely changes.

✅ Use HubDB when:

  • The data changes infrequently
  • You want to reference values across the CRM
  • You need a small, clean database (under 10,000 rows)

🚫 Avoid it when:

  • You need associations (Contacts, Companies, Deals)
  • You need owners or activity logs
  • You want to view it like a CRM record

Real examples:

  • Mapping counties to states
  • Mapping platform data to HubSpot dropdowns
  • Creating a suppression list

Limit: 10,000 rows per table

Custom Events: Best for Tracking Activity

Use Custom Events when you want to track what people do, not who they are.

They’re ideal for logging user or product actions, things that happen multiple times per contact.

✅ Use Custom Events when:

  • You need to trigger workflows based on actions
  • You’re tracking time-based or product events
  • You expect many records per contact (5+)

🚫 Avoid it when:

  • You need to update data later (events are permanent)
  • You want multiple associations
  • You need ownership or custom views

Real examples:

  • “Customer signed up” event
  • “User started a project” event

Custom Objects: Best for Structured, Changing Data

If you need relationships, ownership, and frequent updates, this is your power tool.

Custom Objects behave like native HubSpot records, complete with associations, activities, and full property control.

✅ Use Custom Objects when:

  • You need to associate to multiple objects
  • You want owners, notes, and activity logs
  • Your data changes often
  • You need full reporting and automation

🚫 Avoid it when:

  • You just need one field (overkill)
  • You expect hundreds of records per contact (too heavy)

Real examples:

  • Tracking CS ownership for customer projects
  • Managing shortlinks connected to contacts and companies

Limit: Up to 10 million records per object type

Properties: Best for Single Values

Properties are for simple data, a single fact about a contact, company, or deal.

✅ Use Properties when:

  • You’re tracking one value (like state or lifecycle stage)

🚫 Avoid it when:

  • You need history or ownership
  • You need associations

Real examples:

  • Customer lifecycle stage
  • State/Province dropdown
  • Meeting notes (rich text field)

Real-World Example: Tracking Shortlink Clicks

A SaaS client needed to track shortlink clicks inside HubSpot: who owned them, how many clicks each got, and which customer they belonged to.

Requirements:

  • 5–10 shortlinks per contact
  • Track clicks and sends
  • Associate each shortlink with a contact and company
  • Assign an owner
  • Edit manually or automatically

Solution:

We used a Custom Object because it allowed associations, ownership, and easy updates.

We also used a HubDB table to store the list of available shortlinks, then automated HubSpot to create new Custom Object records from that table.

Result:

Full visibility into link performance, ownership, and engagement — all inside HubSpot, zero manual work.

Quick Decision Framework

You need to… Use this
Store static reference data HubDB
Track time-based or user actions Custom Event
Manage complex, relational data Custom Object
Track one simple value Property

Why It Matters

Data architecture is the backbone of your CRM.

Build it right, and every workflow, report, and handoff becomes effortless.

Build it wrong, and you’ll rebuild it later, guaranteed.

At ProfitPad, we help SaaS teams design HubSpot systems that scale cleanly.

No wasted hours. No messy rebuilds. Just clarity and control.

Book a Free Audit
Feature
Type
Track multiple leads?
Stage movement
Reporting
Best for
Lead Status
Single contact property
No
Manual
Limited
Simple inbound
Lead Object
Sub-object under Contact
Yes (campaigns, territories, PLG vs outbound)
Auto-progressed by rep activity
Pipeline-style dashboardsGoogle Sheets
Outbound, SDR/BDR teams, PLG routing
Use Case
You want native HubSpot reporting
You want simpler workflows + external reporting
You’re managing success handoffs
You need advanced MRR/ARR metrics (e.g., retention, cohort LTV)
Best Option
Multiple deals with recurring revenue fields (Enterprise)
Single deal + custom SaaS properties (Pro)
Add a Customer Success custom object or use a Company object
Google Sheets