Skip to content
  • There are no suggestions because the search field is empty.

The HubSpot Object Model That Actually Works for Professional Services

Your sales team closes a deal, marks it Closed Won, and the record effectively disappears from anyone's view. Operations picks up the work in a separate tool — or a separate spreadsheet, or a separate Slack channel. Finance tracks margin in QuickBooks. The salesperson who closed the account has no idea whether the project is on fire or on track. This is what happens when professional services firms install HubSpot with the default object model.

Why the Default HubSpot Object Model Breaks for Project-Based Businesses

HubSpot ships with an object model designed for companies that sell SKUs. Contact, Company, Deal, and a Deal that ends when the money lands. That model assumes the work after the sale is fulfillment — shipping a box, provisioning a SaaS seat, sending an invoice.

Professional services don't work that way. The product doesn't exist until you build it. The deal isn't really won at signature — it's won when the client renews, refers, or expands. And the cost of delivery isn't a fixed COGS line; it's a moving target that determines whether the engagement was actually profitable.

The Mechanism That Fails

The default model has no native place for the work itself. There is no object that represents a delivery engagement, no object that tracks operational tasks across teams, no object that holds the inbound and outbound invoices that determine margin.

So firms improvise. They cram delivery status into deal stages. They use Deals as project trackers. They build custom properties on Company records to approximate margin. None of it holds. The CRM becomes a parking lot for sales activity and nothing else.

The Conventional Fix and Why It Doesn't Hold

The standard response from most consultants is to bolt a project management tool onto HubSpot. Asana, Monday, ClickUp, Jira — whichever the team already uses. The pitch is integration: deals sync to projects, projects update deals, everyone has visibility.

It doesn't work. The integration is one-directional, the data models don't match, and the salesperson still has to leave HubSpot to find out what's happening with delivery. You end up maintaining two systems, paying for two licenses, and arguing about which one has the truth.

The Other Common Mistake

The other path is using Deal stages to represent delivery: Kickoff, In Discovery, In Build, QA, Delivered. This looks clean on a dashboard but collapses the moment a single client has multiple engagements running in parallel.

A management consultancy might be running a strategy engagement, an implementation engagement, and a managed services contract for the same client — all at different stages, with different PMs, different margins, different risks. One Deal record can't represent three engagements. So firms either merge them and lose granularity, or split them and lose the relationship between commercial activity and delivery.

A Better HubSpot Object Model for Professional Services

The HubSpot object model that works for project-based firms has seven objects, each with a clear and non-overlapping purpose. Contacts, Companies, Deals, Tickets, Projects, Invoices, and Sales Signals. Some are native to HubSpot. Some are custom. All of them are connected.

The principle behind this model is simple: every object represents one thing, and that thing maps to a real operational unit in a services business. Deals represent commercial conversations. Projects represent delivery. Tickets represent the work each team is doing. Invoices represent money moving in or out. When you stop forcing one object to do three jobs, the CRM starts to mirror how the business actually runs.

Contacts and Companies — The Relational Foundation

Contacts represent people. Beyond basic data, you track the stage of the relationship with that specific individual — which may be different from the stage of the deal. Their objectives, their pain points, their relationship with the account owner. The bar is: any team member can pick up a conversation with any contact after reading the record, without needing a verbal briefing.

Companies hold what's permanent — the fit with your value proposition, MRR, churn probability, competitors, and the link to every Project the account has run. Active engagements, historical engagements, and signals all attach here.

Deals — One Per Commercial Conversation, Not One Per Account

This is where most implementations go wrong. A Deal is not the account. A Deal is a specific commercial conversation. One company can have three Deals open at the same time because three different conversations are happening inside the client organization.

The Deal pipeline must include both presale stages (qualification, discovery, proposal, negotiation) and post-sale stages (in progress, maintenance, closed won). The salesperson should still see the Deal alive in the pipeline after the contract is signed. Not closed and forgotten — visible, updating, and showing real-time delivery status without anyone having to ask operations.

