Tips for a Clean Marketo-to-HubSpot Migration
- Use field utilization insights before you migrate. Not every field in Marketo is worth bringing over — check usage percentages first to avoid cluttering your new HubSpot portal.
- Set up matching logic early if you have existing HubSpot data. This is especially important if you're migrating multiple source systems into the same portal, or re-running a migration.
- Don't skip the sample migration. It's free and unlimited — there's no reason to run your full migration without validating the mapping first.
- Leave notes for your team. MigrateMyCRM's collaborative notes feature lets you leave comments directly in the mapping interface, which is useful if more than one person is working on the project.
- Plan for your marketing assets separately. Landing pages, forms, workflows, emails, and other CMS assets aren't part of the core CRM data migration — these are handled through a dedicated CMS/Asset Migration service that rebuilds these assets natively in HubSpot.
What About Marketing Assets Beyond CRM Data?
If your Marketo-to-HubSpot move also includes things like landing pages, forms, emails, workflows, campaigns, or your knowledge base, that's a separate track handled by CMS/Asset Migration services. Rather than a straight automated transfer, this involves rebuilding these assets natively in HubSpot — including:
- Website and landing pages
- Blog posts
- Forms and CTAs
- Marketing emails and campaigns
- Workflows and sequences
- Lists, reports, and templates
- Chatflows and social posts
- HubDB, files, and settings
This is a more hands-on service since these assets typically require rebuilding rather than a direct data transfer.
Ready to Start Your Migration?
Migrating from Marketo to HubSpot doesn't have to mean weeks of manual data entry or a risky one-shot import. With AI-powered automapping, unlimited free samples, and full control over your field mappings, you can validate your migration before it ever touches your live HubSpot portal.
Try a free sample migration today — no credit card or technical skills required.
Migrating Contacts, Companies, and Custom Objects
With your field map defined, the actual record migration follows a specific sequence: companies first, then contacts with associations, then deal or opportunity records if you're also migrating CRM data.
Company records. If your Marketo instance wasn't using company objects explicitly, you'll need to deduplicate company names from your lead export and create company records in HubSpot before importing contacts. Domain-based deduplication is HubSpot's native approach — if you have company domain data on your Marketo leads, use it.
Contact records. Import contacts with all mapped field values and establish company associations during the import, not after. HubSpot's import tool can associate contacts to companies by company name or domain during the same operation. Doing it afterward requires a secondary operation and creates a window where contacts exist without proper associations.
Custom objects. HubSpot supports custom objects, but the structure is different from Marketo's. Marketo's program member custom fields (fields that exist on the membership record, not the lead record) have no direct equivalent in HubSpot's standard data model. Options include: flattening the data to contact properties, creating a HubSpot custom object to hold program-level data, or storing it as historical reference data only. The right answer depends on whether the data needs to be used for active segmentation or is purely archival.
Historical engagement data. Email opens, clicks, form fills, and web visits from your Marketo history cannot be imported as native HubSpot engagement events that drive workflow triggers or scoring. What you can do is store a contact-level summary (last email engagement date, historical lead score, program history) as custom contact properties. These become queryable for list segmentation even if they don't populate HubSpot's activity timeline as live engagement records.
Translating Marketo Programs and Smart Campaign Logic to HubSpot Workflows
This is the section most migration guides skip or handle with "rebuild your automations in HubSpot." That's technically accurate but practically useless without a framework. Here's a structured approach.
Step 1: Classify your Marketo programs by type and complexity. Engagement programs (nurture tracks) map most cleanly to HubSpot enrollment-based workflows with email send actions. Email programs (batch sends) map to HubSpot's simple email sends or one-time workflows. Event programs require the most restructuring — Marketo's event program member status progression has no single HubSpot equivalent and typically becomes a combination of a list, a workflow, and a deal pipeline stage.
Step 2: Document trigger, filter, and flow step logic for each smart campaign. For each campaign, write out: what triggers enrollment (trigger vs. batch), what filters qualify a lead, and what the flow steps do in sequence. This is your translation spec.
Step 3: Map Marketo constructs to HubSpot equivalents. Some direct translations:
- Trigger: "Fills Out Form" → HubSpot: workflow trigger "Form submission"
- Trigger: "Email is Opened" → HubSpot: workflow trigger "Marketing email open" (note: Apple MPP makes open-based triggers unreliable in both platforms)
- Filter: "Member of List X" → HubSpot: "Is member of active list X"
- Flow step: "Change Data Value" → HubSpot workflow action: "Set contact property value"
- Flow step: "Send Alert" → HubSpot: "Send internal email notification" or "Create task"
- Flow step: "Interesting Moment" → HubSpot: "Create activity" or custom behavioral event
- Smart campaign qualification rules (once, every time, once per X days) → HubSpot re-enrollment settings
Step 4: Identify logic that has no clean equivalent and decide what to do with it. Marketo's wait steps with relative date tokens, advanced Velocity scripting in emails, and complex revenue cycle model rules often have no clean HubSpot analog. Document these explicitly and make a deliberate product decision rather than discovering them as broken automations post-launch.
Step 5: Build and test in HubSpot before cutover. Rebuild workflows in HubSpot while Marketo is still live. Use test contacts to validate enrollment logic and flow step behavior before you switch traffic.
Preserving Compliance: Unsubscribes, Suppression Lists, and Consent Records
This is the area where most migration guides — including most of the ones currently ranking for "Marketo to HubSpot migration" — say essentially nothing useful, and where mistakes carry real legal and deliverability consequences.
Global unsubscribes. In Marketo, global unsubscribes are stored on the lead record via the Unsubscribed field (boolean) and the Unsubscribed Reason field. These must be migrated and applied correctly in HubSpot. In HubSpot, opting a contact out of all marketing email means setting their "Email opt-out" property to true and, if you use the marketing contacts model, marking them as non-marketing. Both steps are required — setting one without the other can result in contacts appearing opted out in HubSpot's UI but still being technically eligible for certain email sends.
Suppression lists. Marketo suppression lists (lists used as blocklists in smart campaign filters) need to be recreated as HubSpot suppression lists or active lists used in workflow enrollment criteria. Don't rely on suppression being implied by unsubscribe status — some suppression lists in Marketo exist for reasons other than unsubscribe (competitors, internal addresses, non-sendable domains). Audit each suppression list for its business logic and recreate it explicitly.
GDPR consent records. If you operate under GDPR, Marketo may store consent records via custom fields, third-party consent management integrations, or Marketo's native GDPR-related fields. HubSpot has a built-in GDPR tools feature that stores communication subscription type and legal basis (consent, legitimate interest, etc.) per contact. Migrating consent records means mapping Marketo's consent state to HubSpot's legal basis fields — and doing it per-contact, not as a bulk default.
CAN-SPAM compliance. Ensure that any contact whose Marketo record was marked as "Marketing Suspended" or "Blacklisted" has an appropriate status applied in HubSpot before your first send. A clean migration means no suppressed contact receives email from HubSpot because the suppression state didn't transfer.
MigrateMyCRM treats unsubscribe and compliance field migration as a required part of the contact migration — not an optional add-on — precisely because sending to suppressed contacts post-migration is one of the most common and most damaging mistakes in a platform switch.
Email Deliverability Setup: Domains, Sending Reputation, and SPF/DKIM/DMARC
Your Marketo sending reputation does not follow you to HubSpot. This is not a flaw in either platform — it's how email infrastructure works. Your reputation is tied to the IP addresses you send from, and HubSpot's shared (or dedicated) IP infrastructure is separate from Marketo's. If you've built a strong sender reputation in Marketo over years of consistent sending, you are effectively starting over in HubSpot from a deliverability standpoint.
IP warming. If you're sending at volume (generally above 50,000 to 100,000 emails per month), you should plan for an IP warming period on HubSpot before full-volume sends. HubSpot's dedicated IP option gives you more control over this, but even on shared IPs, ramping volume gradually — starting with your most engaged segment and expanding from there — protects your sender reputation and inbox placement rate during the transition.
Sending domain authentication. You'll need to configure SPF, DKIM, and DMARC for your sending domain in HubSpot's DNS settings, regardless of whether you had these configured in Marketo. The records are platform-specific — Marketo's DKIM configuration does not carry over to HubSpot. Steps:
- Add your sending domain in HubSpot's Email Sending Domains settings
- Add the HubSpot-generated DKIM CNAME records to your DNS provider
- Verify the SPF record includes HubSpot's sending servers (HubSpot provides the exact include statement)
- Confirm your DMARC policy is set to at least "p=none" with a reporting address so you can monitor alignment
- Validate full authentication using a tool like MXToolbox or Google's email verification before sending to your full list
Subdomain vs. root domain sending. If you send marketing email from a subdomain (e.g., email.yourcompany.com) rather than your root domain, confirm that subdomain is set up in HubSpot and authenticated separately. Sending from an unauthenticated domain will immediately damage deliverability and may trigger spam filtering at scale.
Bounce and engagement history. HubSpot will not have your Marketo hard bounce history. To avoid resending to previously hard-bounced addresses, export hard-bounced contacts from Marketo and suppress them in HubSpot before your first send. This is a manual step but a critical one.
Post-Migration Validation: Reconciling Record Counts and Testing Workflow Behavior
The migration isn't done when the data is in HubSpot. It's done when you've confirmed the data in HubSpot matches what left Marketo, that suppression state is correct, and that workflows behave as intended. Most teams skip or rush this phase, which is where post-migration problems originate.
Record count reconciliation. At the most basic level, compare total contact counts between Marketo export and HubSpot import. If the numbers don't match, find out why before proceeding. Common causes: import errors (check HubSpot's import error log), duplicate merging during import, or records filtered out by import validation (invalid email format, missing required fields).
Field-level spot checks. Don't assume that because 95,000 of 100,000 records imported successfully, the field values are correct. Pull a sample of 50 to 100 records — including edge cases like unsubscribed contacts, contacts with null field values, and contacts from multiple Marketo programs — and manually compare field values between the Marketo record and the HubSpot record. Pay particular attention to: unsubscribe status, lead score, custom field values, and company association.
List behavior validation. For every active list in HubSpot that was rebuilt from a Marketo smart list, compare the expected membership count to the actual membership count. A rebuilt list with 40 percent fewer members than its Marketo equivalent usually signals a filter logic translation error. Test each filter criterion independently to identify which condition is wrong.
Workflow enrollment testing. Before enabling any HubSpot workflow rebuilt from a Marketo smart campaign, test it with internal contacts or a controlled test segment. Validate: enrollment trigger fires correctly, all flow steps execute in the right sequence, wait steps behave as expected, and the workflow does not re-enroll contacts it shouldn't.
Compliance state audit. Run a HubSpot report of all contacts marked as "Email opt-out: true" and cross-reference against your Marketo unsubscribe export. The counts should align. Do the same for suppression list memberships. Any gap represents a compliance risk that must be resolved before any email send.
Deliverability pre-send check. Send a test campaign to an internal seed list before your first external send. Check inbox placement across major email clients (Gmail, Outlook, Apple Mail) using a tool like Litmus or Email on Acid. Confirm that SPF and DKIM are passing and that your DMARC alignment is correct.
Frequently Asked Questions about Marketo to HubSpot Migration
1. How long does a Marketo-to-HubSpot migration take? It depends on your data volume and complexity, but because the process is self-service and sample-driven, most teams move at their own pace — often completing a full migration within days rather than weeks. There's no fixed project timeline imposed on you; you run the sample, adjust, and migrate when you're ready.
2. Will my Marketo custom fields carry over to HubSpot? Yes. Custom fields are automapped where possible, and any that don't yet exist in HubSpot can be created in bulk directly from the mapping interface — no need to build them manually in HubSpot first.
3. Can I migrate to an existing HubSpot portal that already has data in it? Yes. The matching feature is built for exactly this — it checks incoming Marketo records against existing HubSpot records (by criteria like email or domain) and updates matches instead of creating duplicate contacts or companies.
4. Do I need developer or technical support to run the migration? No. The wizard is designed for non-technical users to run self-service, with no credit card required to start. That said, HubSpot Migration Services are available if you'd rather have a team handle the project end-to-end.
5. What happens to associations between records, like which contacts belong to which company or deal? Associations are preserved during migration — contacts, companies, deals, attachments, and activities keep their existing relationships rather than migrating as disconnected records.
6. Can I preview my data before committing to the full migration? Yes. You can run unlimited free sample migrations, previewing roughly 10% of your mapped records directly in your HubSpot portal, and adjust mappings as many times as needed before running the full migration.
7. Does the migration only move CRM data, or also marketing assets like emails and landing pages? The core migration wizard moves CRM data — contacts, companies, deals, tasks, notes, and similar objects. Marketing assets such as landing pages, emails, workflows, and forms fall under a separate CMS/Asset Migration service, since those typically need to be rebuilt natively in HubSpot rather than transferred directly.
8. What if a Marketo field doesn't have an equivalent in HubSpot? You can create it. The wizard supports creating new custom fields in HubSpot directly from the mapping UI, including bulk creation for larger sets of custom fields.
9. Is it safe to migrate sensitive marketing and customer data this way? Yes — the platform is ISO certified and GDPR compliant, and used by organizations with strict data security requirements.
10. What if I make a mapping mistake — can I undo it? Yes. Version control lets you revert to a previous version of your mappings if a change doesn't work out, so you don't have to redo your mapping work from scratch.
Ready to Start Your Migration?
Migrating from Marketo to HubSpot doesn't have to mean weeks of manual data entry or a risky one-shot import. With AI-powered automapping, unlimited free samples, and full control over your field mappings, you can validate your migration before it ever touches your live HubSpot portal.
Try a free sample migration today — no credit card or technical skills required.


