Skip to main content
Meticulosity Global

Migration Reference

Freshdesk to HubSpot Migration


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

We mapped Freshdesk against HubSpot feature by feature: 59 features, 3 synced objects, 9 documented traps and 33 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 Freshdesk to HubSpot reference as a PDF, plus the Excel calculator we scope these migrations with: every one of the 59 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
Freshdesk logoHubSpot logo

Freshdesk to HubSpot is a moderate to high migration, typically Plan on 2-6 weeks as the range, though the route you take moves that number more than volume alone does. CSV takes days; a SaaS migration tool covers 1K-50K tickets in 2-4 weeks; DIY scripts at 50K+ run 4-8 weeks; a professional service lands back at 2-4 weeks regardless of scale. weeks. Of the 59 features we mapped, 26 carry across as they are and 30 land with something lost: the 33 items nothing moves for you is what will actually set your timeline, not the sync.

Migration Scorecard

Complexity: High
Migration complexity
Moderate to high
Typical timeline
Plan on 2-6 weeks as the range, though the route you take moves that number more than volume alone does. CSV takes days; a SaaS migration tool covers 1K-50K tickets in 2-4 weeks; DIY scripts at 50K+ run 4-8 weeks; a professional service lands back at 2-4 weeks regardless of scale. weeks
Recommended method
Full data fidelity means a custom API migration; treat that as the default answer rather than the fallback. The native sync was built for ongoing coexistence, not for a full migration, so do not scope it as one, and CSV export only makes sense under 500 tickets and only where the conversation history itself is not something you need to keep.
Native sync
Data sync, two way
Smart transfer
Supported
HubSpot subscription
Free for basic sync. Data Hub Starter+ for custom field mappings.

Feature parity across 59 capabilities

2644%
3051%
35%
  • Maps directly: 26 (44%)
  • Maps partially: 30 (51%)
  • No equivalent: 3 (5%)

3

Objects synced natively

9

Limitations and traps

33

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 Three Objects That Sync Natively

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

Contacts

Two wayTwo way

Becomes Contacts

Contacts are the object this sync is actually built around, running two-way and in real time, but deduplication rests on the primary email address alone, a risky rule for any account that was merged along the way and now carries more than one address of record.

Companies

Two wayTwo way

Becomes Companies

Sequence matters here: create the company records before the contacts arrive, then associate the two through the Associations API, since doing it the other way round leaves contacts with nothing to attach to. Two-way sync is supported once that order is respected.

Tickets

Two wayTwo way

Becomes Tickets

Tickets are where this sync is weakest, not strongest. It reaches back only 120 days, carries across nothing but the ticket title and basic metadata, drops both private and public notes, and loses who handled a case and when. A threaded email exchange, sometimes running in Arabic, sometimes in English, sometimes both in the same ticket, arrives as scattered, disconnected messages rather than the conversation it actually was.

Nine Things the Sync Does Not Tell You

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

120-day Ticket History Limit

Anything raised more than 120 days ago stays behind for good: the native integration's ticket sync reaches back exactly that far and no further. A dispute that opened in its first week can already have aged out of the sync before the migration project even begins scoping the rest of the move.

Workaround: Recovering the full record means going around the sync entirely: a custom script built against the Freshdesk REST API to extract and import the complete ticket history, work that has to be commissioned on purpose rather than assumed to happen alongside the native connection.

No Conversation or Reply Transfer

What actually gets lost here is the conversation itself, not the ticket record. The native integration carries across a title and a handful of metadata fields and nothing else: no email thread, no agent reply, no customer response. A ticket that does sync still arrives as an empty shell of what was said inside it.

Workaround: Getting the conversation across takes a custom API script: pulling every message out of Freshdesk and writing it back in as a HubSpot engagement note tied to its ticket, since nothing built into the connector will do that step on your behalf.

Private and Public Notes Excluded

Neither a private note nor a public one attached to a ticket makes the crossing: the native sync excludes both categories outright. Whatever internal documentation your agents wrote alongside a ticket, an escalation reason, a manager's instruction, a flagged risk, simply does not exist on the HubSpot side afterwards.

