At a Glance
How HubSpot's new Contracts object in Revenue Hub runs quote-to-cash end to end for professional services firms. Settings, flow, change orders, fit.
HubSpot's New Contracts Object: A Deep Dive for Professional Services Firms
Every HubSpot release gets pitched as game-changing. Most aren't. This one is.
The new Contracts object inside Revenue Hub is the thing that finally makes HubSpot capable of running quote-to-cash end to end. Not the watered-down version where the "quote" lives in HubSpot but the actual money lives somewhere else. The real version. Quote, signed contract, invoice, payment, subscription, mid-term change, renewal. All in one record. All tied to the deal. All tied to the company. No PandaDoc tab open in another browser, no Word doc sitting in someone's Drive, no QuickBooks reconciliation at the end of the quarter.
Short version: The HubSpot Contracts object is a new standard CRM record inside Revenue Hub that tracks everything tied to a signed deal: line items, billing schedule, invoices, payments, change orders, and renewals. It's created automatically when a quote is accepted and replaces the spreadsheet-and-PDF workflow most professional services firms still run today.
I walked through this end-to-end in a recent demo. If you'd rather watch than read, here it is:
Below is the same content in writing, with the technical detail filled in. I'll cover what the object actually is, the settings page that tells you how HubSpot is thinking about it, the full flow from quote to change order, and where this fits (and doesn't fit) for a professional services firm.
What is the HubSpot Contracts object?
A Contract is a new standard CRM object. Same shelf as Contact, Company, Deal, and Quote. It's not a property on a deal. It's not a PDF stored as a file. It's its own record, with its own properties, its own associations, its own permissions, and its own automation surface.
The job of the record is to be the living source of truth for what the customer actually bought. Once a quote is accepted, the contract is generated automatically and starts tracking everything that touches that revenue: the line items, the billing schedule, the invoices, the payments, the change history, the renewal cadence. When the engagement changes, the contract updates. When you want to know what's actually owed by whom, the contract is where you look.
This is the part that's new. In the old model, "the contract" was a verb. You contracted with someone. The artifact was a PDF you stored somewhere. Now it's a noun. A record. Queryable, reportable, automatable, with field-level permissions.
For a professional services firm, that distinction is what actually matters. Every other system in the firm can hang off the contract: project kickoff, milestone billing, resource staffing, change order tracking, gross margin reporting. None of that's possible when the contract is a PDF.
The settings page tells you how HubSpot is thinking
Before you go anywhere near a deal, go look at the Contracts settings page. It's a small page. It reveals a lot.
Three settings stand out:
Create contracts from accepted quotes. This is the toggle that wires the flow together. When it's on, every quote that gets signed creates a contract automatically. No manual step. The contract starts tracking the revenue and the progress toward total contract value the moment the e-signature drops.
Proration defaults, with override allowed. You can set proration as the default behavior for the whole portal and let reps override it on individual change quotes. This matters more than it sounds. Proration is where mid-contract changes get messy in spreadsheets. Putting it in policy and letting it be the default is the difference between "we'll figure it out" and "this is how we bill change orders."
Force deal creation for change quotes and renewal quotes. Optional, but worth understanding. If your reporting and forecasting depends on every revenue event having a deal attached, you turn this on. If you want change orders to live cleanly on the contract without polluting the pipeline, you leave it off. Most PS firms I work with want it off for changes and on for renewals, but the right answer depends on how you forecast.
If your team is configuring this for the first time and isn't sure what the right defaults are, this is exactly the kind of decision that gets locked in early and re-litigated for years. Make it intentionally.
How the HubSpot quote-to-contract-to-payment flow works
Here's the path from a sales conversation to a paid, tracked, change-managed contract. (For a broader treatment of the full quote-to-cash workflow at the engagement level, the PS Quote-to-Cash Workflow Guide covers the surrounding process.)
Step 1: The quote
You start on a deal record. The Quotes section in the right column now shows three options when you create a quote: a brand-new quote, an update to an existing contract, or a renewal of an existing contract. Even at the quote level, the new architecture is visible. Quotes know about contracts.
For a new engagement, you pick "create a new quote." HubSpot opens the quote builder. You add line items, both one-time and recurring on the same quote. That single capability is what makes this viable for professional services firms. You can put a fixed-price discovery engagement on the same quote as the monthly retainer that follows it, and the billing logic handles both correctly. No splitting the deal into two pieces because the billing system can only do one mode at a time.
You configure the executive summary (Breeze AI generates a draft if you want), set the seller, lock the template, and share.
Step 2: The signature
The client opens the quote link. They sign. They accept. The moment that happens, three things spawn automatically:
- A contract record gets created and associated with the deal, the company, and the quote.
- An invoice gets generated based on the billing terms in the quote.
- A subscription gets created if the line items include recurring charges.
You didn't have to do anything. You didn't open another tab. You didn't manually create a billing schedule in QuickBooks. The contract is live, the invoice is queued, the subscription is tracking.
Step 3: The contract record itself
Open the contract and you see what HubSpot has stitched together. Default properties include total contract value, contract end date, annual contract value, start date, effective date, total billed amount, MRR, annual value, and contract owner. Associations include the company, the line items, the deal, the quote, the order, the subscription, the invoice, and once payments start flowing, the payments themselves.
This is the part where, in the old world, you'd be looking at an ERP project. Syncing all of that data into HubSpot was a multi-month integration build. Now it's the default state of the record.
The status field tracks where the contract is in its lifecycle. The change history tracks every modification. If your finance team wants to know what's been billed against this contract versus what's still owed, every number is right there on the record, no calculation required.
Step 4: The first payment
The invoice goes to the client. They pay through HubSpot Payments (or whatever processor you've wired in). The payment lands on the contract record. The contract status updates. The subscription starts its clock. Total billed amount ticks up. If you've configured automation around active contracts (project kickoff, onboarding sequence, resource assignment), it all fires off the contract status, not the deal stage.
This is the second piece that changes how a PS firm runs. The deal stage stops mattering after the deal is closed. The contract takes over as the operational record for the engagement.
Change quotes mid-contract: where this earns its keep
Every professional services firm has change orders. Scope expands. A new phase gets added. A retainer adjusts. In the old HubSpot model, this was where the system fell apart. You couldn't change a quote after it was signed without making it into a fiction. You couldn't track partial-month proration without a spreadsheet. You ended up either creating fake new deals to capture the change, or letting the CRM drift away from reality.
The Change Quote action on the contract record fixes this. Right from the contract, you click Actions, then Change Quote. You decide whether to associate the change with the existing deal or create a new one. You pick the effective date. You choose whether to prorate. You modify the line items. You share the new quote with the client.
What HubSpot does behind the scenes: it inherits everything from the existing contract, adjusts the line items based on what you changed, calculates proration if you said yes, and on the effective date, switches the billing schedule to the new amounts. The contract record itself updates, the contract value updates, the billing schedule updates, the entitlements update. The change is logged in the change history.
A concrete example from the demo. The original contract had a one-time charge plus a recurring $125 line item at quantity one. The customer expanded mid-term to quantity three, effective in early August. We picked a future effective date, said yes to proration, and shared the change quote. The client accepted. The contract's billing schedule now shows: original monthly amount through the change date, a prorated charge for the partial first month at the new rate, then $375 perpetually. No new deal had to be created. No QuickBooks update was needed. No spreadsheet.
For a firm that's running expansion motions or routinely handles change orders inside an engagement, this is the feature that makes the system viable at all.
Renewal quotes work the same way
The Renewal Quote action sits next to Change Quote on the contract record. Same pattern. You generate the renewal from the existing contract, the new contract inherits the line items and terms, you adjust price or quantity if needed (uplift rules can be applied), and the client signs. The new contract takes over from the old contract's end date, maintaining a contiguous revenue record. For CS and account managers tracking renewals, the contract record is where the work lives, not the deal.
What changes on the HubSpot company record
Add the Contracts card to the company record sidebar (Customize → Card Library → Contracts) and the company view changes. You now see, in one place, every active contract for that account, with status, total value, and dates. For an account manager looking at an expansion play, this is the view that tells them what's actually going on. For a salesperson preparing for an expansion conversation, this is the answer to "what have we sold them already and what's still active?"
The current and upcoming line items show on the contract itself, so you can see exactly what's getting billed when. Useful for both finance and for the client-facing team that has to answer "when does our next invoice hit?"
Where this doesn't fit
A few honest caveats.
If your engagements are heavily milestone-based (think 10 milestones over 18 months, each with a different invoice trigger), Milestone Billing was announced as part of the launch but the depth of the feature is still settling. We've seen it work for straightforward delivery-event triggers. Complex milestone hierarchies still take some work to model cleanly.
If your firm sells through resellers, channel partners, or split-revenue agreements, the data model assumes a direct relationship between contract and customer company. You can model around it, but you'll be designing custom property logic to do it.
If you're heavy on manufacturing-style configurations with hundreds of SKUs, bundles, and configuration rules, the Product Library and Quote Rules can handle a lot, but you'll want to do a configuration review before assuming the feature set covers your use case.
For a typical PS firm running multi-phase SOWs, retainers, change orders, and renewals on top of a HubSpot CRM you already pay for, the answer is much closer to "yes, this fits" than it's ever been. If you're weighing the new architecture against Salesforce Revenue Cloud or Stripe Billing, the PS-specific platform comparison lays out where each one wins.
When does the Contracts object fit a professional services firm?
The fit question depends less on whether the feature is good (it is) and more on whether your current process can plug into it without a rebuild. Two firms with identical revenue and similar service mixes can have wildly different readiness depending on how their quoting, billing, and contract data is currently structured.
We built a Contracts Configuration Scorecard exactly for this. You answer a series of questions about your current state across process, enablement, insights, and systems, and it returns where you fall on our maturity model so you can see how big the lift would actually be.
Take the Contracts Configuration Scorecard
If you want a real conversation about whether Revenue Hub fits your firm specifically, what the migration would look like, and where the actual blockers are likely to live, book a Diagnostic Conversation and we'll map it out with you on a call.
Frequently asked questions
Is the HubSpot Contracts object the same as the old Quotes feature?
No. Quotes still exist. A quote is an offer that a buyer can accept. A contract is a separate CRM record that represents what was agreed and is being delivered. Quotes flow into contracts once signed. Contracts have their own properties, associations, automation, and reporting.
Do you need HubSpot Payments to use the Contracts object?
No. The Contracts object is part of Revenue Hub and works with HubSpot quotes and invoices regardless of your payment processor. Using HubSpot Payments makes the loop tighter because payments associate to the contract automatically, but it's not a requirement.
Can a single HubSpot contract include both one-time and recurring line items?
Yes. This is one of the most important features for professional services firms. A single quote and the contract it creates can hold a fixed-price project, a monthly retainer, and prorated mid-month additions on the same record, with the billing schedule handling each correctly.
What happens to existing legacy quotes when we enable Contracts?
Legacy quotes still exist after you enable the new flow. Quotes accepted before you turned on contract automation don't backfill into contract records. The full migration question is covered in our legacy quotes to Revenue Hub migration guide.
How does proration work on a HubSpot change quote?
You can set proration as a portal-wide default or decide on each change quote. When it's on, HubSpot calculates the partial-period charge based on the effective date and the new line item rate, then bills the full new amount on the next regular cycle. No spreadsheet math required.
Can renewal quotes be generated automatically?
The renewal quote generates from the contract record itself. You can automate the trigger using a HubSpot workflow tied to the contract end date (for example, 90 days before expiration) so the renewal quote is pre-built and waiting for a CSM or account manager to send.
Does the Contracts object work for non-professional-services businesses?
The object isn't industry-specific. Most of what we cover applies to any subscription, contract-based, or hybrid revenue model. It gets more nuanced for industries with heavy configuration logic like manufacturing or channel-distributed software, where Product Library and Quote Rules configuration becomes a bigger lift.
Key takeaways
- The Contracts object is a new standard CRM record inside HubSpot Revenue Hub. Same shelf as Contact, Company, Deal, and Quote.
- A contract is created automatically when a quote is accepted, with the line items, billing schedule, invoice, subscription, and payment associations all pre-stitched.
- One contract can hold one-time and recurring charges, staggered start dates, and mixed billing frequencies. This is what makes it viable for PS firms.
- Mid-contract changes are handled by Change Quotes, with proration as either a portal default or a per-quote toggle. No new deal required.
- Renewal Quotes generate from the contract record, not from a new deal, maintaining a contiguous revenue history.
- The company record gets a Contracts card that surfaces every active contract for an account.
- It fits PS firms running multi-phase SOWs, retainers, change orders, and renewals. It's a heavier lift for milestone-heavy delivery models, channel sales, or manufacturing-style configuration.
The data model finally matches how PS firms sell and bill. The cost is configuration work and process discipline. The reward is that you stop running your firm out of five tools and start running it out of one.
Author: Dan Saavedra is the founder of MergeYourData, a RevOps consulting firm working with professional services firms on HubSpot. He's spent the last decade helping mid-market firms collapse their quote-to-cash stacks into a single CRM.


