whitepaper

From HubSpot to In-House

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.

summary

The core in four sentences

core_01

Easy in, expensive after

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.

core_02

Growth means a bigger bill

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.

core_03

Associations are the key

Your data comes out of HubSpot complete, provided you pull the associations between contacts, companies and deals through the API alongside the CSV exports.

core_04

A controlled process

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.

the four sentences of this whitepaper at a glance
chapter_01

Why HubSpot used to be the logical choice

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.

chapter_02

The real bill: seats, contacts and tier jumps

HubSpot's bill is built from counters, and every counter climbs along with your business. Three mechanisms drive the pattern.

Paying per marketing contact

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.

Seats for everyone who takes part

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 tier jump as the only way out

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.

chapter_03

Controlling the costs: three strategies that work today

Even if you're staying with HubSpot for now, you don't have to accept the climbing pattern. Three strategies, increasing in effect.

1. Clean up marketing contacts structurally

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.

2. Critically review seats and hubs

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.

3. Archive to your own database

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.

chapter_04

Exporting everything: which route for which data

Your data comes out of HubSpot complete, but not all of it the same way. These are the routes.

  • Records per object. You export contacts, companies, deals and tickets from the interface as CSV, including all properties. For large volumes and repeatable exports, the API is the tool.
  • Associations between objects. This is the pitfall of every HubSpot export: the connection between contact, company and deal doesn't live in the separate CSVs but in separate associations. Through the API those are pulled explicitly, so every contact stays linked to the right company and every deal to the right people.
  • Notes, emails and activities. The complete timeline per customer, from call to email to task, lives in engagement objects and comes along through the API. This is the history that makes the difference between an address list and a customer picture.
  • Files and attachments. Documents in the file manager and attachments on records are pulled separately and relinked to the records they belong to.
  • Forms and their submissions. Historical submissions are exportable. The forms themselves get rebuilt; nobody notices the difference on your website, except that submissions now land in your own data layer.
the point

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.

chapter_05

Best practices for a migration without data loss

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.

step_01

Migrate in the order of the relationships

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.

step_02

Run a test migration first

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.

step_03

Clean up during the move

Deduplicate and normalize while you're looking at every object anyway. Document what you deliberately leave behind, so "left out" never means "lost."

step_04

Run in parallel before you cancel anything

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.

step_05

Rebuild processes, don't copy them

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.

five rules for a migration without data loss; at step 4 the team decides, not the schedule
chapter_06

The alternative: your CRM, in-house

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.

now

Counters that grow with you

Every bit your business grows, your bill grows with it.

  • Paying per block of marketing contacts, dead weight included
  • A seat for everyone who does more than just look
  • One tier limit forces an upgrade for every user at once
  • Your process limited by the package
later

Data as the foundation

Your customer data sits underneath, the solutions sit on top.

  • No seats, no paid contacts, no tiers
  • Just low, predictable infrastructure costs
  • Pipeline, forms, dashboards, AI chat and agents built around your way of working
  • Every solution interchangeable without data loss
the reversal: from climbing counters to a data layer where growth costs almost nothing extra

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.

chapter_07

The comparison at a glance

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
chapter_08

The Data Act: switching becomes a right

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.

chapter_09

Starting small: the data scan

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.

closing

About And Repeat

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.

next_step

Want to know where your HubSpot data stands?

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."

Book a data scan Back to the service page