Workaround: Pull the notes out through the Freshdesk API and bring them back in as HubSpot notes, tagging anything that was private as internal so the distinction your agents relied on survives the move rather than flattening into one open record.

Authorship and Timestamps Lost

Whoever actually worked a ticket disappears from its own record: the native integration keeps neither the original agent nor the original timestamp, so every migrated ticket reads as though the integration user created it at the moment of sync, not the agent who resolved it weeks or months earlier, precisely the detail a later audit or compliance review needs in order to reconstruct who did what and when.

Workaround: Save the Freshdesk agent ID and the original timestamp into custom HubSpot properties before the record loses them for good, and map each agent ID through to a HubSpot owner ID so authorship survives in a form the system can actually attribute rather than a note nobody thinks to check.

Inline Images Become Broken Links

An inline image sitting inside a ticket description or a note is not actually stored with the ticket: it is hosted on the Freshdesk CDN and only linked to. The moment Freshdesk is decommissioned, every one of those links breaks permanently rather than merely going quiet.

Workaround: Download every inline image, re-upload it to HubSpot's File Manager and rewrite the src URLs in the underlying HTML before Freshdesk is cancelled, not after: once the subscription lapses there is nothing left to download from.

Freshdesk API Rate Limits and Pagination Ceiling

Three separate ceilings sit on how much can be pulled out of Freshdesk at once: an API rate limit of 50 to 700 requests a minute depending on the plan, a pagination ceiling of 30,000 tickets across 300 pages of 100 items each, and a filter API hard limit of 300 results in total. A support operation with years of ticket history behind it hits the lowest of these first.

Workaround: Work around the ceiling with an incremental export using the updated_since parameter rather than pulling everything at once, and build in backoff and retry logic so a rate limit hit stalls the extraction instead of silently dropping records.

Long Ticket Descriptions Truncated

A long ticket description or note that Freshdesk happily held past 65,000 characters runs straight into HubSpot's lower hard limit on the other side, so anything that long has to be split intelligently rather than simply cut off at the ceiling.

Workaround: The fix is purpose-built splitting logic that keeps the context intact across the break and creates a continuation note for whatever does not fit, rather than a generic truncation that drops the tail of the record.

Attachment Handling Limitations

A single HubSpot API request will not carry more than one file at a time, File Manager itself caps storage at 2GB on a paid account or 20MB on the free tier, and any one record is limited to 10,000 engagements in total. Three separate ceilings that a ticket history heavy with attachments, tender documents, signed contracts, screenshots, can reach faster than expected.

Workaround: Upload each file one at a time through the /files/v3/files endpoint, then link it back to its ticket using hs_attachment_ids: there is no batch route around the single-file limit, only a longer queue of individual calls.

Association Failures and Silent Data Drops

Two failures here give no warning at all. A note created with a ticket association can simply not appear in the HubSpot interface even though the API call succeeded, and a custom field value is silently dropped if the matching property does not already exist in HubSpot when the call hits: no error returned, just data that is quietly missing.

Workaround: Create every custom property in HubSpot before a single record moves, and run a post-import validation script to verify associations landed rather than trusting a successful API response, since a successful call and a visible record are not the same guarantee here.

Three Freshdesk Features HubSpot Cannot Replace

No workaround closes these. Each one is a capability you would be giving up, so decide who in the business can live without it before you commit to a date.

Community Forums

HubSpot has no native community forum. Third-party solution required (Discourse, Vanilla Forums, etc.).

Freddy Thank You Detector

A customer replying with nothing but thanks will reopen a ticket in HubSpot the same as any other reply, since there is no native detection to catch and suppress it the way Freddy does: a custom workflow with an AI step or keyword matching has to be built to reproduce that filter.

Field Service Management

Scheduling, dispatch and task assignment for field agents have no native home in HubSpot: a third-party integration, ServiceMax or Salesforce Field Service among them, has to carry that function alongside HubSpot instead.

One Thing a Migration Does Not Rebuild

This is Freshdesk's own code or product, and a HubSpot migration will not carry it across: it carries no hours in the estimate. It still needs a decision before cutover, because you are the one giving something up.

Custom Apps

Custom apps require complete rewrite for HubSpot's platform. Each app needs individual assessment.

