What This Update Actually Is
HubSpot's Contracts object already let you create and manage contracts natively inside the platform. The missing piece was migration. If your contracts lived in DocuSign, PandaDoc, Salesforce CPQ, or a spreadsheet, there was no clean path to bring them in.
Contract Imports closes that gap. You can now bulk-upload historical or active contracts through HubSpot's native import tool. Each contract can carry multiple line items and a deal association, all linked together using a custom unique ID you define.
This update also ships bulk delete for contracts. If an import run goes sideways, you can select and remove the bad records from the contracts index page without hunting them down one by one.
Availability: Revenue Hub Professional and Revenue Hub Enterprise, currently in public beta.
Why HubSpot Shipped This
The external problem is split-system risk. When active contracts sit in one tool and your revenue data lives in HubSpot, every renewal, amendment, and reporting pull requires manual reconciliation. That's where errors hide and where deals slip.
The internal frustration is real, too. Humans who adopted HubSpot's Contracts product quickly hit a wall: "This is great for new contracts, but what about everything we're already managing?" Without imports, the answer was "start over" or "run two systems indefinitely." Neither is acceptable.
HubSpot shipped this to make full consolidation actually possible. The goal is one system of record for contracts, renewals, and revenue reporting, with no orphaned data living outside the CRM.
How to Use It Step by Step
- Create a custom property on the Contract object to serve as a unique key. HubSpot calls this a "unique ID" field. Name it anything you want ("import_unique_id" is a clean choice). Every row that belongs to the same contract must share the same value in this field. This is how the importer groups rows into a single contract record.
- Build your import file so each contract spans multiple rows. One row per line item. Add a separate row for the deal association, using only the unique ID on that row. Don't mix a line item and a deal association on the same row; the tool will associate that line item to both the deal and the contract, which creates messy data.
- Use the native HubSpot Import tool (Contacts > Import, or via the Contracts index). Select your file, map the columns to contract properties, and run the import.
- Don't reuse line item IDs if you re-run an import. Let the tool generate fresh line items each time using property values like name, price, and quantity. Reusing IDs will cause conflicts.
- If an import run has errors, use the new bulk delete feature. Navigate to the Contracts index page, select the affected records, and delete them. Then fix your file and re-import. No need to delete records individually.
One more practical note: real-time visibility into where your import stands makes a big difference on large files. If you haven't seen it yet, HubSpot's import progress tracking update shows percentage complete and queue position so you're not guessing while a bulk contract run processes.
What It Touches in Your HubSpot Strategy
This update ripples further than it looks. Here's where to pay attention.
Revenue Reporting: Once your historical contracts are in HubSpot, they're available for deal-linked revenue reporting. MRR, ARR, and renewal pipelines can reflect your full book of business, not just contracts created after your HubSpot adoption date.
Renewal Workflows: Imported contracts behave the same as natively created ones. That means you can trigger renewal workflows, set contract expiration reminders, and queue up amendment processes based on imported contract data.
Key Takeaway
Imported contracts are treated as first-class HubSpot records. They support the same workflows, reporting, renewals, and deal associations as contracts created natively in the platform.
CRM Data Integrity: The unique ID requirement forces a discipline that's good for your data model. Every contract gets a stable identifier that ties its line items and deal associations together. That structure makes future audits and migrations much cleaner.
If your portal has accumulated layers of contact and deal data over time, this is also a good moment to review how contracts will connect to existing records. A thorough HubSpot portal audit before a large contract import can save you hours of cleanup on the back end.
Integrations and Connected Apps: If you're currently syncing contracts from a tool like Salesforce or a CPQ platform, this import capability gives you a defined off-ramp. Map and import your active contracts, then retire the sync or the legacy tool once you've validated the data.
Key Takeaway
The bulk delete feature ships alongside imports. It's a safety net that makes it reasonable to run test imports on a subset of your contracts before committing to a full migration.
Who Should Care Most
This update matters most to a specific set of humans. Here's the short list.
- Revenue Operations leaders who adopted HubSpot Contracts and immediately hit the wall of "what about our existing book of business."
- HubSpot admins managing a migration from Salesforce, HubSpot's own legacy deal records, or a standalone contract tool like PandaDoc or DocuSign.
- Sales and account management teams at companies with subscription or recurring-revenue models, where renewal timing and contract terms drive pipeline decisions.
- Finance and RevOps humans who need accurate contract data tied to deal records for ARR reporting and forecasting.
This is a Revenue Hub Professional and Enterprise feature. If your team is on Sales Hub or Service Hub only, this update doesn't apply yet.
George's Take
“The Contracts product was a big swing from HubSpot. But a tool that only works for new contracts isn't a migration path, it's a parallel system. Contract Imports removes the biggest excuse for not consolidating. Now the question is whether your team is ready to do the migration work correctly, because a bad import creates more problems than the split system you're trying to fix.”
I've seen this pattern across dozens of portals: a team adopts a powerful new HubSpot object, gets excited, and then stalls because historical data can't come along. Contract Imports is the kind of update that doesn't get enough credit because it's not flashy. But it's the update that actually unlocks the tool for most of the humans who bought it. My advice: don't rush the import. Plan your unique ID structure first, run a small test batch, use the bulk delete safety net if you need it, and then migrate in segments. A phased approach with validation checkpoints beats a single all-in upload every time.
If you're ready to consolidate your contracts into HubSpot and want a second set of eyes on your migration plan, let's talk. The Sidekick team works through contract data migrations and portal cleanups regularly, and we can help you get it right the first time. Book a strategy call and we'll map out your path forward.
Frequently Asked Questions
What is HubSpot Contract Imports?
HubSpot Contract Imports is a public beta feature for Revenue Hub Professional and Enterprise that lets you bulk-upload active contracts from external systems into HubSpot using the native import tool. It supports line items, contact associations, and deal associations, so imported contracts work just like contracts created natively in HubSpot.
Who can use HubSpot Contract Imports?
Contract Imports is available to Revenue Hub Professional and Revenue Hub Enterprise customers. It's currently in public beta as of July 2026, meaning everyone in eligible accounts can access it. Sales Hub or Service Hub-only customers don't have access to this feature.
How do I structure my file for a HubSpot contract import?
Each contract spans multiple rows in your import file: one row per line item, plus a separate row for any deal association. All rows belonging to the same contract share the same value in a custom unique ID property you create on the Contract object. Don't mix line item data and deal association data on the same row.
Can I undo a contract import in HubSpot?
Yes. HubSpot ships bulk delete alongside Contract Imports. Navigate to the Contracts index page, select the records you want to remove, and use the delete button to clean them up in bulk. This makes it safe to run test imports on a small batch before committing to a full migration.
Do imported contracts support HubSpot workflows and reporting?
Yes. Imported contracts are treated as first-class HubSpot records. They support workflow enrollment, renewal automation, deal-linked revenue reporting, and all the same contract management tools as contracts created natively in HubSpot. There's no functional difference between imported and natively created contracts.
What's the best practice for migrating contracts from another platform into HubSpot?
Plan your unique ID structure before you build the file, run a small test batch first, validate that line items and deal associations mapped correctly, and use bulk delete to clean up any errors. Migrate in segments rather than one large file. Auditing your existing deal and contact data before the import reduces duplicate and association errors significantly.




