How HubSpot's tier model shapes your bill, how to export all your data in full, and how a migration to an open, in-house data layer runs without data loss.
HubSpot is deliberately easy to get into, and makes its money on what comes after: seats, marketing contacts and tier jumps that each cost a multiple of the step before.
The costs can be controlled with cleanup and smart license management, but the pattern stays the same: every bit your business grows, your bill grows with it.
Your data comes out of HubSpot complete, provided you pull the associations between contacts, companies and deals through the API alongside the CSV exports.
A migration to an open, in-house data layer is therefore not a leap into the unknown but a controlled process, with a test migration and a period of running in parallel before you cancel so much as a single seat.
HubSpot got a lot right. Where classic CRM packages started with an implementation project, HubSpot started with a free account. Within an afternoon your first contacts were in, the interface was friendly, and marketing and sales worked in the same system for the first time. For growing businesses that was a relief, and often the first time customer data was centralized at all.
That ease of entry is no accident, it's strategy. The free and cheap tier is the funnel; the business model sits in the scale-up. As you collect more contacts, bring on more colleagues and need more features, you naturally drift toward pricier seats, paid marketing contacts and higher tiers. Every business that grows with HubSpot knows the moment the bill suddenly grows in earnest while usage barely changed.
HubSpot's bill is built from counters, and every counter climbs along with your business. Three mechanisms drive the pattern.
In the Marketing Hub you pay per block of contacts you mark as a "marketing contact." Grow your database and your bill grows too, even if a good chunk of those contacts haven't opened an email in years. Anyone who doesn't actively clean up pays structurally for dead weight.
Since the move to the seats model, every colleague who does more than just look pays for their own license. For a small team that's manageable; for a business of fifty people it's a recurring cost that comes back every year and rarely gets smaller.
The nastiest mechanism sits in the tiers. Limits on workflows, lists, custom properties and reporting are fixed per tier. Hit one, and there's no standalone upgrade: the only way out is the jump to Professional or Enterprise, for every user at once. One missing feature can multiply your entire annual bill. Many businesses deliberately work below their own potential just to delay that jump; that's the package limiting your process, instead of the other way around.
Even if you're staying with HubSpot for now, you don't have to accept the climbing pattern. Three strategies, increasing in effect.
Set contacts that no longer get emailed to non-marketing, and delete what's genuinely dead. A quarterly, hour-long ritual often saves a whole block of contacts on the bill, and makes your sending stats more honest right away.
Check who actually needs a paid seat, and which hubs and add-ons are actually used. In practice the subscription grows with every enthusiastic purchase, but never shrinks back on its own.
The structural solution: move closed deals, old activities and inactive contacts to your own PostgreSQL database, where storage costs almost nothing and everything stays searchable. This is the most interesting strategy, because that archive database is, in effect, already an in-house data layer. Once you have one, you usually discover quickly that reporting and AI applications run more easily on it than within HubSpot's tier limits. The rest of this whitepaper is the logical next step from exactly this idea.
Your data comes out of HubSpot complete, but not all of it the same way. These are the routes.
Nothing on this list is secret or withheld: HubSpot cooperates cleanly with export. The difference between a complete and a botched migration isn't in the access, it's in knowing these routes, with the associations up front, and checking the result.
The export is half the work. The other half is the transfer itself, and that's where migrations that looked fine on paper go wrong. Five rules that make the difference.
Companies first, then contacts, then deals, then the timeline of activities and attachments. Keep a mapping per record from old ID to new ID, so every association is traceable and every mistake fixable.
Everything into a test environment. Recount per object: the same number of companies, contacts and deals as in the source. Spot-check the associations and the odd cases, such as contacts without a company.
Deduplicate and normalize while you're looking at every object anyway. Document what you deliberately leave behind, so "left out" never means "lost."
The new environment proves itself alongside HubSpot first, with real reporting on real data. Only once the team trusts it do you wind down seats and hubs.
Workflows and email flows can't be exported, and that's an opportunity. Rebuild what your process actually needs, the way your team works, and leave the rest out.
Where do you migrate to? And Repeat's answer isn't another package, because then you're just moving your lock-in. The answer is an AI Native Data Layer: an open, central data layer on PostgreSQL, fully in-house, that all your business software connects to.
Every bit your business grows, your bill grows with it.
Your customer data sits underneath, the solutions sit on top.
Because the data layer is open and portable, you can always take it with you. Even away from us; that keeps everyone sharp. How that platform is built is covered in full in the whitepaper about the AI Native Data Layer.
| aspect | hubspot | in-house |
|---|---|---|
| costs | Seats, marketing contacts and tiers that grow with every counter | Low, predictable infrastructure costs, regardless of users or contacts |
| growth of your database | More contacts means a higher bill | Growth costs almost nothing extra |
| functionality | Limited per tier; one limit forces a complete upgrade | Built on what your process needs, without artificial limits |
| access to your data | Through exports and an API with limits | Direct: it's your database |
| AI on your customer data | Through the package's AI features, per tier | Every AI application connects directly to your own data layer |
| ownership | Renting access to your own customer history | Data, environment and history are fully yours |
Europe has seen the switching problem and turned it into legislation. The Data Act requires cloud service providers to make switching practically possible: handing over your data in a common, usable format, and not frustrating the switch. From 12 January 2027, no switching costs may be charged for that either.
For anyone on HubSpot, that means: the door will soon legally stand open. But a law doesn't export your data and doesn't build your new environment. Anyone who wants to be free to choose in 2027 would be wise to get to know their own data now and explore the route. More on this in our article about the Data Act and switching costs.
Every good migration starts with knowing what you have. That's why the first step is always a data scan: we look inside your portal together and map out how many contacts, companies and deals there are, which workflows and forms are running, and what the quality of the data looks like. With a test export we show you what your data looks like in an open data layer.
After that you know exactly where you stand: what needs to come along, what can be cleaned up and what the migration involves. Even if the conclusion is that staying put is the best choice for now, because that happens too, you'll have a documented picture of your own data. That's never wasted work.
And Repeat helps SMEs bring their data and software fully in-house, with an AI-native data layer as the foundation. Migrations out of CRM packages like HubSpot are a logical part of that: the data is already there, it just needs to go back to its owner. One conviction runs through everything: your data and your software should belong to you, not to a vendor.
Book a no-obligation data scan. We'll map out your portal and use a test export to show you what your data looks like in-house. Honest advice, even when that's "stay put for now."