The 33 Items That Get Rebuilt by Hand

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

Data And Objects

Ticket Pipelines and Statuses

The set of statuses a ticket moves through in Freshdesk, and the flow between them, needs its own HubSpot pipeline built before anything else lands.

HubSpot: Ticket pipelines and stages

Get this configured before the import runs. Skip it and every migrated ticket lands in the default stage regardless of where it actually stood, a much larger cleanup than setting the pipeline up correctly the first time.

Custom Ticket Fields

Any field added to the Freshdesk ticket form over the years needs a matching custom property built in HubSpot before it has anywhere to land.

HubSpot: Custom ticket properties

Define every one of them ahead of time rather than letting the import create them on the fly: a property that gets created during import lands as plain text, stripped of the type and the picklist options it actually carried in Freshdesk.

Tags

The tags used across Freshdesk to group tickets, and in some cases to drive an automation directly, have no matching object waiting for them in HubSpot.

HubSpot: A multi-select ticket property

HubSpot tickets carry no native tag field at all: a multi-select property is the closest substitute, and anywhere a tag was actually driving an automation, it has to become a real field a workflow can read rather than a label left on the record for reference only.

Ticket Watchers and CCs

Anyone who was following a ticket without owning it, a watcher or a CC in Freshdesk's terms, has no exact seat waiting on the other side.

HubSpot: No direct equivalent

The closest replacement is a note or a custom property logging who was watching. If the team genuinely relies on that visibility day to day, agree what replaces the habit before go-live, not after the first ticket someone should have seen quietly passes them by.

Time Tracking Data

Whatever time your agents logged against a ticket does not travel across with the ticket it was logged on.

HubSpot: Custom properties, or an external time tool

Where that logged time actually drives billing, a custom property is a stopgap and not a real answer: raise this early in the scoping conversation, because it usually needs a dedicated time-tracking tool rather than a field bolted onto the ticket record.

Canned Responses

The saved reply text agents insert into a ticket without retyping it has to be rebuilt as HubSpot snippets, one by one.

HubSpot: Snippets

It is a manual rebuild, so triage the list first: most Freshdesk accounts have accumulated far more canned responses over the years than agents are actually still using, and rebuilding the unused ones is effort spent for nothing.

Contact Merge History

The history of which Freshdesk contact was merged into which other one does not carry across at all.

HubSpot: No equivalent

HubSpot deduplicates purely on email address, so two contacts that Freshdesk merged years ago under different addresses, a common pattern when a name is recorded once in English and once transliterated from Arabic, can quietly split back apart on import. Check the merge list before the import runs, since reconstructing it afterwards means working backwards from the fact that something already looks wrong.

Automation

Dispatch Rules

Whatever assigns and categorises a ticket the instant it lands has no path across the connector and needs writing again from nothing.

HubSpot: Workflows and routing rules

Expect to redo this rule by rule rather than as a single block, and to restructure any chain of dependent rules while doing it: Freshdesk evaluates dispatch rules in a defined order, HubSpot's workflow engine does not, so a rule that assumed an earlier one had already run needs a different design, not just a copy.

Event and Time Triggered Automations

Anything that fires off a ticket event, or after a ticket has simply gone quiet for a stretch of time, needs the same ground-up rebuild.

HubSpot: Ticket-based workflows with delays

Test the delay behaviour against real tickets before trusting it with anything that auto-closes a case: a working week that runs Sunday to Thursday in one market and differently in another is exactly where a timing assumption quietly breaks.

Scenario Automations

The one-click bundle of actions an agent applies to a ticket, several field changes and a reply fired together, has no equivalent waiting to receive it either.

HubSpot: Workflows, triggered manually or by a property

HubSpot has no single-click bundle to receive it: each one becomes a workflow the agent triggers manually or by setting a property, a genuine rebuild rather than a renamed setting.

SLA Policies

Response and resolution targets set per ticket type or per account do not transfer with anything else: SLA policies need configuring again from nothing, matching whatever commitment is actually written into the contract rather than reproduced from memory.

HubSpot: SLA settings and ticket workflows

