HubSpot’s standard CRM objects—Contacts, Companies, Deals, and Tickets—provide a solid foundation for most business processes. However, as your company scales, you may encounter data that doesn't fit neatly into these predefined categories. Forcing complex information like subscriptions, shipments, or projects into deal pipelines or contact properties creates messy data, inaccurate reporting, and inefficient workflows.
Custom objects solve this problem by allowing you to create new categories of data unique to your business model. They extend HubSpot’s CRM capabilities, enabling you to build a data architecture that truly reflects how your business operates. Instead of using workarounds, you can create a dedicated object for a specific business function, complete with its own properties, associations, and reporting capabilities.
This guide provides a comprehensive walkthrough of the entire custom object implementation process. We will cover how to plan your data model, the step-by-step process of creating an object in your portal, best practices for defining properties, and how to leverage your new object in reports and automation. Following these steps ensures your custom object implementation is structured, scalable, and delivers a clear return on investment through better data organization. If you need expert guidance, our HubSpot CRM setup & automation service can help build a robust data model for you.
When to Use Custom Objects (And When Not To)
The decision to use a custom object should be driven by a clear business need that cannot be met by standard objects. The most common use cases involve tracking a one-to-many or many-to-many relationship that is central to your business. For example, a single company may have multiple active subscriptions, or a single project might involve multiple contacts. Trying to manage this with custom properties on the company or contact record quickly becomes unmanageable.
Ideal scenarios for custom objects include tracking SaaS subscriptions, real estate listings, student enrollments, vehicle fleets, equipment rentals, or project milestones. If you have a list of items in a spreadsheet that you constantly reference and associate with contacts or companies, it's a strong indicator that a custom object is needed. The key question to ask is: "Is this 'thing' a distinct business object with its own unique properties and lifecycle?"
Conversely, avoid creating a custom object when a custom property or a new pipeline will suffice. If you only need to store a single data point on a contact record, such as their 'T-shirt Size', a custom property is the correct tool. If you need to track a linear process with distinct stages, such as customer onboarding or event registration, a new deal or ticket pipeline is often more appropriate. Overusing custom objects can add unnecessary complexity to your portal, so planning is essential.
Planning Your Custom Object Data Model
Before you create anything in HubSpot, you must map out your custom object's data model on paper or in a diagramming tool. A failure to plan is the most common reason custom object implementations fail to deliver value. Your plan should start by defining the object itself and its relationships with standard HubSpot objects. For instance, a 'Subscription' object would be associated with a Company and potentially multiple Contacts.
Next, define the object's properties. The first property to determine is the 'Primary display property,' which is the main identifier for each record (e.g., 'Subscription ID' or 'Project Name'). Then, list all other data points you need to track on the object. For a 'Subscription' object, this could include 'Start Date,' 'End Date,' 'MRR (Monthly Recurring Revenue),' and 'Subscription Status.' Clearly define the field type for each property (text, number, date, etc.) as this impacts your ability to filter, report, and automate later.
Finally, consider the user experience. How will your team interact with these new objects? Will they create records manually, or will records be created via an integration or workflow? Who needs to view, create, and edit these records? Answering these questions helps you configure permissions and build an intuitive interface. A well-planned data model, like those we design at HubStack, ensures your custom object is not just a data repository but a functional part of your team's daily process. For complex data architecture, consider a HubSpot API integration for automated record creation.
Step-by-Step: Creating a Custom Object in HubSpot
Creating a custom object in HubSpot requires administrator permissions and is available on Enterprise-level hubs. To begin, navigate to the settings gear icon in the top right corner. In the left sidebar menu, go to 'Objects' and then select 'Custom Objects.' Here you will see a list of any existing custom objects and a button to 'Create custom object.'
Upon clicking the create button, a panel will appear asking you to define the basic characteristics of your object. First, you must enter a 'Object Name (Singular)' and 'Object Name (Plural).' For example, 'Subscription' and 'Subscriptions.' These names will appear throughout the HubSpot interface, so choose clear and concise terms. The primary display property is the unique identifier for each record. You can select a default 'Name' property or create a new one, like 'Subscription ID.'
After defining the name and primary property, you will define the secondary properties that will be visible in the record preview. These are typically the most important pieces of information your team needs to see at a glance. Once you've configured these initial settings, click 'Create.' HubSpot will then provision the new object in your CRM. The object is now ready for you to define its full set of custom properties and build out its record templates, which is the next critical step.
Defining Custom Object Properties and Field Types
With your custom object created, the next step is to populate it with all the necessary properties you identified during the planning phase. From the 'Custom Objects' settings page, click the name of your new object, then navigate to the 'Properties' tab. Here, you can create new properties just as you would for contacts or companies. It is critical to select the correct field type for each property, as this dictates how you can use the data.
For example, using a 'Number' property for 'Monthly Recurring Revenue' allows you to perform calculations in reports, such as summing the total MRR across all active subscriptions. Using a 'Date picker' property for 'Renewal Date' enables you to trigger date-based workflows, like sending a reminder email 30 days before renewal. Mismatched field types, such as storing a date in a single-line text field, will prevent you from using these powerful features.
As you create properties, organize them into logical groups to make the record page easy to navigate for your team. For instance, group all billing-related information together and all service-level information together. This thoughtful organization improves user adoption and data entry accuracy. Getting your properties right is foundational to building useful custom reports and dashboards.
| Field Type | Best Used For | Example |
|---|---|---|
| Single-line text | Unique identifiers, names, short descriptions | Project ID: P-98765 |
| Date picker | Specific dates for tracking or automation | Contract End Date: 2027-12-31 |
| Number | Quantitative data for calculations and reports | Annual Contract Value (ACV) |
| Dropdown select | A fixed set of options for standardized reporting | Subscription Tier: Basic, Pro, Enterprise |
| HubSpot User | Assigning internal ownership to a team member | Assigned Account Manager |
Associating Custom Objects with Standard Objects
A custom object is only useful when it is connected to the other relevant data in your CRM. Associations are the links that create these connections. From your custom object's settings, you can define its associations with standard objects like Contacts, Companies, and Deals. For each association, you must create a label that describes the relationship.
For example, you could associate your 'Subscription' custom object with Companies. The association label could simply be 'Subscription.' This allows you to open a Company record and see a card listing all associated 'Subscription' records. You can also create multiple association types. For instance, you could associate Contacts to a 'Project' object with two different labels: 'Project Manager' and 'Project Stakeholder,' clarifying the role of each associated person.
Once defined, these associations are what empower your reporting and automation. You can create a list of all Contacts associated with an 'Enterprise' tier subscription or build a report that shows the total deal value for companies that also have an active project. Without clear associations, your custom object exists in a silo, and its data provides little contextual value. Properly managed associations are a cornerstone of a clean HubSpot portal, a service HubStack specializes in maintaining.
Building Reports & Automating with Custom Objects
The primary benefit of implementing custom objects is the ability to generate insightful reports and automate complex processes. Using HubSpot's custom report builder, you can now use your custom object as a primary or secondary data source. This allows you to answer critical business questions that were previously impossible to address within HubSpot.
For instance, you can build a report that visualizes the total 'Monthly Recurring Revenue' from your 'Subscription' object, segmented by the 'Industry' property of the associated Company. Or, you could create a list of all 'Projects' that are in the 'At Risk' stage and have not had any activity logged in the past 14 days. These reports provide a level of business intelligence that moves beyond standard sales and marketing metrics.
Automation also becomes significantly more powerful. You can now use custom object-based workflows. For example, when a 'Shipment' object's status is updated to 'Delivered,' a workflow can automatically send a feedback survey to the associated Contact. When a 'Subscription' object's 'Renewal Date' is 30 days away, a workflow can create a task for the associated Company's account manager. These automations reduce manual work and ensure consistent processes, directly translating your data model into business efficiency. For more complex automation needs, review our contact page to discuss a custom solution.
