Skip to main content
Meticulosity Global

Migration Reference

Freshsales Suite to HubSpot Migration


What actually transfers, what quietly does not, and what has to be rebuilt by hand.

We mapped Freshsales Suite against HubSpot feature by feature: 48 features, 4 synced objects, 8 documented traps and 36 items that have to be rebuilt. The whole map is on this page, ungated.

The PDF is the same reference, formatted for a procurement file.

Get The Reference And The Calculator

The full Freshsales Suite to HubSpot reference as a PDF, plus the Excel calculator we scope these migrations with: every one of the 48 features as a row, enter your counts, get hours.

Three files: the reference as a PDF, the same reference in Markdown for your AI tool, and the full Excel effort calculator.

PDF documentPDFMarkdown documentMDExcel workbookXLS
Freshsales Suite logoHubSpot logo

Freshsales Suite to HubSpot is a medium migration, typically 3-6 weeks. Of the 48 features we mapped, 37 carry across as they are and 11 land with something lost: the 36 items nothing moves for you is what will actually set your timeline, not the sync.

Migration Scorecard

Complexity: Medium
Migration complexity
Medium
Typical timeline
3-6 weeks
Recommended method
Sync then migrate
Native sync
Data sync, two way
Smart transfer
Not supported
HubSpot subscription
Default mappings cost nothing; move past them and custom field mappings need Data Hub Starter or higher. One more thing worth checking before you install anything: Freshsales (classic) and Freshsales Suite are two separate marketplace listings, not one app covering both, so confirm which edition you actually run before picking the connector.

Feature parity across 48 capabilities

3777%
1123%
  • Maps directly: 37 (77%)
  • Maps partially: 11 (23%)
  • No equivalent: 0 (0%)

4

Objects synced natively

8

Limitations and traps

36

Manual rebuild items

4

Source editions covered

Where this comes from: Our own research corpus, verified 2026-07-31, behind every number on this page.

The Four Objects That Sync Natively

What the connector moves for you, and which way each one flows.

Leads

Two wayTwo way

Becomes Contacts

A Freshsales Lead lands in HubSpot as a Contact, but only if it carries a valid email address; anything without one is dropped silently, with nothing written to a log to say so. You choose the scope yourself: both Leads and Contacts, Leads only, or Contacts only, and that choice is worth making deliberately rather than accepting the default.

Contacts

Two wayTwo way

Becomes Contacts

Freshsales Contacts follow the same path as Leads into HubSpot Contacts, so both source objects end up sharing a single destination type on the other side.

Accounts

Two wayTwo way

Becomes Companies

Getting company records to sync at all depends on which app is installed: it is available specifically through the Freshsales Suite data sync app, not the older listing.

Deals

Two wayTwo way

Becomes Deals

A deal cannot keep its associations on its own: contact sync, company sync, or both need to be running alongside it, or the deal arrives in HubSpot with nothing attached to it.

Eight Things the Sync Does Not Tell You

Each one is documented, and each one has ended a migration in a bad week.

Records Without Email Addresses Are Silently Excluded

A record with no valid email address never crosses at all, and Freshsales drops it without a line in any error report, so the gap in what actually arrived is invisible until someone goes looking for it. Where inbound arrives by phone call or WhatsApp message before an email address is ever collected, which is common enough in this market, that silent exclusion can take a meaningful slice of the pipeline with it.

Workaround: Run the audit before migration starts, not after: pull out every Freshsales record missing an email address, export that set on its own, and bring it back in through a CSV import once the main sync has finished. Do this while the list is still short enough for a lean IT team to check by hand.

Notes and Files Do Not Sync Natively

Whatever is attached to a Freshsales record, a note, a file, a document, stays exactly where it is: none of it is part of what the native sync actually moves between the two systems. Trade licence copies, VAT registration certificates and signed Arabic-language contracts sitting in those attachment fields are rarely decorative, so check what is actually there before assuming the loss is minor.

Workaround: Move notes and files on a track of their own: the API, a CSV import for notes logged as activities, or a third-party migration tool built for the job. Whichever route is chosen, it needs to be a deliberate step in the plan rather than an assumption that the sync already covers it.

Activity History (calls, Meetings, Emails) Does Not Sync

Call logs, meeting records, email history and the rest of what counts as activity data in Freshsales simply do not make the crossing through the native sync. Where a phone call or a WhatsApp thread is closer to the real record of a relationship than the deal card ever was, that gap is closer to losing institutional memory than losing a data field.

Workaround: Export the activity data out of Freshsales and bring it in through the HubSpot API, or hand the job to a third-party tool such as MigrateMyCRM built specifically to migrate activity records.

