Migration Reference
Zendesk Support to HubSpot Migration
What actually transfers, what quietly does not, and what has to be rebuilt by hand.
We mapped Zendesk Support against HubSpot feature by feature: 75 features, 4 synced objects, 9 documented traps and 26 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 Zendesk Support to HubSpot reference as a PDF, plus the Excel calculator we scope these migrations with: every one of the 75 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.
Zendesk Support to HubSpot is a moderate to high migration, typically Expect 2-5 weeks, with volume, custom fields and automation complexity all moving that number. Smart Transfer itself finishes in days once it starts; what stretches the timeline is the custom-script route at 100K+ tickets, where execution takes 3-5 days but only after 1-2 weeks of prep work ahead of it. weeks. Of the 75 features we mapped, 26 carry across as they are and 43 land with something lost: the 26 items nothing moves for you is what will actually set your timeline, not the sync.
Migration Scorecard
- Migration complexity
- Moderate to high
- Typical timeline
- Expect 2-5 weeks, with volume, custom fields and automation complexity all moving that number. Smart Transfer itself finishes in days once it starts; what stretches the timeline is the custom-script route at 100K+ tickets, where execution takes 3-5 days but only after 1-2 weeks of prep work ahead of it. weeks
- Recommended method
- Smart Transfer is the right tool for a simple migration, under 5K tickets. Past that, once you are dealing with 50K+ tickets, inline images, side conversations or a requirement for strict data integrity, the honest answer is custom API scripts instead: Smart Transfer was not built for that end of the range.
- 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 75 capabilities
- Maps directly: 26 (35%)
- Maps partially: 43 (57%)
- No equivalent: 6 (8%)
4
Objects synced natively
9
Limitations and traps
26
Manual rebuild items
2
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.
Users
Two wayBecomes Contacts
Matching runs on email address, and the Zendesk-built timeline app only carries that address across at the moment a user record is first created, not the first or last name: those only arrive through the separate Data Sync app. A shared inbox or a changed address is enough to break the match on either app, and shared inboxes are common enough on a regional support desk that they are worth checking for before go-live, not after.
Organizations
Two wayBecomes Companies
The Zendesk Organizations object matches to HubSpot Companies on domain or on name, whichever the default mapping carries across, and that is the same rule that pulls a holding company and its free-zone entities together behind one shared domain. Decide which entities genuinely need to stay separate for entity-level reporting before the first sync runs, not after.
Tickets
Into HubSpotBecomes Tickets
Tickets travel one way, Zendesk to HubSpot, and archived ones do not travel at all. The Zendesk-built app puts ticket data on the contact's timeline; the separate Data Sync app is what actually creates HubSpot ticket records, and neither lets the information displayed be customised. Either way, the ticket lands on the contact's timeline alone: it will not surface on a company timeline or against a deal, which matters wherever the person raising a case and the account paying for it are two different records inside a distributor or group structure.
Ticket Events
Into HubSpotBecomes Timeline Activities
The Zendesk-built app, HubSpot for Zendesk Support, pushes these events onto the matching contact's timeline as a fixed activity, and the JSON payload behind that activity cannot be customised: whatever the app decided to show is what appears.
Nine Things the Sync Does Not Tell You
Each one is documented, and each one has ended a migration in a bad week.
Ticket Sync Is One-way Only
If anyone on the account side creates or updates a case from inside HubSpot rather than from the help desk itself, it will not reach Zendesk on its own: the native sync only runs one way, Zendesk to HubSpot, and there is no reverse path built in. Closing that gap needs Zapier, Make or custom middleware built for the purpose.
Workaround: Building the reverse flow with Zapier or Make is a small automation project in its own right, not a setting to switch on: budget it as real work wherever an account team is expected to raise a Zendesk ticket from inside HubSpot.
Archived Tickets Do Not Sync
Archive a ticket in Zendesk and it drops out of the Data Sync pipeline entirely: none of that history reaches HubSpot through the native integration. Where the WhatsApp thread and the ticket record together are the file an SLA dispute gets settled from, that closed and archived history is exactly what a later review goes looking for.
Workaround: Smart Transfer or a custom API script are the two routes back in for that archived history, and either one has to run as a deliberate, planned step rather than an afterthought once someone asks where an old case went.
Conversation Threads Not Preserved in Help Desk View
Expect the imported history to read as a stack of timeline notes rather than a conversation: HubSpot Help Desk does not reconstruct a threaded exchange from an imported ticket. A customer logging into a portal to review a past case will find nothing there, and neither will the agent picking up the next call from them.
Workaround: There is no fix here, only a decision to make and communicate: accept the timeline-note format for historical conversations, and say so to the team plainly before go-live rather than let someone find out mid-call with a customer.
Email-only Matching Creates Duplicate Risks
Every contact match runs on email address alone, so a shared inbox, a changed address or an already-merged contact can each throw up a duplicate or a failed match. Where a support queue is fed as much by WhatsApp as by email, a fair share of the Users in Zendesk may carry a shared or generic address to begin with, and that is where the duplicates concentrate.
Workaround: Set the deduplication rules before a single record moves, then run the post-sync audit and merge pass regardless: expect it to turn up more duplicates than the email-matching rule alone would predict.
Custom Field Mapping Requires Data Hub
The mapping HubSpot ships by default covers name, email, phone and domain and stops there; anything added since, a trade licence number, an emirate field, a contract reference, needs a Data Hub Starter subscription or higher before it maps at all.
Workaround: Data Hub Starter at $20 a month is the tier that unlocks custom field mapping, and it belongs in the original budget submission: a recurring line discovered after approval is what turns a short step into a long committee cycle in this market.
Inline Images Break After Zendesk Cancellation
Cancel the Zendesk subscription and every inline image sitting inside a ticket comment stops resolving, permanently, because those images live on Zendesk's own CDN rather than travelling with the ticket. Getting them across first means downloading each one, re-uploading it to HubSpot File Manager and rewriting the URL inside the HTML.
Workaround: A custom script has to handle the downloading, the re-upload to HubSpot and the URL rewrite, and it has to finish before the Zendesk subscription lapses: there is no repairing a broken image link once the source account is gone.
Side Conversations Have No HubSpot Equivalent
Side Conversations, the parallel threads Zendesk runs with a vendor, another department or an internal colleague over email, Slack or Teams alongside the main ticket, have nothing to land on in HubSpot: no matching object exists. Each thread has to be flattened by hand into a private note with its participants, timestamps and channel metadata written into the body. On a help desk shared across more than one Gulf market, that side channel is often where the coordination between country teams actually lives, so losing the thread structure loses the coordination record with it.
Workaround: Serialise every side conversation thread into a note carrying its participants, timestamps and channel before the ticket moves, and treat that as scoped production work with its own time estimate rather than a footnote to the ticket migration.
Zendesk 'Urgent' Priority Has No Native HubSpot Match
Zendesk runs four priority levels, Low, Normal, High and Urgent; HubSpot runs three, Low, Medium and High, with nothing above High. Any ticket carrying the Urgent flag, the kind an SLA-bound contract treats as its own category, loses that distinction the moment it lands unless something is built to hold it.
Workaround: Map Urgent down to High and carry the original distinction in a custom property or tag: an SLA clause written around an Urgent tier needs that flag to still exist somewhere reportable after the migration.
Incremental Export Timestamp Trap
Zendesk's Incremental Export checks a ticket's generated_timestamp against your start_time, not its updated_at value, and building a delta sync around updated_at instead will quietly lose records or duplicate them. The two fields look interchangeable until an export runs against a large or busy queue, which is exactly when the difference bites.
Workaround: Track every delta sync against generated_timestamp, never updated_at, and write that rule down somewhere whoever runs the next incremental export will actually see it.
Six Zendesk Support 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.
Ticket Sharing (Multi-Instance)
HubSpot has no native multi-instance ticket sharing. Would require custom integration or shared portal approach.
Business Rules Execution Order
HubSpot has nothing matching Zendesk's ordered trigger execution: workflows run independently of each other, in parallel, with no sequence guaranteed between them. Where several workflows touch the same ticket, that lack of ordering is where conflicts actually surface, so plan for it rather than assuming HubSpot will resolve the same way Zendesk's trigger categories did.
Sunshine Conversations
Nothing in HubSpot replaces a single messaging layer spanning 30-plus channels the way Sunshine Conversations does: individual channel connections exist on their own, but there is no unified platform tying them together, so a channel-by-channel rebuild is the real scope here, not a like-for-like swap.
Community Forums (Gather)
Community forums have no native home inside HubSpot Service Hub: a third-party product such as Discourse or Vanilla Forums has to carry that function, or HubSpot's own community platform, which is worth knowing is a separate product that does not integrate with Service Hub either.
Content Blocks
A knowledge base article written once and reused across others has no path in HubSpot's KB: the reusable content block system Zendesk calls Content Blocks simply is not there. Content Hub does have global content modules, but they do not extend to KB articles, so this gap survives even on the higher tier.
Live Agent Dashboard
Whoever runs your support floor loses real-time visibility into agent status, queue depth and live chats here: HubSpot's Inbox overview gives some sense of activity but nothing built for real-time operational monitoring the way a live agent dashboard is. A third-party tool or a custom-built dashboard has to fill that gap for a team lead who needs to see it as it happens.
The 26 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
A ticket pipeline is the sequence of statuses a case actually moves through in Zendesk, and HubSpot needs its own version built before anything relies on it.
HubSpot: Ticket pipelines and stages
Configure the pipeline before the import starts: any ticket landing before it exists arrives in the default stage regardless of where it actually sat in Zendesk, and re-sorting hundreds of tickets by hand afterwards is not a step worth inviting.
Custom Ticket Fields
A custom ticket field is whatever detail the ticket form was built to capture beyond the defaults, and every one of them needs recreating as its own property in HubSpot.
HubSpot: Custom ticket properties
Pre-create every field before the import runs: anything created on the fly during import lands as plain text, losing its type and its picklist, which is exactly the failure mode for a field carrying emirate, nationality or contract-type values typed by hand over years.
Tags
A tag is what groups related tickets in Zendesk and, in many setups, what a trigger is actually watching for, so its role needs understanding before it can be rebuilt.
HubSpot: A multi-select ticket property
HubSpot tickets carry no native tag object, so every Zendesk tag collapses into values inside one multi-select property. Where a tag was quietly driving a trigger, that value has to become a real field a workflow can read, or the automation it fed simply stops firing without anyone noticing until a ticket is missed.
Satisfaction Ratings
A satisfaction rating is the CSAT score and comment logged against a resolved ticket, and that history needs a landing place in HubSpot before it can be reported on again.
HubSpot: A custom property, with feedback surveys going forward
HubSpot has no native CSAT field on a ticket, so the historical scores land in a custom property while every rating collected going forward comes through the survey tool instead. That leaves one metric with two homes, and any dashboard reporting satisfaction has to be built to read both rather than pick one and quietly drop the other.
Side Conversations
Side conversations are the parallel threads a ticket carries with a vendor or another party entirely outside the requester relationship, held alongside the main record, and none of that structure exists on the HubSpot side to receive them.
HubSpot: Private notes on the ticket
They flatten into notes, with participants and timestamps written directly into the body, because HubSpot has no parallel-thread concept for them to land in instead. Do this by hand for the threads that matter rather than as a blanket export: a tender or vendor side conversation is worth the manual care, and a routine internal check-in usually is not.
Groups
A group in Zendesk determines which agents even see a given ticket, and HubSpot organises that responsibility differently.
HubSpot: Teams
HubSpot keeps team membership and ticket ownership as two separate things, so mapping a Zendesk group onto a HubSpot team does not, on its own, assign a single ticket to anyone. That gap catches most teams by surprise on day one, most visibly wherever one shared desk covers more than one country's queue and the team mapping alone was assumed to sort tickets by market.
Automation
Triggers
A trigger fires the instant a ticket is created or changed, and every one of those rules needs recreating inside HubSpot: none carry across automatically.
HubSpot: Workflows and routing rules
Rebuild them rule by rule rather than as a batch import, because Zendesk triggers fire in a defined order and HubSpot workflows carry no such guarantee: a chain of triggers depending on that order has to be restructured, not copied, or the sequence a support process relies on quietly breaks.
Automations
An automation is Zendesk's time-based rule, the kind that fires hours or days after a condition has held true, and it has no direct import path into HubSpot either.
HubSpot: Ticket-based workflows with delays
The two platforms measure time differently underneath, so test the delay behaviour against real tickets, including ones opened just before a public holiday or a Ramadan hours change, before an auto-close rule is trusted to run unattended.
Macros
A macro is the single click an agent uses to set several fields and insert a reply at once, and it has no one-to-one HubSpot equivalent to migrate into.
HubSpot: Snippets, templates, workflows and help desk macros
One macro splits into several HubSpot objects: the reply text becomes a snippet or template, the field changes become a workflow. HubSpot also caps the number of help desk macros well below what a mature account accumulates over years, so triage down to the ones agents actually use rather than porting the full library, Arabic-language reply macros included, since those are usually the ones nobody remembers to check for first.
SLA Policies
An SLA policy sets response and resolution targets by ticket type or by who raised it, and those targets carry no automatic path into HubSpot either.
HubSpot: SLA settings and ticket workflows
Rebuild the targets before the breach handling, and configure business hours before either: skip that step and every SLA measures against a flat 24-hour clock, which is the wrong clock the moment the desk runs a Sunday-to-Thursday week or shortens hours for Ramadan. A four-hour response commitment measured against the actual working week is a different promise than one measured against a clock that never stops.
Views
A view is the saved queue an agent actually works from all day, and it needs rebuilding in HubSpot rather than assumed to carry over.
HubSpot: Saved ticket views
This one is cheap to rebuild and worth finishing before go-live regardless: it is the screen an agent stares at for the whole shift, and a queue that does not match how the team actually triages by market, language or entity costs more in daily friction than the rebuild itself.
Round-robin and Skill-based Routing
Routing rules decide which agent a ticket lands with, by availability or by skill, and neither carries across automatically.
HubSpot: Help desk routing rules
Users and teams have to exist in HubSpot before routing rules can point at them, and configuration alone will not show whether a rule is fair: test it against real tickets, since a rule that looks balanced on paper often stacks the Arabic-speaking queue onto whichever agent happens to be bilingual.
Reporting
Zendesk Explore Reports
Explore is the reporting suite built directly over Zendesk's own ticket data, and none of its reports move across as configured.
HubSpot: Custom reports
Rebuild each report from the question it was actually answering rather than its exact layout, because Explore surfaces metrics HubSpot simply does not record. Say plainly, and early, which reports cannot be reproduced at all: a board expecting a like-for-like handover deserves to hear that before go-live rather than discover it in the first review afterwards.
Custom Dashboards
A custom dashboard is a saved layout built for recurring reporting, and it needs assembling again once the underlying reports already exist in HubSpot.
HubSpot: Dashboards
Build the dashboard after the reports, not before: doing it the other way around tends to lock in a layout the available HubSpot data cannot actually fill, which is a frustrating thing to discover the first time someone presents it to leadership.
SLA Compliance Reports
SLA compliance reporting is the record of which targets were met and which were missed, and it depends entirely on the SLA rebuild happening correctly first.
HubSpot: SLA reporting
This depends entirely on the SLA policies and business hours already being configured correctly, so sequence it strictly after that work rather than alongside it: an SLA report built against unconfigured business hours will show breaches that never actually happened.
Agent Performance Metrics
Agent performance metrics track volume, resolution and response time per agent, and the numbers only mean anything once every agent is correctly represented in HubSpot.
HubSpot: Service analytics
Every agent has to map to a real HubSpot user at import time, or the metrics attribute to nobody at all: confirm the mapping for country leads and shared-desk agents specifically, since those are the accounts most likely to be missing a clean one-to-one match.
Sales And Marketing Config
Support Request Forms
A support request form is however a customer actually opens a case, and it needs rebuilding in HubSpot before the old one can be retired.
HubSpot: Forms
Rebuild it, and swap every website embed at the moment of cutover: leave one page pointing at the old form and requests keep arriving in a system nobody is watching any more. Build the Arabic version as its own form laid out right to left rather than an English form with translated field labels dropped in.
Chat Flows and Widgets
Chat flows and widgets cover the on-site chat experience itself and the routing logic sitting behind it, and only one of those two is a quick swap.
HubSpot: Live chat and the chatbot builder
The widget itself swaps easily; the conversation logic behind it is the real work, and it is worth rebuilding the routing before spending time on the styling. Build a path that can end in a WhatsApp handover, since that is often where a Gulf customer is more comfortable continuing than in an embedded web chat.
Help Centre and Customer Portal
The help centre is the public knowledge base; the customer portal is the separate, logged-in place where a customer tracks their own cases, and the two need treating as different projects.
HubSpot: Knowledge base and customer portal
Treat them as two products rather than one. Article content can be carried across reasonably directly, Arabic and English versions both, but the portal's permissions and branding are a separate build entirely, and that is where a bilingual, right-to-left reading experience actually has to be designed rather than assumed.
Ticket Response Templates
A ticket response template is whatever standard reply agents send from, and none of it survives the move without being rebuilt by hand.
HubSpot: Email templates and snippets
Rebuild every one by hand: the personalisation tokens carry different names between the two platforms and will not simply carry across. Keep the Arabic and English versions as separate templates rather than one with a language switch, since the greeting, the honorific and the sign-off differ enough between the two that a shared template usually reads wrong in one of them.
Users And Permissions
User Roles and Permissions
User roles and permissions cover the agent, admin and light-agent access levels Zendesk offers, and HubSpot's own model is not a mirror of it.
HubSpot: Users and permission sets
A Zendesk light agent has no exact HubSpot counterpart, so decide person by person whether each one genuinely needs a full seat before licences are counted and quoted: getting this wrong is either an overspend on seats nobody uses fully or a gap discovered when someone loses access mid-shift.
Agent Groups and Team Assignments
Agent groups and team assignments decide how agents are grouped for both routing and visibility, and that structure needs deliberate rebuilding rather than a literal copy.
HubSpot: Teams
Map the intent behind the old structure rather than copying it field for field: a literal copy usually over-restricts, most visibly in a multi-entity group where a Dubai hub agent ends up unable to see a Saudi customer's history that policy actually allows them to see.
Business Hours and Schedules
Business hours and schedules are the operating hours and holiday calendar every SLA clock measures against, so nothing about SLA reporting is trustworthy until this is set correctly.
HubSpot: Business hours settings
This is a small configuration job with an outsized blast radius: every SLA measures against it, so set it before the SLA policies themselves rather than after. Build it around the working week the desk actually keeps, Sunday to Thursday across much of the Gulf, with Ramadan hours and each market's own public holidays layered in, because a schedule assuming a Monday-to-Friday week will misjudge every SLA clock running in the region.
Integrations
Marketplace App Configurations
Marketplace apps are whatever extends the Zendesk agent workspace beyond the base product, and each one needs its own decision rather than a blanket carry-over.
HubSpot: App Marketplace integrations, or Zapier and Make
Inventory what is genuinely in use before deciding what to rebuild: most mature Zendesk accounts are carrying apps nobody on the current team has opened in a year, and there is no reason to pay a rebuild cost for one of those.
Channel Integrations
Channel integrations are whatever feeds the queue or notifies it, Slack, Teams or a social channel among them, and each connection needs reconnecting individually rather than migrating as a set.
HubSpot: Connected channels and integrations
Reconnect each channel on its own, and check afterwards that it still creates a ticket rather than merely sending a notification: that silent downgrade is a common regression, and it is exactly the kind of gap that shows up as a WhatsApp or social message nobody in the queue ever saw.
Phone and Voice Integrations
The phone and voice integration is whichever telephony provider sits behind voice support, and it needs confirming as HubSpot-compatible before anything else in the plan depends on it.
HubSpot: HubSpot calling providers
Confirm the provider has a working HubSpot integration before the contract is signed, not after: call recording and logging behaviour can differ even where the underlying provider stays the same, and that difference matters wherever recordings are kept as part of an SLA or compliance record.
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
Audit Zendesk's Object Counts, Custom Fields and Automation Inventory, Giving Bilingual Ticket Fields and Arabic-language Macros a Pass of Their Own So Nothing Built for the Region Gets Missed by a Count Run Only in English
Audit Zendesk's object counts, custom fields and automation inventory, giving bilingual ticket fields and Arabic-language macros a pass of their own so nothing built for the region gets missed by a count run only in English
- 2
Build the HubSpot Pipelines, Custom Properties and Teams That Mirror Zendesk's Structure, Deciding at This Point Rather Than Later Whether a Shared Regional Desk Needs One Team Per Market or One Team Covering Several
Build the HubSpot pipelines, custom properties and teams that mirror Zendesk's structure, deciding at this point rather than later whether a shared regional desk needs one team per market or one team covering several
- 3
Add Source ID Custom Fields for Delta Sync Tracking and Reconciliation, the Record Needed If a Dispute Later Asks Exactly When a Given Ticket Moved
Add source ID custom fields for delta sync tracking and reconciliation, the record needed if a dispute later asks exactly when a given ticket moved
- 4
Manually Rebuild Macros as Snippets and Templates, Triggers as Workflows and SLAs Inside HubSpot, Configuring Business Hours Against the Actual Regional Working Week Before a Single SLA Target Is Set
Manually rebuild macros as snippets and templates, triggers as workflows and SLAs inside HubSpot, configuring business hours against the actual regional working week before a single SLA target is set
- 5
Create HubSpot Users Matching Zendesk Agents on Email Address, and Confirm the Match With Each Country Lead Rather Than the User List Alone, Since the Same Person Can Carry Two or Three Email Addresses Across a Multi-entity Group
Create HubSpot users matching Zendesk agents on email address, and confirm the match with each country lead rather than the user list alone, since the same person can carry two or three email addresses across a multi-entity group
- 6
Install Both Integration Apps, the Zendesk-built Timeline App and the HubSpot Data Sync App, Since Each One Carries a Different Half of the Data Across
Install both integration apps, the Zendesk-built timeline app and the HubSpot Data Sync app, since each one carries a different half of the data across
- 7
Run the Bulk Migration in Order, Contacts, Then Companies, Then Tickets With Their Associations, Then Notes, Then Files, Since Running It Out of Order Is Where Associations Quietly Fail to Attach
Run the bulk migration in order, Contacts, then Companies, then Tickets with their associations, then notes, then files, since running it out of order is where associations quietly fail to attach
- 8
Run a Delta Sync Afterwards to Capture Whatever Was Created or Updated in Zendesk During the Bulk Migration Window Itself
Run a delta sync afterwards to capture whatever was created or updated in Zendesk during the bulk migration window itself
- 9
Export and Import the Knowledge Base Articles, Which HubSpot Supports as a Direct Zendesk Import, Checking That Arabic-language Articles Carry Their Right-to-left Formatting Across Rather Than Arriving as Plain, Unstyled Text
Export and import the Knowledge Base articles, which HubSpot supports as a direct Zendesk import, checking that Arabic-language articles carry their right-to-left formatting across rather than arriving as plain, unstyled text
- 10
Switch Agent Routing Over to HubSpot and Disable the Zendesk Notifications and Triggers, So the Same Ticket Cannot Fire Two Systems at Once
Switch agent routing over to HubSpot and disable the Zendesk notifications and triggers, so the same ticket cannot fire two systems at once
- 11
Keep Zendesk Open in Read-only Mode for 30 Days as a Reference, Long Enough to Answer the First Round of Questions a Regional Review or an SLA Dispute Is Likely to Raise
Keep Zendesk open in read-only mode for 30 days as a reference, long enough to answer the first round of questions a regional review or an SLA dispute is likely to raise
- 12
Validate the Result
check associations, inline images, timestamps and every rebuilt workflow, sampling Arabic-script tickets and multi-part names deliberately rather than trusting a sample built only from English-language records
Typically Expect 2-5 weeks, with volume, custom fields and automation complexity all moving that number. Smart Transfer itself finishes in days once it starts; what stretches the timeline is the custom-script route at 100K+ tickets, where execution takes 3-5 days but only after 1-2 weeks of prep work ahead of it. 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.
Estimated Effort
Answer a couple of questions and an hours range appears here.
Built from our research on 75 Zendesk Support 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.
Inline Images Break the Moment the Zendesk Subscription Is Cancelled
every one has to be re-hosted before cutover, not after, since there is no fixing a dead link once the source account is gone
The Zendesk Ticket Comments API Defaults Include_inline_images to False, So It Has to Be Explicitly Enabled, or an Export That Looks Complete Will Quietly Be Missing Every Embedded Image
The Zendesk Ticket Comments API defaults include_inline_images to false, so it has to be explicitly enabled, or an export that looks complete will quietly be missing every embedded image
Associations Only Attach Once the Contacts and Companies They Reference Already Exist
create them out of order and the association fails silently, with nothing in the log to flag it later
Omit the Activity Date on an Imported Record and Its Timestamp Defaults to the Moment of Import Rather Than the Moment It Actually Happened, Which Quietly Destroys the Chronological Accuracy an SLA or Dispute Review Depends on
Omit the Activity date on an imported record and its timestamp defaults to the moment of import rather than the moment it actually happened, which quietly destroys the chronological accuracy an SLA or dispute review depends on
The HubSpot CRM Search API Caps Out at 5 Requests Per Second, and a Search-then-create Migration Loop Bottlenecks There Long Before It Ever Approaches the 190 Rps Burst Limit Everyone Plans Around Instead
The HubSpot CRM Search API caps out at 5 requests per second, and a search-then-create migration loop bottlenecks there long before it ever approaches the 190 rps burst limit everyone plans around instead
A Batch Import Can Fail Partially Rather Than All at Once, So Track the objectWriteTraceId on Every Batch Instead of Assuming an All-or-nothing Result
assuming otherwise is how a subset of tickets quietly never arrives
Merging Two Records Inside HubSpot After Migration Can Break the Sync Link Behind Either One and Create a Fresh Duplicate in Its Place, So Treat a Post-migration Merge as Something to Check Rather Than a Routine Cleanup Step
Merging two records inside HubSpot after migration can break the sync link behind either one and create a fresh duplicate in its place, so treat a post-migration merge as something to check rather than a routine cleanup step
Zendesk's Urgent Priority Still Has No HubSpot Equivalent by This Stage of the Plan Either, So Confirm the Custom Mapping Built Earlier Is Actually Live Before the First Urgent Ticket Puts It to a Real Test
Zendesk's Urgent priority still has no HubSpot equivalent by this stage of the plan either, so confirm the custom mapping built earlier is actually live before the first Urgent ticket puts it to a real test
Questions
Zendesk Support To HubSpot, Answered
Yes. Data sync, two way, covering 4 objects. Smart transfer is supported. What it will not do is rebuild your configuration: that is the 26 items below.
Typically Expect 2-5 weeks, with volume, custom fields and automation complexity all moving that number. Smart Transfer itself finishes in days once it starts; what stretches the timeline is the custom-script route at 100K+ tickets, where execution takes 3-5 days but only after 1-2 weeks of prep work ahead of it. weeks. Complexity is driven by automation and reporting depth, not by record count: the connector moves records, so a large database on its own will not extend the timeline.
Of 75 features we mapped, 26 (35%) carry across directly and 43 (57%) map partially, meaning something is lost or reshaped along the way. 6 have no HubSpot equivalent at any tier, worth raising before sign-off rather than after.
26 items have to be rebuilt by hand, and 9 documented limitations are not surfaced by the connector at all. Both lists are on this page, in full, for whoever is scoping the work.
Free for basic sync. Data Hub Starter+ for custom field mappings.
6: Ticket Sharing (Multi-Instance), Business Rules Execution Order, Sunshine Conversations, Community Forums (Gather), Content Blocks, Live Agent Dashboard. If your team depends on one of these, settle it before you sign rather than discovering it at cutover, when the alternative is a custom build.
Only in one direction. The sync is not bidirectional here, so running both systems means choosing a system of record up front and accepting drift in the other.
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.