Tickets — The Internal Unit of Work

Tickets are usually framed as customer support. In a services HubSpot object model, Tickets are the internal unit of work for each operating team. Every team — presales engineers, designers, PMs, QA, legal — gets its own Ticket pipeline with its own stages, SLAs, and KPIs.

Presale Tickets might include information gathering, solution design, proposal drafting. Delivery Tickets might include environment setup, configuration, UAT. One Deal might require three Tickets to close. Another might require fifteen. That data is gold — it lets you quantify how much internal work each Deal actually consumed and compare across deal types.

Projects — Where Delivery Lives

Projects are a custom object that holds everything related to execution after the Deal closes. Costs, progress, documents, complaints, incidents, team members assigned, hours logged, pauses, change orders. A single Deal can spawn multiple Projects — and those Projects can live on long after the original Deal closed.

This is the object that makes margin visibility possible. Every internal cost and every external invoice attaches to a Project. The PM owns the Project. The salesperson reads it.

Invoices — Money In and Money Out, In One Place

The Invoice object — either custom or a repurposed native object — records every money movement related to a Deal or Project. Incoming invoices from the client, outgoing invoices from subcontractors and vendors, internal cost allocations if you track them.

The detail level is the firm's call. Some clients only want vendor name and amount. Others want full invoice numbers, PO references, payment terms, and aging. Either works. What matters is that a rollup property on the Deal sums all associated Invoices, giving you real-time margin without ever leaving HubSpot. No Excel pivot, no waiting for the controller, no monthly reconciliation meeting.

Sales Signals — Pipeline That Builds Itself

Sales Signals is a custom object for any event that could create a future opportunity. A press release from a client. A hiring spike. An executive change. A comment in a meeting. Anything that suggests an account might be ready for an expansion conversation.

Some signals are captured automatically through workflows and integrations. Others are logged by the team. The Signal object then triggers tasks, alerts, or assignments — turning passive intelligence into active pipeline.

What Changes When the Object Model Is Right

When the object model maps to the real shape of a services business, the secondary problems start solving themselves. The handover from sales to delivery stops being a meeting and becomes a record. The margin question stops being a quarterly investigation and becomes a property on the Deal. The salesperson stops chasing PMs and starts reading the Project.

Reporting becomes possible in a way it wasn't before. You can now answer questions you couldn't answer before — which deal types consume the most internal hours, which clients have the highest support load relative to revenue, which PMs deliver on time and on margin.

Early Warning Signs That Your HubSpot Object Model Is Wrong

If your current implementation is breaking, the symptoms are recognizable. Look for these:

  • Salespeople ask operations for project status over Slack or email instead of reading the CRM
  • One account has one Deal record even though three different engagements are running in parallel
  • Deal stages include things like In Delivery or Kickoff Pending — operations status crammed into a commercial pipeline
  • Margin per project lives in a spreadsheet maintained by one person in finance
  • The PM tool and the CRM disagree about what stage a project is in, and nobody knows which is correct
  • When a salesperson leaves, the next person can't tell what was promised because the proposal context lives in their inbox, not the CRM

The Compounding Value of Getting the Model Right

When the HubSpot object model fits how a services firm actually operates, the CRM stops being administrative overhead and becomes the operating layer of the business. Sales sees delivery in real time. Delivery sees commercial context without a briefing. Finance sees margin without a reconciliation cycle. Leadership sees the whole picture from a single dashboard. The arguments about who said what disappear because the record is the source of truth.

The deeper payoff comes later. A structured object model produces structured data, and structured data is what makes AI agents useful instead of hallucinatory. The firms that get the model right today are building the foundation that lets them ask their CRM real operational questions tomorrow — and get real answers. If you want to see what this object model looks like when it's fully built out for a project-based business, here's the implementation we run for companies that sell projects.

, ,