Default Sync Frequency Is Twice Daily

Some HubSpot data sync integrations update in real time; Freshsales is not one of them, running on a default schedule of twice a day, with an on-demand sync available only if someone actually goes in and triggers it. For a lean IT function without a dedicated administrator watching the integration, the gap between a change and its arrival on the other side can sit open far longer than twice a day implies.

Workaround: Reach for the manual 'Start sync' button whenever a record genuinely cannot wait for the next scheduled run; someone still has to remember to press it.

Dropdown Fields Require Choice-level Mapping

A dropdown or picklist field is not mapped once at the field level; every individual choice inside it needs its own mapping, which turns a field with dozens of options into dozens of small decisions. Emirate, city and free-zone jurisdiction lists built up by hand over years are exactly where that workload gets long.

Workaround: Settle the dropdown mappings before the sync is configured, not while it is running: write down every choice value in both systems, and decide in the same pass whether each list stays in English, Arabic, or genuinely needs both.

New Custom Fields Require Manual Refresh

A new custom field created on either side does not show up in the mapping interface on its own; someone has to refresh it manually before the field can even be mapped. For a small internal IT team, that is one more thing to remember every time a field gets added, not a one-off setup task.

Workaround: Refresh the integration mapping interface as a fixed step every time a new custom field is created, before trying to configure its sync, or the field simply will not appear to map.

Mandatory Fields Must Be Mapped Before Sync Activation

The 'Start sync' button stays disabled until every mandatory field on both sides has a proper mapping; there is no partial activation while a handful of required fields are still unresolved.

Workaround: Identify every mandatory field on both the Freshsales and HubSpot sides before configuring the integration at all, so activation is not blocked by a requirement discovered midway through.

Freshsales Telephony Data Requires Reconfiguration

Freshsales' built-in telephony, call logs, recordings, notes and the activity timeline built from them, is often the backbone a sales team's reporting actually runs on, and none of it transfers to HubSpot. Leaving Freshsales for that reason alone is worth pausing on: a cost-conscious buyer choosing HubSpot to save on the CRM line may not have budgeted to rebuild the calling infrastructure that sat inside it for free.

Workaround: Reconfigure the calling setup directly in HubSpot, export the existing call logs and bring them in as activities through the API, and expect recordings specifically to need a home outside HubSpot, since they are files rather than CRM data.

The 36 Items That Get Rebuilt by Hand

This is the list that separates a quote that holds from one that does not.

Data And Objects

Notes and Annotations

The free-text notes sitting on Freshsales records.

HubSpot: Notes on the record timeline

These need a second import pass, run only once the records themselves have already landed in HubSpot.

File Attachments and Documents

Whatever files sit attached to a record.

HubSpot: Attachments on records

These come across through the API and are re-associated to their records only after those records already exist on the HubSpot side.

Call Logs and Recordings

The activity log and the audio behind it from Freshsales' built-in telephony.

HubSpot: Logged calls, with recordings held externally

A recording is a file, not a piece of CRM data, so keeping the archive outside HubSpot and linking to it from the record is usually the cheaper route rather than trying to move every recording across.

Email Conversation History

Whatever email thread was logged against a record.

HubSpot: Logged email on the timeline

Reconnecting the mailbox directly to HubSpot brings back recent threads at a fraction of the cost of extracting the history by hand.

Meeting Records

Meetings that were logged, along with their outcomes.

HubSpot: Meetings on the timeline

Reconnecting the calendar on its own recovers everything still upcoming; it is only the past meetings that need a separate extraction step.

Activity Timelines

The single trail that pulls a record's activity together in one view.

HubSpot: The record timeline

This is assembled from its component pieces rather than moved as a single object, and a fully complete timeline is the item most often promised and least often delivered in a CRM migration; set that expectation early rather than after go-live.

Custom Module Data

Whatever records sit inside a Freshsales custom module.

HubSpot: Custom objects

Confirm the plan actually being purchased includes custom objects before assuming it does; where it does not, the data has to collapse down into properties instead, which reshapes the data model itself rather than just changing how the import runs.

Records Without Email Addresses

Any record the connector passes over simply because it carries no email address.

HubSpot: Contacts, imported by another key

These are dropped without a word, so count how many there are before the migration runs, not after, while the gap is still something you can act on.

Automation

Workflow Automations

Rules inside Freshsales that raise alerts and spin up tasks on their own.

HubSpot: Workflows

Work through them one rule at a time, and only once the pipelines and properties they depend on already exist in HubSpot.

Sales Sequences and Cadences

The multi-step outbound follow-up a rep runs against a prospect.

HubSpot: Sequences