Configure business hours before a single SLA policy goes live, or every target measures against a flat 24-hour clock regardless of when the desk is actually open. That step carries more weight for a Gulf operation running one help desk across several markets on different working weeks, since a day that is a weekend in one country is a working day in another, and the SLA clock needs to know which is which.

Canned Responses and Macros

A macro, the saved reply text bundled with whatever field changes went alongside it, does not travel across as a single thing.

HubSpot: Snippets, templates and workflows

It has to be split apart to rebuild: the reply text becomes a snippet, and the field changes it used to trigger become a separate workflow, two HubSpot objects standing in for the one Freshdesk macro.

Freddy AI Models

Freddy's suggested replies and automated triage do not carry across in any form at all.

HubSpot: HubSpot's own AI tooling

There is genuinely no migration path: those models were trained on the ticket history sitting inside Freshdesk and stay there when the account closes. Treat whatever HubSpot's own AI tooling offers as a fresh configuration starting from nothing, and set the team's expectations accordingly, since suggestion quality on day one will read as noticeably worse than what Freddy had learned over years of the same queue.

Notification and Escalation Rules

Who gets told what, and the point at which a ticket escalates to someone else, both need reconstructing from scratch.

HubSpot: Notification settings and workflows

HubSpot splits this logic across two separate places, notification settings and workflows, which makes it easy to rebuild only half of it without noticing. Check both before calling the job finished.

Reporting

Freshdesk Analytics Reports

The whole Freshdesk Analytics suite built on top of the ticket data has no import path and needs rebuilding report by report.

HubSpot: Custom reports

Rebuild each report starting from the question it was actually answering rather than its layout, and expect some metrics to have no HubSpot counterpart at all. Say so early in the scoping conversation: a gap like that is a much smaller problem raised before sign-off than one discovered at handover.

Custom Dashboards

Whatever dashboard layouts were saved for recurring reporting need building again from nothing.

HubSpot: Dashboards

Build the dashboards only once the underlying reports already exist in HubSpot, not alongside them: a dashboard assembled before its reports are finished usually needs redoing.

SLA Compliance Reports

Reporting on which SLA targets were met and which were missed has to be rebuilt on the new side as well.

HubSpot: SLA reporting

This depends entirely on the SLA configuration described above, so sequence the reporting build after that work is finished, not in parallel with it.

Agent Performance and Productivity Metrics

Reporting on how much each agent handled, and how quickly they resolved it, needs setting up again in HubSpot's own tools.

HubSpot: Service analytics

Every agent has to map to a real HubSpot user at import time, or the activity they handled attributes to nobody once the metrics are rebuilt, a gap that is far cheaper to close before go-live than to reconstruct afterwards from ticket history alone.

CSAT Survey Reports

Historical CSAT results and the trend built from them do not carry across as a single continuous dataset.

HubSpot: Customer feedback surveys

New surveys go out from HubSpot from day one, while the historical scores sit parked in a custom property, so any trend report has to draw from two separate sources for the better part of the first year rather than one clean line.

Sales And Marketing Config

Support and Ticket Submission Forms

Every form customers actually use to raise a ticket has to be rebuilt as a HubSpot form.

HubSpot: Forms

Swap every embedded form on cutover day itself, not sometime after: leave even one page pointing at the old form and support requests keep arriving in a system nobody is watching.

Freshchat Widgets

The on-site chat widget customers actually see needs replacing, not just reconfiguring.

HubSpot: Live chat

Swapping the widget itself is the easy part; the real work is rebuilding the routing and availability rules behind it, the logic deciding who picks up a chat and when, especially where the desk operates across more than one working week.

Chatbots

Whatever automated chat flow was handling the common questions has to be rebuilt flow by flow inside HubSpot's own chatbot builder.

HubSpot: The chatbot builder

None of the bot's performance history carries across with it, so the new one starts from a blank slate: whatever tuning the old flow earned over months of real conversations has to be earned again rather than inherited.

Knowledge Base Articles

The help articles already published in Freshdesk have an actual import path, unlike most of what sits on this list.

HubSpot: Knowledge base

