Skip to main content
Meticulosity Global

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.

PDF documentPDFMarkdown documentMDExcel workbookXLS
Marketo (Adobe Marketo Engage) logoHubSpot logo

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

Complexity: High
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

2761%
1739%
  • 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 wayTwo way

Becomes 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 HubSpotInto HubSpot

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

    Phase 2 - HubSpot Configuration (1-2 Weeks)

    with the audit done, this is where the new portal takes shape.

  8. 8

    Configure the HubSpot Portal Itself

    branding, tracking code, email sending domains (SPF, DKIM, DMARC), subscription types, user accounts and permissions

  9. 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. 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. 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. 12

    Build the Email Templates and Landing Page Templates Inside HubSpot

    Build the email templates and landing page templates inside HubSpot

  13. 13

    Phase 3 - Data Migration (1-2 Weeks)

    this is where the records themselves move.

  14. 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. 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. 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. 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. 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. 19

    Import Custom Object Data Where It Applies

    Import custom object data where it applies

  20. 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. 21

    Phase 4 - Asset and Automation Rebuild (2-4 Weeks)

    this is the longest phase, and the one where the real work sits.

  22. 22

    Recreate Every Active Smart List as a HubSpot Active List

    Recreate every active Smart List as a HubSpot active list

  23. 23

    Rebuild the Marketing Emails Using HubSpot's Email Editor

    Rebuild the marketing emails using HubSpot's email editor

  24. 24

    Recreate the Landing Pages and Forms Directly in HubSpot

    Recreate the landing pages and forms directly in HubSpot

  25. 25

    Rebuild Every Critical Workflow

    Smart Campaigns, engagement programs and operational campaigns all need their own pass

  26. 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. 27

    Rebuild the Lead Scoring Models Inside HubSpot

    Rebuild the lead scoring models inside HubSpot

  28. 28

    Recreate the Lead Routing and Assignment Workflows

    Recreate the lead routing and assignment workflows

  29. 29

    Phase 5 - Integration and Testing (1-2 Weeks)

    everything connecting to the old system needs re-pointing here.

  30. 30

    Configure the Salesforce-HubSpot Integration Where Applicable

    field mappings, sync rules and campaign sync all need setting up fresh

  31. 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. 32

    Reconnect Every Third-party Integration to HubSpot Individually

    Reconnect every third-party integration to HubSpot individually

  33. 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. 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. 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. 36

    Phase 6 - Go-Live and Monitoring (1-2 Weeks)

    the cutover itself happens here, and so does the watching that follows it.

  37. 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. 38

    Deactivate Every Marketo Program and Campaign

    Deactivate every Marketo program and campaign

  39. 39

    Activate Every HubSpot Workflow and Automation

    Activate every HubSpot workflow and automation

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

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

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.