Enrolment works per rep and per mailbox in HubSpot, and the sending limits are not the same as Freshsales used to allow, worth checking against actual outbound volume before assuming parity.

Auto-assignment Rules

The logic that decides which owner a new record lands with.

HubSpot: Workflow rotation actions

Get users and teams built first, then run the rebuilt distribution logic against real records before trusting it with live leads.

Lead Scoring Rules

Whatever criteria Freshsales was using to score a lead.

HubSpot: Score properties

This gets built again from nothing rather than carried over, and because the signals HubSpot can see are not the same ones Freshsales used, the old scoring weights are a starting hypothesis to test, not a specification to copy.

Territory Management Rules

Rules that hand a record to an owner based on territory.

HubSpot: Properties plus workflow-based assignment

HubSpot has no territory object to receive this directly, so design the property that will stand in for it before writing a single assignment rule against it.

Time-based Workflow Triggers

Rules that trigger once a set period has passed rather than on a specific event.

HubSpot: Workflow delays and date-based enrolment

Run the timing against real records before trusting it, since the two platforms do not calculate a delay the same way.

Reporting

Custom Reports and Analytics

Whatever saved report definitions sit over the Freshsales data today.

HubSpot: Custom reports

Start the rebuild from the question each report was actually answering, not from copying its layout.

Dashboard Configurations

The dashboard layouts currently saved in Freshsales.

HubSpot: Dashboards

Leave these until after the underlying reports already exist in HubSpot.

Sales Forecasting Reports

Reporting that looks ahead at revenue still to close.

HubSpot: Forecasting

This is a configuration job before it is a report: amount, close date and stage probability all need setting deliberately, not left on whatever HubSpot defaults to.

Pipeline Velocity Reports

How fast a deal actually moves from one stage to the next.

HubSpot: Deal velocity reporting

This depends on stage history that the import simply does not bring across, so expect the report to start building from cutover onward rather than showing anything historical on day one.

Activity and Productivity Reports

Reporting on what each individual rep is actually doing.

HubSpot: Activity reports

The owner field has to resolve to a genuine HubSpot user or the activity attributes to nobody at all, so check that mapping before trusting a single number in this report.

Revenue Analytics

Reporting on revenue already closed.

HubSpot: Deal reports

This depends entirely on a clean deal import, so get that right before spending any time on the report itself.

Sales And Marketing Config

Pipeline Stages and Deal Stage Mapping

The pipelines Freshsales runs and every stage sitting inside them.

HubSpot: Deal pipelines and stages

Build this before anything else; every later step in the migration depends on it existing first.

Lifecycle Stage Alignment

Getting Freshsales lead and contact statuses onto HubSpot's own lifecycle stage model.

HubSpot: Lifecycle stage and lead status properties

By default, HubSpot's lifecycle stage only moves forward, so any status that moves backwards in the old model needs deliberate handling rather than a straight copy. Agree the mapping with whoever owns the sales process before a single record is imported, because fixing it afterwards means reprocessing every record that already crossed.

Email Templates and Snippets

The message templates the team reuses over and over.

HubSpot: Email templates and snippets

Each one gets rebuilt by hand, and the token names inside them change in the process, so treat it as a rewrite rather than a copy-paste.

Web Forms and Landing Pages

Whatever forms and hosted pages Freshsales is using to capture leads today.

HubSpot: Forms and landing pages

These get rebuilt in HubSpot, and every embed code has to be swapped out at cutover, or new leads keep quietly arriving in a system nobody is watching any more.

Chat Widgets and Bot Configuration

The chat widget on the site and whatever automated flow sits behind it.

HubSpot: Live chat and the chatbot builder

Swapping the widget itself is the easy part; the routing and the bot logic that decide what happens after someone types is where the actual work sits.

Product Catalogue

Whatever products are attached to a deal record.

HubSpot: Products and line items

Bring these across before the deals themselves, or the line items will land with nothing to attach to.

CPQ Configuration

Freshsales' own quoting tool and the pricing rules built into it.

HubSpot: Quotes, or a marketplace CPQ product

HubSpot's own quotes tool handles simple, fixed pricing well enough; configurable products, approval rules and discount logic usually push past what it covers and call for a dedicated product instead, which is a purchasing decision for a price-sensitive buyer to weigh up before it is ever a build task.

Users And Permissions

User Roles and Territory Assignments

Every login, its access level and whatever territory sits attached to it.

HubSpot: Users, permission sets and territory properties

Freshsales treats role and territory as one setting; HubSpot treats them as two separate concepts, so pull them apart deliberately before building either one, rather than trying to preserve a single combined setting that no longer exists on the other side.