HubSpot's own knowledge base importer reads Freshdesk directly, which makes this one of the cheaper items to move on the whole list. It runs in batches, and any table formatting inside an article does not survive the import, so budget a formatting pass afterwards, worth doing with care for any article that exists in both an Arabic and an English version, since a broken table reads as unfinished in either language.

Help Centre and Customer Portal

The public-facing help site and the logged-in customer portal behind it are a separate build from the article import above, not a byproduct of it.

HubSpot: Knowledge base and customer portal

Permissions and branding are their own piece of work here, worth planning as such: an Arabic-language portal rendering correctly right to left is a design decision, not something the article import settles on its own.

Email Templates

Every standard reply template agents use gets rebuilt from nothing, not carried across with its formatting intact.

HubSpot: Email templates and snippets

It is manual, template by template, and the personalisation tokens inside each one have different names on the HubSpot side and will not carry across automatically, so every merge field needs re-checking rather than trusted on sight.

Satisfaction Surveys

The survey that goes out automatically once a ticket closes needs rebuilding as its own piece of configuration.

HubSpot: Customer feedback surveys

Rebuild the trigger alongside the survey itself, not just the questions: the send is driven by a workflow in HubSpot rather than a simple ticket setting, so getting the trigger wrong means the survey either never goes out or goes out at the wrong moment.

Users And Permissions

Agent Roles and Permissions

Whatever access level was attached to each agent in Freshdesk needs recreating deliberately in HubSpot's own permission model, not assumed to carry across.

HubSpot: Users and permission sets

Freshdesk's occasional-agent arrangement, a lighter seat for someone who only touches tickets now and then, has no exact counterpart on the other side. Decide person by person whether they genuinely need a full seat before the licence count goes into the budget, since guessing in either direction gets expensive.

Agent Groups

The way agents were grouped for routing purposes needs its own equivalent built in HubSpot.

HubSpot: Teams

Map the intent behind the old grouping rather than copying its structure exactly: a group that grew up around one person's habits rarely deserves to be reproduced as-is.

Business Hours and Schedules

The operating hours and holiday calendar that drove the SLA clocks in Freshdesk both need setting up again from scratch.

HubSpot: Business hours settings

Get this configured before a single SLA is built, not after: for a desk covering more than one Gulf market with a different working week in each, business hours are the setting that decides whether the SLA clock means anything at all.

Agent Signatures

Each agent's own email signature on a ticket reply needs setting up individually in HubSpot as well.

HubSpot: User email signatures

It is configured per user rather than once centrally, so it is a short task repeated across the whole team, worth scheduling as a checklist item rather than assumed to happen by itself during onboarding.

Integrations

Marketplace App Configurations

Whatever app was extending the Freshdesk agent view has to be reconnected or replaced on the HubSpot side; none of the configuration carries over on its own.

HubSpot: App Marketplace integrations, or Zapier and Make

Inventory what is genuinely in daily use before pricing out the replacements: an app installed years ago and quietly abandoned does not need a HubSpot equivalent found for it.

Freshworks Suite Integrations

Where Freshdesk sits alongside Freshsales, Freshchat or Freshcaller inside the same Freshworks account, those are not separate integrations to reconnect; they are neighbouring products the whole estate was built around.

HubSpot: The equivalent HubSpot hubs and tools

These read as integrations but function as neighbouring products built on the same platform. Where your organisation runs several of them together, this project is wider than the help desk alone, and it should be scoped as the whole Freshworks estate moving, not just one corner of it.

Channel Integrations

Every channel feeding the queue, email, phone and the social and messaging channels alongside them, needs reconnecting individually on the HubSpot side rather than assumed to follow the ticket data across on its own. Where WhatsApp is genuinely the channel customers reach for first in this market, give it the same reconnection care as email rather than treating it as an afterthought.

HubSpot: Connected channels

