Your Guide to Data Migrations and Synchronizations with HubSpot
This article was authored by a member of the HubSpot developer community, Richard Steinmetz.
Let's say you have an ecommerce business with one or more applications and you've grown to a point of having a bigger database of information — including customer data, other companies' data, business transaction data, inventory data, and shop order data.
The data is somewhat scattered in different databases, and different tooling uses the different datasets. For example, the support team uses desktop software that connects to the people, business, and company databases. The operations team has your company's inventory data still very agile in Excel tables. And your ecommerce SaaS tool accesses and manages the article orders data from some NoSQL database.
You've grown enough to think that it's time to have everything in one place so that colleagues from different departments have a convenient place to manage the data. After considering different tools for managing customer and organizational data, you decide to go with the biggest, most feature–rich, and most reliable player in the field: HubSpot.
HubSpot has a lot of functionality and a mature API. It has endpoints in a RESTful style to hold just the data that you need:
- people data: /crm/v3/objects/contacts
- business transaction data: /crm/v3/objects/deals
- product inventory data: /crm/v3/objects/products
- custom inventory data: /crm/v3/schemas
Types of Migrations
There are different types of migrations. Here, we’ll take a look at the two major ones.
You might want to start managing some of your data only in HubSpot. In that case, you would migrate your existing data once.
Keep in mind that this is a gradual process and should happen over time when data is migrated and thoroughly verified. For example, you could go with a schedule of migrating first 10%, then 30%, then 60%, then 100%. Only after all the data is migrated and verified can you let go of the old data source.
Most of the time you will want to sync the date your application generates with HubSpot. If you would like to have historical data as well, you would need to do a one–off migration first.
What skill-set will be required to migrate my data to HubSpot?
Ideally, someone with expertise in designing and implementing HubSpot solutions would take care of your data migrations and integrations — i.e., someone who knows the fundamentals and quirks of the HubSpot API/platform. This will help you to understand what you actually need. And, sometimes even more importantly, what you don't need.
For smaller standardized migrations, you could use HubSpot's migration service.
If you are unsure, ping their consulting team first.
For anything else, like our use–case described above, you can create your own API integration (if you have a developer team), browse the Data Migration category in HubSpot’s App Marketplace, or find a solutions partner that offers migration services.
Roll Your Own
Your developer should have experience with migrating data and integrating third party APIs (more on that in the next sections). If this developer is not an expert in HubSpot, you'll need to allow time for them to learn and play with the fundamentals of the platform.
Upwork is a portal for finding someone to help you out if you don't have developers on your team. To find Upwork professionals, look for "HubSpot API developer." Make sure you find a professional with good communication skills and a great service attitude who asks good questions. Don't try to save on the price here. The stability of your integration will thank you later.
You can also find someone to help you by posting a listing at HubSpot directly.
Hubspot provides the endpoints but what are the technical requirements?
If you are building upon an existing app, create appropriate structures inside of your app:
- Set up your infrastructure (e.g. a proxy server or a worker system)
- Wrap the HubSpot API communication (use API integration design patterns)
- Wrap the migration in some kind of a one–off script or service
- Add system and unit tests inside of your application
- Add monitoring, alerts, and instrumentation to trace your integration's health
You should plan on investing time to define what your app architecture will look like. Your design process could look something like this:
- Create a rough sketch of what you think the final solution is
- Discuss with stakeholders
- Create a solution diagram (might be a sequence diagram)
- Discuss with stakeholders
- Flesh out some technical details
- Start building in iterations
For one–off migrations, it may be enough to create a script that gets the data from the original source, potentially cleans and transforms it, and finally ingests it into HubSpot.
There are endless ways to create code architectures for data synchronizations. Your developers should choose proven patterns and strategies that fit your use–case and data throughput.
In any case, everything should happen in iterations with short feedback loops and good communication.
How long will it take to build the integration?
With a moderately–sized source application, you will be looking at an iterative design phase of 1–3 weeks. It's not a one day thing because the development team will need to speak to different end–users and stakeholders to deeply understand their requirements and sketch out a rough plan.
If you don’t have prior experience with the HubSpot platform, it's recommended that an expert HubSpot API developer or consultant accompanies the design phase so that the integration starts off on the right foot.
Depending on the type of your migration and the complexity of your use–case, you could have anywhere from a couple to a dozen iterations.
What are the risks?
Most of all, you'll need to account for communication between your app and the HubSpot API. The nature of networks and web applications is that things can sometimes fail. Some of the reasons this might happen are:
- HubSpot API is down (unlikely but not impossible)
- Your servers are down
- Network errors
- Authentication, authorization, and integration bugs
Any of these issues can lead to data inconsistencies that will need manual fixing, either with scripts or manually in HubSpot.
You can mitigate this by communicating with the API via asynchronous workers through queueing systems that get rerun once the services are up again.
Your Successful Migration to HubSpot
To sum it up, for a bigger application you will need professionals who will migrate your data with care in several steps.
- Deeply understand the requirements
- Design your application/integration architecture
- Determine your data migration schedule
- Create code for data migration and test against HubSpot's test environment
- Enable observability for your migration and sync
- Gradually migrate the data or gradually enable the sync
With that, enjoy the new way to communicate and keep in touch with your customers. They'll love it. 🧡