Marketo-to-HubSpot migration is more complex than most teams expect because marketing automation carries program-level complexity that CRM migrations do not. You are not just moving data. You are rebuilding operational logic, preserving engagement history, and making deliberate decisions about what to leave behind. Here is how to do it without losing 18 months of program work.
Moving a CRM from Salesforce to HubSpot is primarily a data migration. Contact records, company records, deals, and activities transfer with defined fields and established export formats. The logic is in the data.
Marketo migration is different because the logic lives in the programs. An engagement program in Marketo is not a record. It is a set of rules, transitions, content references, and program tokens that define how hundreds of contacts move through an automated sequence. That logic cannot be exported as a CSV. It has to be rebuilt.
TPG's migration timeline for a mid-market Marketo instance: 10-16 weeks. The range reflects complexity of the program library, database size, and how much cleanup is required before migration. Attempting to do it faster usually means leaving data behind or launching with broken workflows.
Marketo's engagement programs are the closest equivalent to HubSpot's Workflows. They define the logic of who enters a nurture stream, which content they receive, when they receive it, and what moves them through tracks.
You cannot directly import Marketo engagement programs into HubSpot. You rebuild them. Before migration, export a complete inventory of every engagement program: program name, number of streams, cast size (contacts enrolled), active status, and last 12-month engagement rate.
For programs with under 5% engagement in the last 12 months, evaluate whether they are worth rebuilding. Programs that have not moved contacts or generated pipeline in a year are almost never worth the migration effort. Document their existence and archive them.
For active programs: document the program logic in detail before you start building in HubSpot. List every entry criteria, every content step, every transition rule, every exit condition. This documentation is the blueprint for your HubSpot Workflow. Rebuilding without documentation produces workflows that almost-but-not-quite replicate the original logic.
Your Marketo lead scoring model represents months of calibration and sales feedback. Preserve it completely. Before migration, export the full scoring model: every scoring rule, every point value, every negative score, the MQL threshold.
Map each Marketo scoring rule to a HubSpot equivalent:
Some Marketo scoring rules use Sales Insight data or custom activities that HubSpot does not capture the same way. Document these exceptions and decide whether to replicate the signal through HubSpot's custom behavioral events (available in Marketing Hub Enterprise) or to drop the rule from the model.
Rebuild the scoring model in HubSpot and validate it against a sample of known MQLs from Marketo before going live. A contact who was scoring 75 in Marketo should score similarly in HubSpot under the rebuilt model. If scores diverge significantly, check which rules were missed or misconfigured.
Marketo's forms and progressive profiling (showing different fields to returning visitors who have already filled out prior fields) are valuable assets worth rebuilding. Export every Marketo form with its complete field list, validation rules, and progressive profiling configuration.
HubSpot's Smart Forms replicate progressive profiling natively. When rebuilding forms in HubSpot, configure them to use Smart Fields that hide already-known properties and surface new profiling questions. The logic differs slightly in configuration but the outcome is the same: returning visitors see contextually appropriate fields rather than the same form repeatedly.
Do not recreate every Marketo form if forms have been duplicated for minor variations over time. Consolidate to canonical forms before rebuilding in HubSpot. A single master form with Smart Fields typically replaces 3-5 Marketo form variants.
Marketo email templates are built on a proprietary template framework (Marketo Email 2.0) that does not transfer to HubSpot. You cannot import Marketo HTML email templates and expect them to render correctly in HubSpot's editor.
What to preserve: the design system (typography, colors, button styles, layout grids) and brand assets (logos, images, graphics). Build new email templates in HubSpot's drag-and-drop editor that replicate the visual standards. This is a rebuild, not an import.
Prioritize templates that are actively used. Build those first. Archive Marketo templates used less than once per quarter without rebuilding them in HubSpot.
Your Marketo suppression lists (competitors, opt-outs, specific domains, permanent suppression for legal or compliance reasons) are critical assets. Export every suppression list from Marketo before migration and import them into HubSpot as suppression lists in the email sending settings.
Missing suppression data is a compliance risk, not just a nuisance. Triple-check suppression list completeness before sending any email from HubSpot.
"The worst outcome in a MAP migration is sending email to someone who opted out in the old system because the suppression list wasn't transferred. Do this step first, not last."
Marketo's Smart Lists (the segmentation engine) use a proprietary filter syntax that does not export to HubSpot format. Every Smart List must be manually reviewed and recreated as a HubSpot active list using HubSpot's list filter criteria.
This is time-consuming but necessary. Start with your highest-volume active Smart Lists (those used in active programs or for monthly reporting) and rebuild those first. Lower-volume and inactive lists can be rebuilt on an as-needed basis after launch.
Smart list migration priority tiers:
Note: Smart list membership history does not migrate. A contact who was a member of a Marketo Smart List in January 2025 will not show that membership history in HubSpot. This affects historical list membership reporting but does not affect how contacts behave in the new system.
Marketo's program tokens (reusable variables like event dates, speaker names, location details that auto-populate across a program's emails and landing pages) are a Marketo-specific feature. HubSpot does not have an exact equivalent, but global content variables in HubSpot's CMS and personalization tokens in HubSpot emails approximate the functionality.
For event-based programs: rebuild the token structure using HubSpot custom properties populated via workflow. For evergreen content that uses tokens for value proposition text or offer details: use HubSpot's personalization tokens pulling from contact or company properties.
Marketo landing pages are built on Marketo's template system. Like email templates, they use Marketo-specific code that does not import to HubSpot.
Rebuild landing pages in HubSpot's CMS using the drag-and-drop landing page builder. Use the same conversion structure (headline, form, offer description) but build natively in HubSpot. This is an opportunity to modernize landing page design rather than replicating outdated templates.
Prioritize high-traffic landing pages. Export 12 months of Marketo landing page analytics to identify which pages receive the most organic and campaign traffic. Rebuild those first. Do not spend migration budget rebuilding landing pages that received fewer than 50 visits in the past year.
Marketing automation accumulates programs the way email inboxes accumulate unread newsletters. Most programs built for a specific campaign or launch are never formally archived. They sit in the program library, occasionally enrolling contacts who fit their old entry criteria, running sequences nobody remembers designing.
Before migration, export engagement statistics for every Marketo program. Programs with email open rates below 5% and click rates below 1% over the last 12 months are candidates for retirement. Programs that are active but have fewer than 50 enrolled contacts and no new enrollments in the last 90 days are candidates for retirement.
Retiring programs before migration reduces the rebuild scope significantly. For most mid-market Marketo instances, 30-50% of the program library can be retired without any impact on active marketing operations.
Migrating 18,000 contacts who have not opened an email, visited a page, or taken any action in the last 24 months is not useful. Those contacts degrade your HubSpot database quality, increase your contact tier cost, and reduce email deliverability reputation by inflating inactive contact percentages.
Run a Marketo Smart List: contacts who have not opened any email, clicked any link, visited any page, or changed any data value in the last 24 months. Contacts on this list should be:
Cleaning before migration is significantly cheaper than cleaning after. HubSpot charges by contact tier. Migrating stale contacts means paying for contacts that will never generate pipeline.
Companies rebrand. Agencies turn over. Products get renamed. Most mid-market Marketo instances contain email templates from 2-3 different brand eras. The templates that reflect the current brand identity should be preserved and rebuilt. Templates from previous brand periods should be documented and left behind.
Smart list membership history does not migrate. But individual contact engagement history can be preserved using the Marketo API.
The Marketo REST API supports export of activity data at the contact level: email sent, email opened, email clicked, form filled, web page visited, and custom activities. This data can be exported as structured records and imported to HubSpot as custom contact activities or stored in custom contact properties.
For your highest-value contacts (existing customers, recent MQLs, active opportunities): export 12 months of engagement activity from Marketo API. Import key engagement milestones as HubSpot contact activities using the HubSpot API. This preserves the most important behavioral context for contacts that sales is actively working.
For the broader database: store engagement summary data in custom HubSpot contact properties rather than individual activity records. Create properties like "Marketo Last Engagement Date," "Marketo Email Engagement Score (12mo)," and "Marketo Program History (Top 3)." Populate these from the Marketo export and import them as contact properties in HubSpot.
This approach preserves the most actionable engagement context without attempting to import complete activity histories for hundreds of thousands of contacts, which is operationally impractical.
Marketo-to-HubSpot Migration Readiness Checklist
Before starting the rebuild: export full program inventory with engagement stats. Export complete lead scoring model documentation. Export all suppression lists. Export Smart list definitions (not membership, just the filter logic). Export email and landing page performance data for the last 12 months. Clean stale contacts (24+ months inactive) from migration scope. Identify the top 10 active programs for Tier 1 rebuild. Get marketing and sales sign-off on the revised lead scoring model before rebuilding it in HubSpot. Set a go-live date and work backward to determine build phases.
Talk to a Migration Strategist
How long does a Marketo-to-HubSpot migration actually take? For a mid-market company with 50,000-200,000 contacts and a typical Marketo program library (20-40 active programs), TPG's average migration timeline is 10-16 weeks. The primary variables are: how much database cleanup is needed before migration, how complex the lead scoring model is, how many active programs need to be rebuilt for day-one operation, and how complete the documentation of existing Marketo logic is before rebuilding begins. Companies that start the migration without documenting their Marketo logic first take 4-6 weeks longer than companies that start with complete documentation.
Can we run Marketo and HubSpot in parallel during migration? Yes, but with significant caution. Running parallel systems creates the risk of double-sending emails, competing lead scoring signals, and contact data divergence. If you run parallel, use Marketo only for programs that have no equivalent yet running in HubSpot, suppress the Marketo database from receiving HubSpot communications on the same topics, and set a firm cutover date. Parallel operation for more than 4 weeks almost always creates data quality problems that take months to resolve.
What happens to our Marketo lead scoring history after migration? Historical lead score data (the numbers contacts accumulated in Marketo) does not carry meaning in HubSpot because the scoring model is rebuilt with potentially different point values and rules. Export each contact's Marketo lead score as a custom contact property in HubSpot ("Marketo Score at Migration") for reference. Then let the HubSpot scoring model build fresh scores based on behavior in the new system. Sales should be informed that HubSpot scores start from zero and will take 30-60 days to reflect the same relative ranking as the Marketo model.
Does HubSpot have an equivalent to Marketo's Revenue Cycle Modeler? HubSpot does not have a dedicated Revenue Cycle Modeler as a standalone tool. The equivalent is built using a combination of lifecycle stage automation, custom contact stage properties, and workflow-based transition logic. For most mid-market companies, this HubSpot configuration replicates what they actually used in Marketo's Revenue Cycle Modeler, which for most teams was a single linear funnel rather than the complex multi-track models the tool supports. If your Marketo Revenue Cycle Model has multiple parallel tracks for different product lines or regional markets, document those tracks and build them as separate lifecycle property dimensions in HubSpot.
What is the biggest migration mistake teams make? Migrating everything without cleaning first. TPG has reviewed post-migration HubSpot instances where the client migrated 150,000 contacts, 85 programs, and 200+ Smart Lists from Marketo without any cleanup. The result was a HubSpot instance as cluttered as the Marketo instance it replaced, with the added problem of 60,000 stale contacts driving up contact tier costs and dragging down deliverability. Clean before you migrate. The migration is a restart. Use it as one.
The Pedowitz Group | pedowitzgroup.com | Revenue Marketing Experts Since 2007