Migration Reference
Marketo (Adobe Marketo Engage) to HubSpot Migration
What actually transfers, what quietly does not, and what has to be rebuilt by hand.
We mapped Marketo (Adobe Marketo Engage) against HubSpot feature by feature: 44 features, 2 synced objects, 13 documented traps and 58 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 Marketo (Adobe Marketo Engage) to HubSpot reference as a PDF, plus the Excel calculator we scope these migrations with: every one of the 44 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.
Marketo (Adobe Marketo Engage) to HubSpot is a high migration, typically 6-12 weeks. Of the 44 features we mapped, 27 carry across as they are and 17 land with something lost: the 58 items nothing moves for you is what will actually set your timeline, not the sync.
Migration Scorecard
- Migration complexity
- High
- Typical timeline
- 6-12 weeks
- Recommended method
- Run it as a phased migration: CSV export and import together with HubSpot Smart Transfer for the data itself, and a complete manual rebuild for every marketing asset, automation and integration, since none of that counts as data. Do not lean on the Marketo Data Sync app for any of it: it only carries text fields. Full feature parity is what needs Marketing Hub Enterprise and Data Hub Professional, so check that pairing against the budget before committing to it as the target.
- Native sync
- Data sync, two way
- Smart transfer
- Supported
- HubSpot subscription
- Data Sync itself is free for default text fields, and Data Hub Starter at $45/mo is what custom field mappings need beyond that. None of it changes the earlier point though: the Marketo Data Sync app carries severe limitations and is not something to build a migration plan around, whatever tier sits behind it.
Feature parity across 44 capabilities
- Maps directly: 27 (61%)
- Maps partially: 17 (39%)
- No equivalent: 0 (0%)
2
Objects synced natively
13
Limitations and traps
58
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 Two Objects That Sync Natively
What the connector moves for you, and which way each one flows.
Leads/People
Two wayBecomes Contacts
Treat this as the limitation that decides everything else: the Data Sync app reaches only text field properties on the Contact record, no other object type, and only a text field can even be chosen as the unique identifier for matching records. That scope was designed for coexistence, not for moving a database, so dropdown selects, checkboxes, dates and numbers stay out of reach regardless of how the app is configured.
Email templates
Into HubSpotBecomes Email templates
Email templates are the exception worth knowing: they transfer through Smart Transfer, so you are not rebuilding every one of them by hand, a mapping confirmed in HubSpot's own data sync object mappings (knowledge.hubspot.com/integrations/supported-apps-for-hubspot-smart-transfer, read 2026-07-31).
Thirteen Things the Sync Does Not Tell You
Each one is documented, and each one has ended a migration in a bad week.
Data Sync App Only Supports Text Field Properties
Before you rely on the native Data Sync app for anything beyond coexistence, know what it actually carries: text field properties on the Contact object, and nothing else. Every dropdown select, checkbox, date, number and boolean field on your contacts is invisible to it, which rules the app out as a migration tool on its own.
Workaround: Do not build your migration plan around the Data Sync app: treat CSV export/import or HubSpot Smart Transfer as the real route, and keep Data Sync in reserve for a lightweight, ongoing coexistence setup once the move itself is done.
Only Contact Object Supported
One object moves through the native integration: the Contact record, what Marketo calls a Lead or Person. Companies, Opportunities, Custom Objects, Programs and everything else in your instance sit outside it entirely.
Workaround: Pull everything that is not a contact out through Marketo's bulk export API or Smart List exports, then bring it into HubSpot by CSV import or a custom API integration built for the purpose.
No HubSpot Equivalent for Marketo Program Status
Look for a direct counterpart to Marketo's Change Program Status action inside HubSpot and you will not find one. The Campaigns tool sits closest to it, but the status-based workflow logic that drives your programs cannot be carried across as built.
Workaround: Redesign the tracking rather than translate it: campaign membership, custom contact properties and workflow-based status updates together stand in for what program status used to do on its own.
Change Data Value Actions Not Replicable
A Marketo Change Data Value action does two things in one step: it checks whether a property holds a value and updates it inside the same action. HubSpot has no single action that behaves that way; every check and every update needs its own if/then branch in the workflow.
Workaround: Take each Change Data Value action apart into its own HubSpot workflow if/then branch, with a separate property update action sitting behind each one.
Lead Scoring Architecture Fundamentally Different
Do not expect your scoring architecture to travel intact. HubSpot has no product-level scoring, cannot set a score to a specific value or reset it to zero the way Marketo does, and handles decay, thresholds and multi-dimensional scoring (behavioural plus demographic) on different mechanics altogether.
Workaround: Rebuild the model from scratch on HubSpot contact scoring and company scoring properties, using more than one score property where you need separate dimensions. A migration is as good a moment as you will get to simplify a scoring model that has accumulated years of exceptions.
Revenue Cycle Modeler Has No HubSpot Equivalent
Revenue Cycle Modeler, the visual state machine you use to manage lead lifecycle stages, has no HubSpot equivalent. What you get instead is linear and considerably simpler.
Workaround: Map each RCM stage onto a HubSpot lifecycle stage or a custom lifecycle property, then hand stage transitions to HubSpot workflows. Where the lifecycle genuinely branches down multiple paths, a custom object is worth considering rather than forcing it into a single line.
Lead Partitions and Workspaces Not Supported
Workspaces and Lead Partitions, the structure a global enterprise uses to keep marketing operations distinct across regions or business units, have no direct equivalent on the HubSpot side. For a group running several operating brands out of one head office, that structure is exactly what held the regions apart.
Workaround: Business units, teams and partitioning properties together approximate the separation, though business units sit on Marketing Hub Enterprise and come as an add-on rather than a default. Confirm that add-on is in the budget before promising a workspace-equivalent split to each operating brand.
Tokens and Snippets Require Manual Recreation
Neither Marketo tokens (My Tokens, set at the program or folder level for dynamic values) nor Snippets, the reusable content blocks behind your emails and landing pages, transfer. HubSpot personalises and reuses content through a different mechanism entirely.
Workaround: Rebuild tokens as HubSpot personalization tokens, custom contact or company properties, and programmable email modules, and rebuild Snippets as global content modules, saved sections or global partials in your templates.
Dynamic Content Segmentation Approach Differs
Marketo starts from the segment: content variants are tied to a defined segmentation, and the content follows. HubSpot works the other way, keying smart content off list membership, lifecycle stage, device type, country or referral source instead.
Workaround: Recreate the dynamic content on HubSpot smart content rules, and expect to restructure the underlying segmentation to fit the criteria HubSpot actually offers rather than the ones your Marketo segments were built around. Where your instance carries English and Arabic variants of the same campaign, decide before the rebuild whether language becomes its own smart content criterion or stays a separate asset per market.
Email Engagement History Does Not Transfer Automatically
Sends, opens, clicks and bounces do not follow your contacts into HubSpot on their own. Anything you want kept from that history has to be exported and stored by hand before the account closes.
Workaround: Export the Marketo engagement reports before migration and land the metrics that matter, last email open date, total opens, total clicks, as custom contact properties in HubSpot. Set the expectation early that the detailed per-email history behind those numbers will not come with them.
Custom Objects Require Enterprise Tier
Every Marketo Custom Object has to be rebuilt as a HubSpot Custom Object, and that door only opens on at least one HubSpot Enterprise tier licence, usually with a developer needed to create and configure the schema. The mapping itself is not a small exercise.
Workaround: Confirm the Enterprise tier licence is in place before the schema work starts, and plan the mapping early rather than mid-project. Check first whether any custom object can be simplified into a standard HubSpot object or a set of contact and company properties: not every one earns its own object on the other side.
Sandbox Limitations for Testing
A HubSpot Sandbox is a one-way street: nothing built or changed inside it syncs back to production. Every configuration tested there has to be reproduced by hand once you are satisfied with it.
Workaround: Document every sandbox configuration and change in enough detail to rebuild it from the notes alone, then apply those specifications directly to production. In some cases, building straight in production with a careful phased activation is the more reliable route than a sandbox rebuild at all.
Salesforce Sync Handoff Is Complex
If Salesforce is currently synced to Marketo, the handoff to HubSpot is not a simple swap. Marketo's SFDC sync runs leads, contacts, accounts, opportunities, campaigns and custom objects each on their own directional rules, and every one of field mappings, lead routing logic, campaign sync and the bidirectional data flow itself needs reconfiguring before HubSpot takes over.
Workaround: Hold off disconnecting Marketo's Salesforce sync until the HubSpot-Salesforce integration is fully configured and tested on its own, with lifecycle definitions and ownership rules aligned before sync is switched on. Run a parallel testing period if the timeline allows it, and confirm every SFDC campaign member status has a mapped HubSpot equivalent before you cut over.
Two Things a Migration Does Not Rebuild
These are Marketo (Adobe Marketo Engage)'s own code and products, and a HubSpot migration will not carry them across: they carry no hours in the estimate. They still need a decision before cutover, because you are the one giving something up.
Email Scripting (Velocity)
Every Velocity script behind a dynamic email has to be rewritten in HubL: the syntax, the functions and the way each language reaches into data are different enough that nothing ports directly. Programmable email of that kind can also require a HubSpot Enterprise subscription, so check the tier before pricing the rewrite.
CRM Sync (Salesforce / Microsoft Dynamics)
Reconfiguring the CRM sync is usually the single riskiest element in a Marketo migration, not a late-stage checklist item: field mappings, sync rules and how conflicts get resolved between the two systems all need planning early and carefully, before the rest of the migration schedule is built around it.
The 58 Items That Get Rebuilt by Hand
This is the list that separates a quote that holds from one that does not.
Data And Objects
Smart Lists and Dynamic Segments
Smart Lists are saved filter definitions that Marketo evaluates continuously, and that continuous evaluation is exactly what you need to preserve on the HubSpot side.
HubSpot: Active lists
Rebuild the filter criteria itself rather than exporting the membership: an export gives you a static snapshot that stops updating the moment it is taken, and nothing tells you when it has gone stale.
Static Lists
Static Lists, the fixed membership snapshots sitting alongside your Smart Lists, are the more straightforward half of the list migration.
HubSpot: Static lists
A CSV export and import is all this needs: membership is the entire content of a static list, so this is one of the rare pieces that genuinely does transfer rather than requiring a rebuild.
Custom Objects
Custom objects linked to the lead record carry across as a structural rebuild rather than a data move.
HubSpot: CRM custom objects
The tier gate applies here too: HubSpot custom objects sit behind a higher plan. Design the schema fresh rather than copying it directly, then load the data by API or CSV once the structure is settled.
Lead Database With Non-text Field Types
Every dropdown, checkbox, date, number and boolean field on your lead database falls outside what native sync will carry, and needs handling as its own migration step.
HubSpot: Contact properties with matching field types
Create each property in HubSpot with its type and option set already defined before a single record is imported. Data Sync will not touch any of these fields; CSV import will, but only where the option values match exactly, which is worth checking field by field rather than assuming.
Program Membership and Status Data
Per-program membership with its own status progression, the way Marketo tracks where a lead sits inside a given program, has no single equivalent waiting in HubSpot.
HubSpot: Campaign membership and custom properties
There is no direct analogue for Marketo program status. Campaign membership covers the association part on its own, and the status progression underneath it either becomes a set of custom properties or is dropped, a decision worth making deliberately rather than by default.
Suppression and Unsubscribe Lists
Suppression and unsubscribe lists, the opt-out and marketing-suppressed records sitting behind your sending, need to land correctly before anything else goes live.
HubSpot: Opted-out contacts and non-marketing status
Import these before a single marketing email is enabled in HubSpot, and verify the import against a sample before you flip sending on. A suppression list that lands a day late is the kind of mistake a compliance review remembers.
Hard Bounce Lists
Hard bounce lists carry the addresses Marketo has already marked undeliverable, and they need to travel with the rest of the suppression data rather than be treated as an afterthought.
HubSpot: Bounced and non-deliverable contact status
Import them marked as bounced, not as ordinary contacts, so HubSpot does not re-attempt delivery and put your sending reputation at risk on the very first day.
Activity Log and Engagement History
The per-activity history behind each lead, everything Marketo has logged against that record, is the piece most likely to be left behind once the budget runs out.
HubSpot: Contact timeline activities
Only summary metrics can be carried across as properties; the detailed per-activity history behind them has no transfer route at all, through Data Sync, Smart Transfer or CSV. Export it in full before the Marketo instance is decommissioned, because there is no recovering it afterwards.
Segmentations
Marketo's segmentation engine keeps each lead in exactly one segment per segmentation, an exclusivity rule that HubSpot does not enforce the same way.
HubSpot: Active lists, one per segment
There is no mutually-exclusive segmentation construct on the HubSpot side, so either build the exclusivity into the list filters yourself or accept that a lead can now sit inside more than one segment at once. Decide which before the rebuild, since it changes how every downstream report reads.
Interesting Moments
Interesting Moments, the notable lead actions Marketo surfaces to your sales team, need a purpose-built replacement rather than a direct import.
HubSpot: Timeline events via workflows or custom code
Custom timeline events reproduce the concept going forward, but every historical moment you have already captured stays behind: sales sees nothing before the cutover date unless you have exported it separately.
Custom Field Values With Exact Option Matching
Every dropdown and select value that has to align exactly across the two platforms is where a quiet failure is most likely, since a mismatch here does not announce itself.
HubSpot: Property option sets
A mismatched option value fails the row silently rather than throwing an error you would notice, so reconcile every option set before the import runs rather than discovering the gaps partway through it. Where a picklist carries market or entity values typed by hand over years, give it its own review pass before assuming it lines up.
Automation
Smart Campaigns and Trigger Campaigns
This is Marketo's core automation, the layered triggers, filters and flow steps that live inside every program you have built, and it carries the largest share of the rebuild effort of anything in your instance.
HubSpot: Workflows
Budget for this as the largest single line in the whole migration. Your program-based logic carries hidden cross-program dependencies that a straight transcription will not catch, so plan to redesign it rather than copy it, and check the feature table for the workflow tier you actually need before scoping the rebuild.
Engagement Programs and Nurture Streams
Your engagement programs, the cadenced nurture running on streams and transition rules, sit in the same category: nothing about the stream structure carries across as built.
HubSpot: Workflows with delays, or sequences
Stream transitions have nothing to map onto directly, so rebuild the nurture as branching workflows and expect the cadence itself to change shape in the process, not just the tool running it.
Batch Campaigns
Batch Campaigns, the scheduled one-off sends you fire at a Smart List, need their own line in the rebuild too.
HubSpot: Scheduled workflows or manual email sends
Scheduling the enrolment itself is a Data Hub feature gated to a specific plan; sending manually needs no such gate, so confirm which route your tier actually supports before you promise a like-for-like batch send.
Operational and Data Management Campaigns
Not every Marketo campaign talks to a person: some exist purely to normalise data, and those need rebuilding too even though nobody ever receives them.
HubSpot: Data quality workflows and custom code actions
Custom code actions sit behind a Data Hub plan gate, so check the tier before assuming you have them; where the normalisation is simple, standard workflow actions cover it without needing that upgrade at all.
Lead Scoring Models
Your lead scoring models, built across behavioural and demographic dimensions, are on the rebuild list as well, and this is one of the heavier ones.
HubSpot: Score properties and scoring workflows
HubSpot has no product-level scoring, and the mechanics for setting or resetting a score work differently from what you are used to. Rebuild the model rather than reproduce it: history does not carry across, and every score starts accumulating again from zero.
Lead Routing and Assignment Rules
Lead routing, the rule that assigns an owner the moment a record qualifies, has to be rebuilt inside HubSpot rather than carried over.
HubSpot: Workflow rotation actions
Rotation itself is gated to a specific plan, so pull the tier you need from the feature table before promising it. Anything resembling territory logic, and a group running several operating entities across markets usually has some, needs custom code layered on top of the standard rotation action.
Lifecycle Stage Transitions
Lifecycle stage transitions, run today through Revenue Cycle Modeler, are due for a rebuild of their own.
HubSpot: Lifecycle stage workflows
The Modeler's multi-path stage model has to be simplified down to HubSpot's linear lifecycle, and that simplification is a business decision rather than a technical mapping exercise. Bring in whoever in your organisation owns the lifecycle definition before the stages are finalised, not after.
Program Channel Configuration
Program channel configuration, the setup that defines each program type and its status progression, has no equivalent construct waiting on the other side.
HubSpot: Campaigns tool
There is genuinely nothing to map channels onto: they become naming and reporting conventions layered onto campaigns instead, which is a workaround rather than a replacement.
Period Costs and Program Cost Tracking
Period costs, the per-period spend you attach to a program for ROI reporting, need to be rebuilt on a different structure.
HubSpot: Campaign budget and spend fields
Campaigns do carry budget and spend fields, so the underlying concept survives the move; what does not survive is Marketo's per-period granularity, so expect a coarser view of program cost than you have today.
Wait Steps With Program Status Conditions
Wait steps tied to a status change rather than a fixed delay are another piece that needs rebuilding rather than importing.
HubSpot: Workflow delays and branch logic
A delay-until-property-change action covers most of these cases directly. Where the wait is genuinely conditional on status, resolve the status model first: the wait step cannot be built correctly until you know what status means on the other side.
Webhook-based Actions in Smart Campaigns
Webhooks fired mid-flow from inside a Smart Campaign carry across conceptually, though not automatically.
HubSpot: Workflow webhook actions and custom code actions
A direct analogue does exist in HubSpot's workflow webhook actions, but the payload shape and the authentication both change on the way, so re-test every webhook against its receiver rather than assuming the old configuration still works.
Marketo Tokens (My Tokens)
Program-scoped tokens injected into your emails and landing pages need their own line in the rebuild, separate from the personalization work already covered above.
HubSpot: Personalization tokens and custom properties
There is no analogue for a token scoped to a program, because HubSpot personalization is scoped to the contact instead. Whatever value a program-level token used to hold becomes either a property or content hard-coded into the asset.
A/B Test Configurations in Programs
Split tests defined inside a program need reconfiguring individually once you are on HubSpot.
HubSpot: A/B testing in marketing emails
Set each test up again per email rather than expecting the program-level configuration to travel, and treat the results you already have as historical: none of them carry forward into the new test.
Reporting
Program Performance Reports
Program performance reporting, everything you currently read on per-program engagement and conversion, has to be rebuilt on a different underlying structure.
HubSpot: Campaign analytics
The Campaigns tool that replaces it is gated to a specific Marketing Hub plan, so confirm the tier before scoping the rebuild. Historical Marketo figures export to CSV for the record, but they do not migrate into HubSpot's own reporting: keep the export as an archive rather than expecting it to feed a live dashboard.
Revenue Cycle Analytics Reports
Revenue Cycle Analytics, which models stage velocity, conversion and balance across your entire funnel, is the reporting capability with no HubSpot equivalent at all.
HubSpot: No HubSpot equivalent
The nearest you will get is custom lifecycle reporting layered with attribution, and it is not a substitute. Set that expectation early with whoever relies on RCA today, because this is consistently the reporting capability organisations moving off Marketo miss the most.
Email Performance Reports
Send, open, click and conversion reporting is one of the few areas where HubSpot needs no workaround at all.
HubSpot: Marketing email analytics
Native coverage handles this without a rebuild; the only thing you lose is the history behind it, so export what you want to keep before the Marketo account closes.
Landing Page Performance Reports
Landing page performance, views, submissions and conversion by page, reports natively once the pages themselves have been rebuilt.
HubSpot: Landing page analytics
Coverage is native, so the reporting itself is not the gap: it starts working the moment the landing pages are rebuilt, and not a day before.
Multi-touch Attribution Reports
Multi-touch attribution, tracing every touchpoint through to pipeline and revenue, splits across two separate tiers on the HubSpot side rather than sitting in one place.
HubSpot: Attribution reporting
General attribution and revenue attribution live on different Marketing Hub plans, so check both tiers against the feature table before you promise anyone reporting parity with what Marketo gave you natively.
Custom Revenue Explorer Reports
Custom Revenue Explorer reports, the ad-hoc analysis you run over the RCA dataset, come with the same gap as RCA itself, only compounded.
HubSpot: Custom report builder
The custom report builder that replaces it is plan-gated, and even once you have access, the underlying dataset is different enough that these reports get redesigned from the question up rather than rebuilt from the old query.
Program Cost Versus Revenue ROI Reports
ROI reporting by program, calculated against period costs, depends entirely on whether the budget fields feeding it were populated correctly during the rebuild.
HubSpot: Campaign ROI reporting or custom reports
Whether this reporting works at all depends on the campaign budget and spend fields being populated as each campaign is rebuilt, so decide the discipline at build time rather than trying to fix it retroactively once someone asks for the ROI number.
Lead Lifecycle Reports and Funnel Analytics
Funnel conversion and velocity by stage follows directly from whatever lifecycle model you settle on to replace Revenue Cycle Modeler, so it cannot be finalised ahead of that decision.
HubSpot: Lifecycle stage reporting
This reporting takes its shape from whichever lifecycle model replaces Revenue Cycle Modeler, so it is one of the last things to build, not one of the first.
Marketo Insights and Engagement Scoring Reports
Engagement scoring surfaced for your sales team gets rebuilt from whatever new scoring model you land on, with no continuity from the old figures.
HubSpot: Engagement reports and score properties
Once the new scoring model is in place, the reporting is rebuilt against it directly, and there is no historical continuity to carry across: the numbers your sales team sees on day one of HubSpot start from a different baseline than the ones they were reading in Marketo.
Sales And Marketing Config
Email Templates
Every email template, whether built in the Marketo 2.0 editor, hand-coded or assembled from modules, needs rebuilding rather than importing.
HubSpot: Marketing email templates and coded templates
Nothing transfers automatically, so plan to rebuild each one from a visual reference or adapt the exported HTML by hand, and replace every Marketo token throughout with a HubSpot personalization token as you go. Where a template exists in an Arabic and an English version, rebuild both as their own templates rather than trying to make one do double duty: the layout direction alone rules that out.
Landing Page Templates
Landing page templates, whether built as guided or free-form in Marketo, are another full rebuild rather than a migration.
HubSpot: Drag-and-drop and coded templates
Guided templates in particular have nothing to map onto: the editable-region model behind them is specific to Marketo and does not exist as a concept in HubSpot's editor.
Forms
Every form embedded across your web properties needs rebuilding in HubSpot and every embed code needs replacing, one for one.
HubSpot: Forms
Check the feature table for the progressive-profiling tier rather than assuming it is included. Inventory every embed code before cutover: miss one and submissions keep flowing quietly into a Marketo instance nobody is watching anymore.
Snippets
Snippets, the reusable content blocks shared across your assets, map onto a HubSpot equivalent cleanly for once.
HubSpot: Global modules and saved sections
The concept matches directly, so rebuild each snippet a single time as a global module or saved section, then re-reference it everywhere the original was used rather than recreating the content over and over.
Dynamic Content
Content that varies by segmentation needs re-deriving under smart content rather than reused as configured.
HubSpot: Smart content
Smart content is gated to a specific plan, and it keys off lists and properties rather than Marketo segmentations, so every rule gets re-derived from scratch against that different logic rather than copied across.
Landing Page URL Structure and Redirects
The public URLs carrying inbound traffic and search ranking today are one of the pieces most worth protecting deliberately rather than leaving to chance.
HubSpot: Page URLs and 301 redirects
Set up a redirect from every old Marketo URL to its HubSpot replacement. Skip this and the traffic and rankings behind those pages disappear without warning, and it is consistently the regret people voice most after a Marketo cutover.
CNAME and Tracking Domain Configuration
CNAME and tracking domain configuration, currently pointed at Marketo, needs re-pointing to HubSpot, and this is DNS work rather than a form to fill in.
HubSpot: HubSpot tracking code and connected domains
DNS changes carry a propagation delay that no amount of urgency on cutover day will shorten, so start this well ahead of the date rather than treating it as a same-day task.
Email Sending Domain Authentication
Email sending domain authentication, your SPF, DKIM and DMARC records, currently point at Marketo and need re-pointing before HubSpot sends a single email at volume.
HubSpot: Connected email sending domain
Deliverability from day one depends on getting this exactly right and warming the new domain before volume actually moves across, not after the first large send goes out.
Subscription Management Centre
The subscription management centre, Marketo's hosted preference page, needs rebuilding on HubSpot's own subscription types and preferences page.
HubSpot: Subscription preferences page and subscription types
Define the subscription types first, before anything else in this piece: opt-out state attaches to those types directly, so building them in the wrong order means redoing the preference page once the types finally exist.
Preference Centre Customisation
The template-driven customisation you have on the preference page today will not be matched exactly on the other side.
HubSpot: Subscription preferences page customisation
HubSpot's subscription preferences page is templated less freely than Marketo's, so set the expectation now that the rebuilt version will be simpler than the original rather than a like-for-like recreation.
Image and File Library
Your image and file library, everything sitting in Marketo Design Studio, moves across as a bulk operation rather than an automatic sync.
HubSpot: File Manager
Bulk download the library, then bulk upload it into HubSpot's File Manager, and re-point every asset URL embedded inside a template or email once the upload is done: an unchanged URL keeps quietly pointing back at Marketo Design Studio long after that instance is gone.
Users And Permissions
User Roles and Permissions
Marketo's role-based access model needs recreating rather than imported, and it will not map one for one onto HubSpot's structure.
HubSpot: Users, teams and permission sets
Teams and permission sets sit on separate plans in HubSpot, so pull both tiers from the feature table before you commit to a structure. The granularity of a Marketo role does not map cleanly across either, so audit each role against what you actually need rather than assuming it will land where you expect.
Workspace-based User Access
Workspace-based user access, the structure that partitions your assets and audiences today, is one of the harder pieces to resolve, because HubSpot does not partition the same way.
HubSpot: Teams and business units
Business units sit behind a higher Marketing Hub plan, and even then they partition assets inside a single portal rather than create genuinely separate environments the way a workspace does. If your Marketo instance runs several workspaces for several operating brands, resolve during scoping whether one HubSpot portal can actually hold them all, because that decision changes the shape of the whole project.
API Users and Webhook Credentials
Every service account held by an external system against your Marketo API needs identifying before a single credential is revoked.
HubSpot: Private app tokens
List every external system holding a Marketo credential before you revoke anything: a webhook or integration you have forgotten about will fail silently the moment its credential stops working, and silent failure is the expensive kind to trace back.
Marketo Sales Insight Users
Sales-side visibility into marketing engagement, what Marketo Sales Insight gives your sales team today, is preserved on the new platform, just not in the same place.
HubSpot: Sales Hub with the Salesforce integration panel
The visibility itself is equivalent once HubSpot Sales Hub and the Salesforce integration panel are in place, but the surface it appears on is different, so plan retraining for the sales users who will otherwise look for it exactly where it used to be.
Integrations
Salesforce CRM Sync
The Marketo-to-Salesforce sync is usually the single most business-critical integration in your stack, and it is the one that deserves the most planning time of anything on this list.
HubSpot: HubSpot-Salesforce integration
Sequence this with real care: disconnect Marketo-SFDC only once HubSpot-Salesforce is established, with field mappings, sync rules, campaign sync and lead routing all reconfigured on the new side. Running both syncs at the same time creates loops and duplicate records that are far more work to unpick than to avoid.
Microsoft Dynamics CRM Sync
Where Microsoft Dynamics stands in for Salesforce, the same sync handoff has to happen there instead.
HubSpot: HubSpot-Dynamics integration or Data Sync
The sequencing risk is identical to the Salesforce path: disconnect too early and you open the same gap in lead flow.
Marketo Sales Insight for Salesforce
The Marketo Sales Insight panel your sales team sees inside Salesforce disappears with the migration and needs a replacement, not just a removal.
HubSpot: HubSpot Sales Hub Salesforce integration panel
Replace the panel with the HubSpot Sales Hub Salesforce integration panel, and retrain the sales team on where the information now sits: the layout is different enough that muscle memory from the old panel will point people to the wrong place at first.
LaunchPoint Partner Integrations
LaunchPoint, Marketo's partner integration framework, needs auditing service by service rather than assumed to carry over as a block.
HubSpot: HubSpot App Marketplace
Check each LaunchPoint service individually for a HubSpot App Marketplace listing. Anything without one turns into custom development work or a change to how the team actually operates, and that gap is worth surfacing during scoping rather than discovering after cutover.
Webhook Integrations
Outbound webhooks running to external services need re-pointing individually, one by one, rather than as a single switch.
HubSpot: Workflow webhook actions
Re-point every endpoint and re-test each receiver in turn: the payload shape and the authentication both change on the move to HubSpot, so a webhook that worked under Marketo is not guaranteed to work unmodified under the new one.
Custom API Integrations
Any code written directly against the Marketo REST or SOAP API is not a migration candidate at all: it is a rewrite.
HubSpot: HubSpot APIs
Treat it as a rewrite from the outset rather than a port, since the object model, the authentication and the rate limits all differ between the two APIs, and a rewrite budgeted from day one costs less than one discovered halfway through testing.
Data Enrichment Integrations
Data enrichment integrations, ZoomInfo, Clearbit and the like, need reconnecting on the HubSpot side rather than assumed to keep running.
HubSpot: Enrichment apps, or Breeze Intelligence
Reconnect each one directly to HubSpot. Breeze Intelligence works on a credits basis rather than a plan tier, so price it as its own line rather than folding it into the subscription cost.
Webinar Integrations
Webinar platforms, GoToWebinar, Zoom and ON24 among them, feed attendance data back into your marketing system, and every one of those connections needs reconnecting.
HubSpot: Webinar integrations from the App Marketplace
Reconnect each integration and verify that registration and attendance are landing as expected before your next scheduled webinar runs, not after: a broken feed discovered post-event is data that cannot be recovered.
CMS Integrations and Munchkin Tracking
Munchkin, Marketo's tracking script sitting across every web property you own, has to come out and be replaced with HubSpot's own code, in the right order.
HubSpot: HubSpot tracking code
Deploy the HubSpot tracking code first and remove Munchkin only afterwards, so there is no gap in visitor tracking during the overlap. A gap here is invisible until someone asks for last month's traffic and it is not there.
Ad Network Integrations
Lead sync with Google, Facebook and LinkedIn needs reconnecting on HubSpot's Ads tool rather than assumed to survive the cutover on its own.
HubSpot: Ads tool
The Ads tool needs a paid plan, so confirm the tier from the feature table before promising it. Reconnect each ad account individually and re-map the lead form fields behind it: a mismatch here means a form fill that never reaches a 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
Phase 1 - Discovery and Planning (1-2 Weeks)
this is the phase where you inventory what is actually running in Marketo before anyone touches HubSpot.
- 2
Run a Comprehensive Audit of the Marketo Instance
every program, Smart Campaign, engagement program, Smart List, form, landing page, email template, scoring model, custom object, integration and user needs to be on the inventory before you can price the rebuild
- 3
Build an Asset Inventory Spreadsheet That Documents Every Element Found in the Audit and Gives It a Migration Priority, Since Not Everything on That List Deserves the Same Urgency
Build an asset inventory spreadsheet that documents every element found in the audit and gives it a migration priority, since not everything on that list deserves the same urgency
- 4
Apply the '40% Rule'
identify the automations and assets that no longer serve a clear purpose and retire them rather than pay to migrate dead weight
- 5
Map Every Marketo Field to Its HubSpot Property, Matching Dropdown and Select Values Exactly Rather Than Approximately
Map every Marketo field to its HubSpot property, matching dropdown and select values exactly rather than approximately
- 6
Decide the Salesforce Sync Handoff Strategy Now If Salesforce Is in the Stack, Well Before the Sync Itself Needs Disconnecting
Decide the Salesforce sync handoff strategy now if Salesforce is in the stack, well before the sync itself needs disconnecting
- 7
Phase 2 - HubSpot Configuration (1-2 Weeks)
with the audit done, this is where the new portal takes shape.
- 8
Configure the HubSpot Portal Itself
branding, tracking code, email sending domains (SPF, DKIM, DMARC), subscription types, user accounts and permissions
- 9
Create Every Custom Property in HubSpot Matching the Marketo Field Types and Values Identified in the Audit
Create every custom property in HubSpot matching the Marketo field types and values identified in the audit
- 10
Create Custom Objects in HubSpot Where Needed, Which Means Confirming the Enterprise Tier And, Likely, Developer Time Before This Step Can Start
Create custom objects in HubSpot where needed, which means confirming the Enterprise tier and, likely, developer time before this step can start
- 11
Set up Deal Pipelines and Lifecycle Stages Ahead of Any Data Landing, So Nothing Arrives With Nowhere Correct to Sit
Set up deal pipelines and lifecycle stages ahead of any data landing, so nothing arrives with nowhere correct to sit
- 12
Build the Email Templates and Landing Page Templates Inside HubSpot
Build the email templates and landing page templates inside HubSpot
- 13
Phase 3 - Data Migration (1-2 Weeks)
this is where the records themselves move.
- 14
Clean the Marketo Database First
remove duplicates, invalid emails and bot entries, and archive the leads that have gone cold rather than carrying them across
- 15
Export the Contact Data From Marketo, Either Through the Bulk Export API or Smart List Exports
Export the contact data from Marketo, either through the bulk export API or Smart List exports
- 16
Reformat the Data Fields So They Match What HubSpot's Import Actually Requires
Reformat the data fields so they match what HubSpot's import actually requires
- 17
Import the Contacts Through HubSpot's CSV Import, Mapping Every Field With Care Rather Than Accepting the Defaults
Import the contacts through HubSpot's CSV import, mapping every field with care rather than accepting the defaults
- 18
Import the Suppression Lists (unsubscribed, Bounced, Blacklisted) With the Correct Non-marketable Status Attached From the Start
Import the suppression lists (unsubscribed, bounced, blacklisted) with the correct non-marketable status attached from the start
- 19
Import Custom Object Data Where It Applies
Import custom object data where it applies
- 20
Run a Delta Migration to Catch Every Contact Created or Updated During the Migration Window Itself, So Nothing Entered Mid-project Gets Left Behind
Run a delta migration to catch every contact created or updated during the migration window itself, so nothing entered mid-project gets left behind
- 21
Phase 4 - Asset and Automation Rebuild (2-4 Weeks)
this is the longest phase, and the one where the real work sits.
- 22
Recreate Every Active Smart List as a HubSpot Active List
Recreate every active Smart List as a HubSpot active list
- 23
Rebuild the Marketing Emails Using HubSpot's Email Editor
Rebuild the marketing emails using HubSpot's email editor
- 24
Recreate the Landing Pages and Forms Directly in HubSpot
Recreate the landing pages and forms directly in HubSpot
- 25
Rebuild Every Critical Workflow
Smart Campaigns, engagement programs and operational campaigns all need their own pass
- 26
Add the Suppression Lists to Every Email-sending Workflow Before It Goes Live, So Nobody Is Enrolled and Messaged Twice
Add the suppression lists to every email-sending workflow before it goes live, so nobody is enrolled and messaged twice
- 27
Rebuild the Lead Scoring Models Inside HubSpot
Rebuild the lead scoring models inside HubSpot
- 28
Recreate the Lead Routing and Assignment Workflows
Recreate the lead routing and assignment workflows
- 29
Phase 5 - Integration and Testing (1-2 Weeks)
everything connecting to the old system needs re-pointing here.
- 30
Configure the Salesforce-HubSpot Integration Where Applicable
field mappings, sync rules and campaign sync all need setting up fresh
- 31
Disconnect the Marketo-Salesforce Sync and Activate the HubSpot-Salesforce Sync in Its Place
Disconnect the Marketo-Salesforce sync and activate the HubSpot-Salesforce sync in its place
- 32
Reconnect Every Third-party Integration to HubSpot Individually
Reconnect every third-party integration to HubSpot individually
- 33
Configure the DNS Redirects That Send Traffic From the Old Marketo Landing Page URLs to Their HubSpot Replacements
Configure the DNS redirects that send traffic from the old Marketo landing page URLs to their HubSpot replacements
- 34
Replace the Marketo Munchkin Tracking Code With HubSpot's Tracking Code Across Every Web Property
Replace the Marketo Munchkin tracking code with HubSpot's tracking code across every web property
- 35
Run Comprehensive Testing Across Forms, Workflows, Scoring, Lifecycle Transitions, Email Rendering and Every Integration Before Anyone Relies on the New System
Run comprehensive testing across forms, workflows, scoring, lifecycle transitions, email rendering and every integration before anyone relies on the new system
- 36
Phase 6 - Go-Live and Monitoring (1-2 Weeks)
the cutover itself happens here, and so does the watching that follows it.
- 37
Warm up the HubSpot Sending Domain Deliberately
start with 1-2% of the list, the most engaged contacts first, and increase by 10-20% per week from there
- 38
Deactivate Every Marketo Program and Campaign
Deactivate every Marketo program and campaign
- 39
Activate Every HubSpot Workflow and Automation
Activate every HubSpot workflow and automation
- 40
Monitor Email Deliverability, Bounce Rates and Engagement Metrics Daily for the First 30 Days, Since This Is Where a Warm-up Mistake Shows Itself First
Monitor email deliverability, bounce rates and engagement metrics daily for the first 30 days, since this is where a warm-up mistake shows itself first
- 41
Run a Post-migration Data Integrity Audit Before Declaring the Project Finished
Run a post-migration data integrity audit before declaring the project finished
- 42
Provide Role-based Team Training on HubSpot, Tailored to What Each Team Actually Needs to Do in It
Provide role-based team training on HubSpot, tailored to what each team actually needs to do in it
- 43
Schedule a 30-60 Day Post-migration Review and Optimisation Pass Once the Team Has Had Real Time Working in the New System
Schedule a 30-60 day post-migration review and optimisation pass once the team has had real time working in the new system
Typically 6-12 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 44 Marketo (Adobe Marketo Engage) 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 Marketo Data Sync App Only Reaches Text Fields, So Building a Migration Plan Around It Is a Mistake You Find Out About Too Late
use CSV export/import instead from the start
Marketo's Program-based Logic, Layered Triggers, Hidden Dependencies, Nested Workflows, Does Not Translate 1:1 Into HubSpot; Redesign It Rather Than Expect a Copy to Work
Marketo's program-based logic, layered triggers, hidden dependencies, nested workflows, does not translate 1:1 into HubSpot; redesign it rather than expect a copy to work
Option and Select Field Values Have to Match Exactly Between Marketo and HubSpot, Not Approximately, or the Data Behind Them Will Not Transfer Accurately
Option and select field values have to match exactly between Marketo and HubSpot, not approximately, or the data behind them will not transfer accurately
Database Bloat Drives HubSpot's Contact-based Pricing up Significantly, So Clean Aggressively Before Migration
unengaged contacts, invalid emails and bot entries are the ones costing you money for no return
Marketo's Salesforce Sync Runs Bidirectionally for Leads, Contacts and Campaigns but Only One Way for Accounts, Opportunities and Custom Objects, So Understand the Current Sync Architecture in Full Before You Disconnect Anything
Marketo's Salesforce sync runs bidirectionally for leads, contacts and campaigns but only one way for accounts, opportunities and custom objects, so understand the current sync architecture in full before you disconnect anything
Disconnect Marketo-SFDC and Connect HubSpot-SFDC as Close Together as the Timeline Allows, to Minimise the Data Gap Between Them; a Brief Parallel Period Is Worth Planning for If You Can Afford It
Disconnect Marketo-SFDC and connect HubSpot-SFDC as close together as the timeline allows, to minimise the data gap between them; a brief parallel period is worth planning for if you can afford it
Every Marketo Token (My Token) Embedded in Your Emails and Landing Pages Needs Replacing With a HubSpot Personalization Token, and That Is Tedious, Genuinely Tedious Work Across a Large Asset Library, So Budget the Time for It Honestly
Every Marketo token (My Token) embedded in your emails and landing pages needs replacing with a HubSpot personalization token, and that is tedious, genuinely tedious work across a large asset library, so budget the time for it honestly
HubSpot Sandboxes Do Not Sync to Production, So Every Configuration You Test There Has to Be Manually Replicated Afterwards Rather Than Assumed to Carry Across Automatically
HubSpot Sandboxes do not sync to production, so every configuration you test there has to be manually replicated afterwards rather than assumed to carry across automatically
Custom Objects Need HubSpot Enterprise Tier And, in Most Cases, Developer Resources to Set Up, So Budget the Time and the Expertise for Schema Design Rather Than Treating It as a Configuration Task
Custom Objects need HubSpot Enterprise tier and, in most cases, developer resources to set up, so budget the time and the expertise for schema design rather than treating it as a configuration task
Revenue Cycle Modeler Stages Have to Be Simplified to Fit HubSpot's More Linear Lifecycle Model, and That Simplification Is a Decision Worth Making Deliberately Rather Than Defaulting Into
Revenue Cycle Modeler stages have to be simplified to fit HubSpot's more linear lifecycle model, and that simplification is a decision worth making deliberately rather than defaulting into
Marketo's Workspace or Partition Model for Multi-region or Multi-business-unit Operations Needs Either the HubSpot Business Units Add-on, Which Is Enterprise Only, or a Creative Combination of Teams and Properties
for a group running several operating brands, work out which route fits before scoping the timeline
Set up Landing Page URL Redirects From Every Marketo Domain to HubSpot to Preserve SEO Value and Stop Links Breaking; This Is Easy to Leave Until Last and Expensive to Have Skipped
Set up landing page URL redirects from every Marketo domain to HubSpot to preserve SEO value and stop links breaking; this is easy to leave until last and expensive to have skipped
If the Marketo Licence Is Due to Expire, Leave Enough Time, 60 or More Days, Before That Date to Finish the Migration
most migrations run longer than first estimated, and a licence deadline is not a flexible one
Form Progressive Profiling, If You Rely on It in Marketo, Needs Marketing Hub Professional or Above in HubSpot, So Confirm the Tier Before Assuming the Feature Carries Across
Form progressive profiling, if you rely on it in Marketo, needs Marketing Hub Professional or above in HubSpot, so confirm the tier before assuming the feature carries across
Email Deliverability Will Dip Initially If the Sending Domain Changes, and a Warm-up Period of 4-8 Weeks Is Essential Rather Than Optional; Start That Warm-up With the Most Engaged Contacts on the List
Email deliverability will dip initially if the sending domain changes, and a warm-up period of 4-8 weeks is essential rather than optional; start that warm-up with the most engaged contacts on the list
Historical Engagement Data Loses Its Timeline Detail in the Move, So Export the Marketo Activity Logs in Full If Any of That History Needs Preserving, Because There Is No Recovering It Afterwards
Historical engagement data loses its timeline detail in the move, so export the Marketo activity logs in full if any of that history needs preserving, because there is no recovering it afterwards
Marketo's Engagement Scoring, the Stars and Flames Your Team Is Used to Reading at a Glance, Has No Direct Equivalent in HubSpot; Rebuild That Visibility Using HubSpot Contact Scoring Together With Custom Calculated Properties
Marketo's engagement scoring, the stars and flames your team is used to reading at a glance, has no direct equivalent in HubSpot; rebuild that visibility using HubSpot contact scoring together with custom calculated properties
Questions
Marketo (Adobe Marketo Engage) To HubSpot, Answered
Yes. Data sync, two way, covering 2 objects. Smart transfer is supported. What it will not do is rebuild your configuration: that is the 58 items below.
Typically 6-12 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 44 features we mapped, 27 (61%) carry across directly and 17 (39%) map partially, meaning something is lost or reshaped along the way. 0 have no HubSpot equivalent at any tier, worth raising before sign-off rather than after.
58 items have to be rebuilt by hand, and 13 documented limitations are not surfaced by the connector at all. Both lists are on this page, in full, for whoever is scoping the work.
Data Sync itself is free for default text fields, and Data Hub Starter at $45/mo is what custom field mappings need beyond that. None of it changes the earlier point though: the Marketo Data Sync app carries severe limitations and is not something to build a migration plan around, whatever tier sits behind it.
No. 2 items on this page are Marketo (Adobe Marketo Engage)'s own code and products, which a HubSpot migration does not port and which carry no hours in any estimate you are given. They still need a decision before cutover, because you are the one giving something up.
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.