Record Visibility and Sharing Rules

The rules deciding who can see and who can edit a given record.

HubSpot: Record access settings

Confirm what genuinely needs restricting before reproducing the old rules wholesale; access that grew broad by habit is worth tightening on the way across rather than carrying forward unexamined.

Team Hierarchy

The reporting structure Freshsales relies on for rollup numbers.

HubSpot: Teams, including parent teams

A rollup only works if the team structure underneath it is actually built as a hierarchy rather than a flat list, and that is easy enough to get wrong the first time through that it is worth checking rather than assuming.

Profile-level Permissions

The fine-grained control Freshsales offers at the field and module level.

HubSpot: Permission sets

HubSpot simply does not offer the same granularity at the field level, so where a field is genuinely sensitive, confirm the control actually exists in HubSpot before promising anyone it will.

Integrations

Marketplace App Connections

Every app currently joined to Freshsales through its own integrations.

HubSpot: App Marketplace integrations

Take an honest inventory of what is genuinely in use before pricing a single replacement; a price-sensitive buyer gains nothing from paying for parity with an app nobody opened this quarter.

Freshworks Ecosystem Integrations

Whatever connects Freshsales to Freshdesk and the rest of the Freshworks suite around it.

HubSpot: The equivalent HubSpot hubs

Freshdesk and the rest of the suite are neighbouring products, not integrations in the ordinary sense, and leaving Freshsales alone rarely leaves that question alone too: if support still runs on Freshdesk, decide now whether it moves with the CRM or stays put, because a migration that quietly widens past the CRM needs to be scoped and priced as the larger project it actually is.

Calendar Sync

The connection to a Google or Microsoft calendar.

HubSpot: Calendar integration and the meetings tool

This has to be reconnected per user rather than once for the whole account, so budget the time accordingly.

Telephony Integrations

Any third-party voice provider wired into Freshsales.

HubSpot: HubSpot calling or a marketplace provider

Confirm the provider actually has a HubSpot integration before signing anything, not after.

Zapier and Make Automations

Whatever external automation scenario is currently wired into Freshsales.

HubSpot: Updated scenarios or native workflows

Every one of these needs editing on both ends of the connection, and some are genuinely better replaced outright by a native HubSpot workflow than patched to keep working.

The Sequence

Sync First, Then Migrate

Order is the content here. These steps form a dependency chain, and running them out of sequence is a documented way this kind of migration fails.

  1. 1

    Audit

    catalogue every field, pipeline, automation and integration currently running in Freshsales, including anything owned by a team outside IT, since that is what a lean function is most likely to miss on the first pass

  2. 2

    Define What HubSpot Actually Needs to Achieve, and Map Every Freshsales Lifecycle Status Onto a HubSpot Lifecycle Stage Before Building Anything on Top of It

    Define what HubSpot actually needs to achieve, and map every Freshsales lifecycle status onto a HubSpot lifecycle stage before building anything on top of it

  3. 3

    Clean the Data

    deduplicate records, confirm every record that matters carries a valid email address, and clear out what is stale before any of it moves

  4. 4

    Set HubSpot up First

    create the custom properties, configure the pipelines and map the deal stages before a single record is allowed to land against them

  5. 5

    Install the Correct App From the HubSpot Marketplace, Either Freshsales Suite or the Freshsales Data Sync App, and Check Which One Actually Matches the Account Before Installing Either

    Install the correct app from the HubSpot Marketplace, either Freshsales Suite or the Freshsales data sync app, and check which one actually matches the account before installing either

  6. 6

    Configure the Field Mappings, Dropdown Choice-level Mappings Included, Since Those Are Not Inherited Automatically From the Field Mapping Alone

    Configure the field mappings, dropdown choice-level mappings included, since those are not inherited automatically from the field mapping alone

  7. 7

    Turn the Sync On, Then Check the Accuracy of What Actually Transferred Before Trusting It With Live Use

    Turn the sync on, then check the accuracy of what actually transferred before trusting it with live use

  8. 8

    Migrate the Notes, Activities and Call History Separately, Through the API or a Third-party Tool, Since None of It Rides Along With the Sync

    Migrate the notes, activities and call history separately, through the API or a third-party tool, since none of it rides along with the sync

  9. 9

    Rebuild the Automations as HubSpot Workflows With Clearly Defined Triggers and Actions, Rather Than Reproducing Freshsales Rules That No Longer Quite Apply

    Rebuild the automations as HubSpot workflows with clearly defined triggers and actions, rather than reproducing Freshsales rules that no longer quite apply

  10. 10

    Recreate the Reports and Dashboards From Nothing Directly in HubSpot

    Recreate the reports and dashboards from nothing directly in HubSpot

  11. 11

    Run Test Migrations and Validate the Data Thoroughly Before Committing to the Full Cutover

    Run test migrations and validate the data thoroughly before committing to the full cutover

  12. 12

    Train the Team Properly on HubSpot, Then Execute Go-live With a Transition Plan Already in Place Rather Than Improvised on the Day

    Train the team properly on HubSpot, then execute go-live with a transition plan already in place rather than improvised on the day

