HubSpot is built around five standard objects: Contacts, Companies, Deals, Tickets, and Activities. For most businesses, those five cover everything they need. But for businesses with more complex data models - subscription services, property portfolios, event management companies, professional services firms tracking projects - the standard structure eventually hits a wall.
That's where Custom Objects come in. They're one of HubSpot's most powerful and least-understood features - and knowing when to use them (and when not to) is the difference between a CRM that fits your business perfectly and one you're constantly working around. If you've ever found yourself thinking "I wish I could store this data in HubSpot but there's nowhere logical to put it," this article is for you.
A HubSpot Custom Object is a user-defined data structure that lets you store, organise, and relate any type of business data within HubSpot that doesn't fit into the standard Contact, Company, Deal, or Ticket objects. You define the object name, its properties, and how it associates with other objects in your CRM.
Custom Objects are available on HubSpot Enterprise plans (Marketing Hub Enterprise, Sales Hub Enterprise, Service Hub Enterprise, or Operations Hub Enterprise). They are built and managed via Settings - Objects - Custom Objects, or programmatically via the HubSpot API.
Before deciding whether you need Custom Objects, it's worth understanding exactly what the standard objects can and can't do. HubSpot's five standard objects are powerful and cover the vast majority of B2B and B2C use cases - but they have fixed names, fixed association types, and fixed positions in HubSpot's data model. Custom Objects break all three of those constraints.
| Feature | Standard Objects | Custom Objects |
|---|---|---|
| Object name | Fixed Contact, Company, Deal, Ticket, Activity | Flexible You define the name (e.g. "Property", "Subscription", "Event") |
| Properties | Fully customisable properties available on all plans | Fully customisable properties - same flexibility, different object |
| Associations | Fixed associations (Contact - Company, Deal - Contact, etc.) | Associate with any standard or custom object you define |
| Workflows | Available on Pro and above | Available - can trigger on Custom Object record creation or update |
| Reports | Full reporting available | Full reporting available, including cross-object reporting |
| Plan availability | Available from Free upwards | Enterprise only |
| API access | Full API support | Full API support via Custom Objects API |
The clearest signal that you need a Custom Object is when you find yourself storing a type of data in a place it doesn't belong - stuffing subscription details into Deal properties, or tracking event attendance via a contact tag system that's becoming unmanageable. Here are the most common legitimate use cases.
If your business sells subscriptions - SaaS products, membership services, recurring maintenance contracts - you'll quickly find that a single Deal object isn't a great fit for ongoing revenue relationships. A Deal is designed to represent a one-time sales motion. A subscription has a start date, a renewal date, a tier, a status, and a billing cadence. Those are fundamentally different data requirements.
A Subscription Custom Object lets you create one record per subscription, associate it with the relevant Contact and Company, track its properties independently, and trigger renewal workflows based on the subscription's own data - without forcing that data into a Deal structure it wasn't built for.
Subscription Start Date, Renewal Date, Subscription Tier, Monthly Recurring Revenue, Cancellation Reason, Auto-Renew Status, Associated Licence Count.
Estate agencies, equipment rental companies, fleet management businesses, and any organisation that sells or manages physical or digital assets often need to track the asset itself as a first-class record in the CRM - not just the person who owns or rents it.
A Property or Asset Custom Object can hold all the details about the asset - its specifications, location, status, and history - and be associated with the relevant Contacts (e.g. current owner, prospective buyers) and Deals (e.g. the active sale or rental agreement). This gives you a complete view of both the asset's lifecycle and the people attached to it, without duplicating data across contact properties.
Asset ID, Location, Condition, Acquisition Date, Current Status (Available / Under Offer / Sold), Estimated Value, Last Inspection Date.
Businesses that run events, training programmes, or online courses need to track the event itself as a distinct record - not just the attendees. If you're running 12 events per year with 200 attendees each, trying to manage that via contact properties and lists becomes unwieldy and unreportable very quickly.
An Event or Course Custom Object gives each event its own record with its own properties, associated with the Contacts who registered, attended, or completed it. You can then report on event performance, attendance rates, and revenue per event - all within HubSpot, without needing a separate event management tool.
Event Name, Date, Location, Capacity, Registered Count, Attendance Rate, Revenue Generated, Presenter Name.
Professional services firms - agencies, consultancies, law firms, accountancy practices - often need to track client projects separately from the Deal that won them. Once a Deal closes, the work begins - and the project has its own timeline, milestones, team members, and status that have nothing to do with the original sales pipeline.
A Project Custom Object lets you track post-sale delivery within HubSpot, associated with both the original Deal and the Contact. This closes the loop between sales and delivery, gives leadership a complete revenue-to-delivery view, and removes the need to maintain a separate project management spreadsheet for data that belongs in the CRM. If you're using HubSpot's full suite, this kind of joined-up data model is where the real value lies.
Project Name, Start Date, Go-Live Date, Project Status, Assigned Team Member, Estimated Hours, Actual Hours, Delivery Notes.
HubSpot has a native Products library, which works well for straightforward product catalogues. But if your products have complex, instance-specific configurations - think bespoke software licences, configured machinery, or customised service packages - the native Products object may not be flexible enough to store everything you need against each sale.
A Product Configuration or Licence Custom Object lets you capture the unique details of each instance of a product sold - associated with both the Deal and the Contact - without polluting your master product library with instance-specific data. This is particularly useful for businesses that need to support customers post-sale based on the specific configuration they purchased.
Licence Key, Configuration Type, User Count, Feature Flags, Expiry Date, Support Tier, Custom Integrations Enabled.
I had a very good experience with the team from warbble·digital for our HubSpot onboarding process. We had regular calls and updates which was really helpful and my questions were always answered. Highly recommend!
- Donaghy, K.Get a free Thrive Score in 30 minutes. We benchmark your portal across Feature Adoption, Data Quality, Automation Maturity, and Revenue Readiness - and give you a prioritised roadmap for what to build next.
Book Your Free Thrive Score ->