Check each one still actually creates a ticket after reconnection rather than merely sending a notification: that silent downgrade from ticket-creating to notify-only is a common regression, and the kind of gap that surfaces only once someone complains that nobody answered.

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

    count the ticket volume, catalogue every custom field, inventory the automations and tally the knowledge base articles before anything else is planned

  2. 2

    Build the Destination First

    HubSpot pipelines, custom properties and teams set up to mirror the Freshdesk structure, ready before a single ticket lands

  3. 3

    Pre-create Every Custom Property in HubSpot Ahead of the Move, Since a Property That Does Not Already Exist Has Its Incoming Value Dropped Silently Rather Than Flagged

    Pre-create every custom property in HubSpot ahead of the move, since a property that does not already exist has its incoming value dropped silently rather than flagged

  4. 4

    Rebuild by Hand What Will Not Sync

    automations as workflows, canned responses as snippets, SLAs configured directly in HubSpot

  5. 5

    Freeze the Freshdesk Configuration While the Move Is Under Way

    no schema changes, though day-to-day operations continue as normal

  6. 6

    Bulk Migration, T-7 to T-3

    move the historical data, the closed tickets and the old attachments in sequence, Contacts → Companies → Tickets → Notes → Files, since the order is what keeps the associations intact

  7. 7

    Download and Re-host Every Inline Image Before Freshdesk Is Decommissioned, Not After

    there is nothing left to recover once the subscription ends

  8. 8

    Import the Knowledge Base Articles Through HubSpot's Own KB Importer, Working in Batches Against Its 400-article Limit Per Run

    Import the knowledge base articles through HubSpot's own KB importer, working in batches against its 400-article limit per run

  9. 9

    Pre-cutover QA, T-2 to T-1

    validate a genuine sample, checking ordering and associations rather than record counts alone

  10. 10

    Delta Sync at T-0

    capture every ticket created or updated since the bulk migration began, so nothing raised during the move itself gets left behind

  11. 11

    Switch the Routes

    point email, chat and forms at HubSpot and deactivate the Freshdesk channels in the same move, so nothing keeps arriving on both sides at once

  12. 12

    Monitor From T+1 to T+3

    watch specifically for orphaned records and broken links, the two failure modes this kind of migration produces most often

Typically Plan on 2-6 weeks as the range, though the route you take moves that number more than volume alone does. CSV takes days; a SaaS migration tool covers 1K-50K tickets in 2-4 weeks; DIY scripts at 50K+ run 4-8 weeks; a professional service lands back at 2-4 weeks regardless of scale. 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 59 Freshdesk 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.

The Native Integration Is a Sync Tool, Not a Migration Tool, and Treating It as One Is the Single Most Common Mistake

it leaves more than 120 days of history behind, along with every conversation thread that ever happened on a ticket

Inline Images Break Permanently the Moment Freshdesk Is Decommissioned, So Re-hosting Them Has to Happen Before Cutover, Not as a Cleanup Task Afterwards

Inline images break permanently the moment Freshdesk is decommissioned, so re-hosting them has to happen before cutover, not as a cleanup task afterwards

The Freshdesk API Caps Pagination at 30,000 Tickets, So Any Dataset Larger Than That Needs the Updated_since Parameter Rather Than a Single Pull

The Freshdesk API caps pagination at 30,000 tickets, so any dataset larger than that needs the updated_since parameter rather than a single pull

HubSpot Drops a Custom Field Value Silently If the Matching Property Does Not Already Exist, So Pre-creating Every Property Is Not Optional Preparation, It Is What Stops Data Quietly Disappearing

HubSpot drops a custom field value silently if the matching property does not already exist, so pre-creating every property is not optional preparation, it is what stops data quietly disappearing

An Association Failure Does Not Always Surface as an Error

a note can appear to have been created successfully and still not show up on the ticket inside the HubSpot interface

HubSpot's Eventual Consistency Means a Read Run Immediately After a Write Can Fail Outright or Come Back Incomplete, Worth Building Into Any Validation Script Rather Than Treated as a Bug When It Happens

HubSpot's eventual consistency means a read run immediately after a write can fail outright or come back incomplete, worth building into any validation script rather than treated as a bug when it happens

Table Formatting Inside a Knowledge Base Article Is Not Supported by HubSpot's Import, So Every Table Needs Reformatting by Hand on the Other Side

Table formatting inside a knowledge base article is not supported by HubSpot's import, so every table needs reformatting by hand on the other side

Delta Sync Is What Makes a Zero-downtime Cutover Possible at All

without it, either ticket creation has to freeze for the gap or some data quietly gets lost in it

Questions

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