Typically 3-6 weeks end to end, depending on how much of the source configuration is actually in use.

Effort Estimator

How Big Is This Migration?

A handful of questions, no sign-up required. The ranges come from the research above: every feature we mapped carries an effort figure, and this totals the ones that apply to your instance.

Custom fields and properties across all records

Everything beyond the out-of-the-box fields, added up across contacts, companies, deals and anything custom.

Automations, workflows and rules

Anything that fires on its own: workflows, sequences, assignment and validation rules, approvals.

Custom reports and dashboards

Only the ones the business actually uses. Reports nobody opens do not need rebuilding.

Marketing assets to rebuild

Email templates, forms, landing pages, lists and segments taken together.

Custom objects or extra pipelines

Record types beyond contacts, companies, deals and tickets.

Third-party integrations wired into the current system

Anything connected by API, webhook or installed package that has to keep working afterwards.

Users to move across

Seats, plus whatever permission structure sits behind them.

Roughly how many contact records

This affects the sync approach and the reconciliation effort, not the per-record work. The connector moves records; people do not.

Estimated Effort

Answer a couple of questions and an hours range appears here.

Built from our research on 48 Freshsales Suite features. It is a range, not a quote.

A planning range, not a quote. It is delivery effort only, with no project management line. What moves it most in practice is data quality.

What Goes Wrong Most Often

The failures that show up again and again, in roughly the order they bite.

Any Record Missing an Email Address Is Dropped Without a Trace, So Audit for This Specifically Before Migration Rather Than Trusting the Sync to Flag It

Any record missing an email address is dropped without a trace, so audit for this specifically before migration rather than trusting the sync to flag it

Losing Freshsales' Built-in Telephony Data Is a Genuine Loss for Most Teams, So Plan the Call Data Migration as Its Own Separate Track Rather Than an Afterthought to the CRM Move

Losing Freshsales' built-in telephony data is a genuine loss for most teams, so plan the call data migration as its own separate track rather than an afterthought to the CRM move

Data Can Sit up to Twelve Hours Out of Date Under the Default Twice-daily Sync, Worth Knowing Before Anyone Relies on HubSpot to Show What Happened This Morning

Data can sit up to twelve hours out of date under the default twice-daily sync, worth knowing before anyone relies on HubSpot to show what happened this morning

HubSpot Workflows Can Do Considerably More Than Freshsales Automations Ever Could, So Treat the Rebuild as a Chance to Design Something Smarter Rather Than a Chore of Replicating the Old Rules Exactly

HubSpot workflows can do considerably more than Freshsales automations ever could, so treat the rebuild as a chance to design something smarter rather than a chore of replicating the old rules exactly

Every Dropdown Field Has to Be Mapped Choice by Choice, Which Is Tedious Work Worth Budgeting Real Time for Rather Than Squeezing Into a Spare Afternoon

Every dropdown field has to be mapped choice by choice, which is tedious work worth budgeting real time for rather than squeezing into a spare afternoon

Two Different Marketplace Apps Exist, One for Freshsales Classic and One for Freshsales Suite, and Installing the Wrong One Is an Easy Mistake Worth Double-checking Against the Actual Account

Two different marketplace apps exist, one for Freshsales Classic and one for Freshsales Suite, and installing the wrong one is an easy mistake worth double-checking against the actual account

Not Every Freshsales Pipeline Maps Cleanly Onto How the Business Actually Sells Today, So Expect Some Genuine Restructuring Rather Than a One-to-one Copy of What Already Exists

Not every Freshsales pipeline maps cleanly onto how the business actually sells today, so expect some genuine restructuring rather than a one-to-one copy of what already exists

Treat the Migration Itself as Only the First Phase; the Optimisation That Follows It Is What Actually Determines Whether the Move Was Worth Making

Treat the migration itself as only the first phase; the optimisation that follows it is what actually determines whether the move was worth making

Questions

Freshsales Suite To HubSpot, Answered

Ready to Get Started?

Plan Your Migration

Tell us which platform you are leaving, how much of it is custom, and when you need to be live in HubSpot. We will tell you what transfers directly, what needs rebuilding, and how long the move actually takes.