How to Migrate from Freshdesk to HubSpot Service Hub
Moving your support desk from Freshdesk to HubSpot Service Hub is less a file transfer and more a translation problem: you are lifting a flat, ticket-centric system and dropping it into a CRM where every ticket, contact, and company is stitched together by associations. Do it carefully and your agents open HubSpot on day one to find familiar tickets, intact conversations, and the right customer attached to each one. Do it in a hurry and you inherit orphaned records, messages that all claim to come from your API user, and broken image links the moment the old account is switched off. This guide walks through how the objects map, what genuinely moves versus what you rebuild by hand, how to keep downtime near zero, and where the native importers quietly fall short of a real migration.
Understand the two data models first
Freshdesk and HubSpot think about support differently, and that difference is where data silently vanishes. Freshdesk is a ticket-first help desk: a ticket holds a threaded conversation, and contacts and companies hang off it. HubSpot Service Hub is a CRM where the ticket is just one object in a web of associations — contacts, companies, and each individual reply live as separate records tied together through HubSpot's associations API.
That means a migration is not a "sync toggle." According to the ClonePartner technical guide, the highest-risk areas are exactly the ones the two models disagree on: requester identity (Freshdesk lets a single contact carry multiple emails; HubSpot deduplicates on email), company associations (HubSpot enforces them more strictly), private-note visibility, inline images, timestamps, and authorship. Getting those right is the whole job.
How Freshdesk objects map to HubSpot
Before you touch a wizard, it helps to know where each thing lands. This is the core of the migration and worth mapping on paper before you map it in software.
| Freshdesk object | HubSpot Service Hub target | What to watch |
|---|---|---|
| Contact | Contact | Deduplicated on email; a Freshdesk contact's secondary emails may split or merge |
| Company | Company | HubSpot enforces stronger company↔contact associations than Freshdesk |
| Ticket | Ticket | Create a custom property to preserve the original Freshdesk ticket ID |
| Public reply | Note / engagement | Each reply becomes a separate engagement linked via the associations API |
| Private note | Note / engagement | Internal-only flag is lost unless preserved by a naming convention or custom field |
| Attachment | File Manager file + Note | Each file needs its own upload call; large files and inline images are the fragile part |
| Agent | Owner | Map agent IDs to HubSpot owner IDs so authorship survives |
| Tags | Custom multi-select property | HubSpot has no native ticket-tag object, so tags become a property |
| Status | Pipeline stage | Build the corresponding pipeline stages before the migration runs |
Two of these deserve emphasis. Status → pipeline stage is the mapping people underestimate: HubSpot ticket pipelines are yours to design, so decide your stages (New, Waiting on customer, Waiting on us, Closed, and so on) and their order first, or your imported tickets pile up in the wrong column. And authorship and timestamps are the ones that ruin audit trails — without setting HubSpot's hs_timestamp and mapping agent IDs to owners, every migrated message appears to originate from the API user on the day you ran the import.
What moves vs what you rebuild
Not everything comes across, and the honest split matters more than any marketing claim. Data records generally migrate; configuration does not. Per Help Desk Migration (the Relokia tool) and the technical guide above, here is the realistic picture:
| Moves in a proper migration | You rebuild by hand in HubSpot |
|---|---|
| Contacts, companies, agents (as owners) | SLA policies (configuration, not data) |
| Tickets with original IDs preserved | Automations and dispatch/assignment rules |
| Public replies and private notes | Macros / canned responses (rebuild as HubSpot snippets) |
| Tags (as properties) and custom fields | Reports and dashboards (reconfigure for HubSpot's schema) |
| Attachments and, if handled, inline images | Freddy AI models (no direct HubSpot equivalent) |
The takeaway: budget real time to rebuild your operational layer in HubSpot. Your SLA targets, routing rules, business hours, and reports are settings that describe how Freshdesk behaved — they don't ride along with the tickets, and every migration tool leaves them for you to recreate. Treat that as a project workstream, not an afterthought.
Native importers vs a paid migration tool
You have three broad routes, and they are genuinely different in what they preserve.
HubSpot Smart Transfer, launched on 13 January 2026, is HubSpot's own one-way importer. It handles contacts, companies, and tickets, and lists attachments as a one-time post-sync transfer type — but it does not clearly document Freshdesk conversation or comment transfer, and custom-field mapping needs HubSpot's Data Hub. It is closer to a migration than the old integration, but it is still a forward-sync tool at heart.
The Freshdesk Data Sync marketplace app is the one to be wary of if history matters. It only syncs tickets from roughly the last 120 days, excludes private and public notes, loses authorship and timestamps, and breaks threaded email chains — fine for keeping two live systems loosely in step, wrong for a clean cutover.
A dedicated migration tool like Help Desk Migration (Relokia) maps the full object set above, preserves original ticket IDs and authorship, and offers a free demo/sample migration so you can verify the mapping on a small batch before committing. Its pricing scales with record volume and complexity, and it advertises near-zero downtime through a Delta migration that captures records created or changed after the bulk export began.
A rough rule of thumb from the technical guide: under ~500 tickets with no history needs, a CSV export can do; roughly 1,000–50,000 tickets on standard fields suit a third-party SaaS tool; 50,000+ tickets or regulated data usually warrant an engineer-led migration with proper inline-image re-hosting and verification. One hard constraint to plan around: Freshdesk's ticket API paginates to a maximum of ~30,000 tickets (300 pages × 100), so larger histories must be segmented by date.
A step-by-step migration plan
Here is the sequence that keeps a Freshdesk-to-HubSpot move calm and reversible.
- Design your HubSpot side first. Create the ticket pipeline and stages that mirror your Freshdesk statuses, decide which custom fields become HubSpot properties, and add a property to hold the original Freshdesk ticket ID.
- Freeze configuration in Freshdesk. Stop schema changes — no new custom fields or status renames — so the mapping stays stable while you work.
- Connect source and target. In your chosen tool (or Smart Transfer), authenticate Freshdesk with your subdomain and API key, then connect the HubSpot account you're importing into.
- Map fields and objects. Match contacts, companies, tickets, agents→owners, tags→properties, and statuses→pipeline stages. Review the mapping visually before running anything.
- Run a demo / sample migration. Move a small batch and open the results in HubSpot. Check authorship, timestamps, private-note handling, attachments, and inline images specifically — these are the usual failure points.
- Run the full bulk migration. Expect the historical load to take several days for large volumes; keep both systems readable during this window.
- Delta sync on cutover day. Capture everything created or updated since the bulk export started, switch inbound channels to HubSpot, and monitor for orphaned records.
The honest bit about downtime
"Zero downtime" is achievable, but it has a specific mechanism behind it: the delta sync. The bulk migration of historical data runs over several days while Freshdesk stays live, so customers and agents keep working. On cutover day, a delta pass sweeps up every ticket and message created since the bulk export began, and only then do you switch incoming email and chat routing to HubSpot. Without a delta step you'd face the ugly choice the technical guide names directly — freeze ticket creation (and disrupt customers) or accept data loss. So the real question isn't "will there be downtime," it's "does my chosen tool do a proper delta." Plan a short pre-cutover QA on a statistical sample, and a monitoring window afterwards for orphaned or mis-associated records.
Where an AI layer fits — before or after you move
A migration is a good moment to think about what actually answers tickets, because neither Freshdesk nor HubSpot resolves them for you — agents do. This is where an AI agent layer earns its place, and it's worth understanding the build-versus-buy tradeoff before committing to either. The wider category of AI agents for customer service exists to do the reading-and-writing work that a help desk, old or new, still hands to a human.
Macha is one such layer, and it's deliberately not a help desk. It runs on top of the Freshdesk you already use as a native connector — you point it at your Freshdesk with a subdomain and API key, and it reads and writes the same tickets your agents do. That's useful on both sides of a migration: while you're still on Freshdesk, Macha can automate the repetitive Freshdesk work so your team can focus on the move itself. It drafts grounded replies, triages by intent, and looks up order or account status through a custom tool that turns a REST API into something an agent can call. (Macha's Freshdesk connector is for Freshdesk specifically — not Freshchat, Freshservice, or Freshcaller. And credits are consumed per AI action, not per resolution — the pricing page breaks that down.) If HubSpot Service Hub is your destination and Gorgias or another desk is on your shortlist too, our Freshdesk-to-Gorgias migration guide walks the same mapping discipline for a different target.
The clean division of labour is the same before and after you switch platforms: let the help desk be the system of record for what's promised and what's overdue, and let an agent layer handle the part the platform can't — actually answering fast enough to keep the promise.
FAQ
What actually migrates from Freshdesk to HubSpot Service Hub? Data records: contacts, companies, agents (as HubSpot owners), tickets with their original IDs preserved as a custom property, public replies and private notes (as note engagements), tags (as properties), custom fields, and attachments. Configuration — SLA policies, automations, macros, reports — does not migrate and is rebuilt in HubSpot.
Why not just use the native Freshdesk–HubSpot integration? The Freshdesk Data Sync marketplace app only syncs tickets from roughly the last 120 days, excludes private and public notes, and loses authorship, timestamps, and threaded email chains. It's a forward-sync for keeping two live systems in step, not a full historical migration. HubSpot's newer Smart Transfer handles contacts, companies, and tickets but doesn't clearly cover full conversation history.
Will there be downtime during the migration? It can be near zero if your tool supports a delta migration. The bulk of historical data moves over several days while Freshdesk stays live; on cutover day a delta sync captures anything created since the bulk export, and only then do you switch inbound routing to HubSpot. Without a delta step, you either freeze ticket creation or accept data loss.
How do Freshdesk ticket statuses become HubSpot pipeline stages? You build a HubSpot ticket pipeline with stages that mirror your Freshdesk statuses before running the migration, then map each Freshdesk status to a stage in the wizard. If you skip this, tickets land in the wrong stage. HubSpot has no native ticket-tag object either, so Freshdesk tags map to a custom multi-select property.
Can I add AI to HubSpot or Freshdesk without replacing either? Yes. An AI agent layer like Macha connects as a native connector and runs on top of the help desk you're using — it drafts grounded replies and triages by intent while the help desk stays the system of record. Macha's connector is for Freshdesk specifically, and it complements rather than replaces your desk on either side of a migration.
Planning a move and want your agents answering faster on whichever desk you land on? Start a free trial of Macha and connect it to your Freshdesk in minutes.
Add AI agents to your Freshdesk
Macha resolves tickets end to end on Freshdesk — no migration, no code.
Shopify
Stripe
Slack
Notion
Google Workspace
Confluence

