Updated October 2026By Joe LaGrutta, Founder, JayOhHubSpot Platinum Partner
The trigger is rarely features. It is the cost of keeping a marketing tool that needs a Salesforce admin to change anything.
Pardot changes often route through the Salesforce team. In HubSpot, marketing owns forms, emails, lists and workflows directly.
SpeedCampaign influence in Salesforce, engagement in Pardot, web data somewhere else. HubSpot puts contact, campaign and attribution reporting in one tool.
Most commonA Pardot renewal or an edition upgrade is when the comparison happens. If that date is under 90 days out, start the inventory now.
TimingStill choosing a platform? Read the marketing automation platform selection guide first. This page assumes the decision is made and you need the mechanics.
Direct map means import. Rebuild means same logic, new tool. Redesign means the concept changes and somebody has to make a decision.
| Pardot asset | HubSpot equivalent | How it moves | What to watch |
|---|---|---|---|
| ProspectsProspect records synced to Salesforce Leads/Contacts | Contacts | Direct map | Store the Pardot ID and Salesforce Lead/Contact ID as read-only properties. Decide marketing vs non-marketing contact status before import, because HubSpot bills on marketing contacts. |
| Prospect custom fieldsText, dropdown, checkbox, date fields | Contact properties | Direct map | Match field types one-for-one. Dropdown values become HubSpot internal values, so normalize spelling first or lists and workflows will miss records. |
| Opt-outs and Do Not EmailGlobal opt-out, Do Not Email, email preference pages | Subscription types + opt-out list import | Redesign | Design subscription types before anything else. Import global opt-outs as an opt-out list so they can never be mailed, then map preference-page choices to subscription types. |
| Engagement Studio programsBranching nurture with rules, triggers and waits | Workflows (if/then branches, delays, goals) | Rebuild | There is no import path. Rebuild from a documented flow map, and use the rebuild to merge programs that overlap. Triggers that depend on Salesforce fields only work if those fields sync. |
| Automation rulesRepeating or one-time rules on prospect criteria | Workflows with enrollment triggers and re-enrollment | Rebuild | Pardot rules that match retroactively need an explicit re-enrollment decision in HubSpot. Leave it implicit and records either never enroll or enroll every day. |
| Completion actionsActions fired on form, file, email or redirect activity | Form follow-ups and event-triggered workflows | Rebuild | Inventory completion actions on every form, file and redirect. They are scattered across assets and are the easiest logic to lose. |
| Dynamic lists and segmentation rulesCriteria-based and one-time lists | Active lists (segments) and static lists | Rebuild | Rewrite criteria in HubSpot filter logic. Retire lists nobody has used for a send or a rule in 12 months. |
| Static listsManually built membership | Static lists | Direct map | Import with a list-membership column. Keep suppression lists as their own named lists. |
| Prospect scoreActivity-based score with decay rules | Lead scoring: engagement score | Redesign | Rebuild rules, backfill a starting score from the last Pardot score, and recalibrate the MQL threshold against the last two quarters of handoffs. |
| Grading and profilesA–F grade against profile criteria | Lead scoring: fit score | Redesign | Turn profile criteria into fit-score attributes (industry, size, title, region). Most teams simplify here, which is fine if sales agrees on the new definition. |
| Email templates and list emailsHML merge tags, Pardot template regions | Marketing email templates (drag-and-drop or coded) | Rebuild | Convert merge tags such as {{Recipient.FirstName}} to HubSpot personalization tokens and test every fallback value. |
| Dynamic contentContent variations by field value | Smart content rules | Rebuild | Smart rules key off list membership, lifecycle stage and other criteria. Rebuild the variations you actually used. |
| FormsPardot forms, iframes, progressive profiling | HubSpot forms | Rebuild | Rebuild progressive and dependent fields, then re-embed on every page. Keep a form-by-URL inventory so nothing is missed at cutover. |
| Form handlersSite forms posting to Pardot endpoints | Non-HubSpot form collection or Forms API | Redesign | Highest silent-failure risk on the list. When Pardot is switched off, form handlers stop posting and nothing errors on the website. |
| Landing pagesPardot layout templates on the tracker domain | HubSpot landing pages | Rebuild | Decide whether the vanity subdomain moves to HubSpot. If it does, map old paths to new ones with 301s. |
| Custom redirectsTracked short links on the tracker domain | Tracking URLs + 301 redirects | Redesign | Links in PDFs, QR codes, partner sites and evergreen ads stop resolving when the tracker domain is retired. Inventory them and redirect before the license ends. |
| Hosted filesPDFs and images served from Pardot | File manager | Direct map | File URLs change. Update links in templates and on the website, or redirect the old paths. |
| Tracking code and tracker domainPardot tracking script and first-party cookies | HubSpot tracking code | Redesign | Anonymous visitor history does not carry over. Install HubSpot tracking weeks before cutover so known contacts start building history early. |
| Connected campaignsPardot campaigns tied to Salesforce campaigns | HubSpot campaigns + Salesforce campaigns via connector | Redesign | Pick the campaign system of record. If Salesforce campaign influence drives reporting, keep campaigns there and sync membership from HubSpot. |
| Salesforce connectorPardot v2 connector, field sync behavior | HubSpot–Salesforce connector | Redesign | Rebuild field mappings, sync direction per field and the inclusion list. During overlap, give each field exactly one writer. |
| Prospect assignmentRound robin, assignment rules | Rotate record owner or Salesforce assignment rules | Rebuild | If Salesforce already routes Leads, keep routing there and let HubSpot create the Lead. Do not run two routers. |
| Sending domainSPF/DKIM for Pardot | HubSpot email sending domain authentication | Direct map | Authenticate the HubSpot sending domain and add DMARC alignment before the first send. Warm volume if you move to a dedicated IP. |
| Prospect activity historyEmail opens, clicks, page views, form fills | Summary properties, custom timeline events, archived export | Redesign | Historical activity does not import as native HubSpot email engagement. Carry forward last-engaged dates and counts; archive the raw export. |
| Business unitsSeparate Pardot databases per brand or region | HubSpot Brands / Business Units add-on or separate portals | Redesign | Decide early: one portal with brand partitioning, or separate portals. It changes the data model, subscription types and user permissions. |
| ReportsLifecycle report, campaign ROI, B2B Marketing Analytics | HubSpot dashboards and attribution reports | Rebuild | Rebuild the five reports leadership actually reads, with a parity check against the last Pardot numbers. |
| Unused assetsDead programs, templates, lists, test prospects | Nothing | Retire | Retire. A clean inventory typically cuts the rebuild list substantially; never migrate an asset nobody can name an owner for. |
Feature names reflect HubSpot and Salesforce Account Engagement as of October 2026. Custom objects, lead scoring limits and Brands depend on your HubSpot edition; confirm against your contract before you design around them.
Export every asset to a register and tag it keep, rebuild or retire. Pull a full prospect and activity backup. Document the current Salesforce connector field map and every tracker-domain URL.
Output Asset register with ownersSubscription types, property map, marketing-contact rules, campaign system of record, scoring model and one writer per synced field. This is where the redesign rows in the table get decided.
Output Signed-off property map and scoring specAuthenticate the sending domain, install HubSpot tracking code, configure the HubSpot–Salesforce connector against a limited inclusion list, set users and permissions.
Output Connected portal, no sends yetTemplates with converted merge tags, forms with progressive fields, landing pages, smart content, nurture and automation workflows, form-handler replacements and redirects.
Output Every keep asset rebuilt and peer-reviewedImport opt-outs first, then contacts. Reconcile record, opt-out and list counts. Backtest scoring against the last two quarters of sales-accepted handoffs and adjust the threshold.
Output Reconciliation sheet at exact match on opt-outsFreeze Pardot sends, swap forms, tracking and redirects in one window, flip connector ownership of shared fields, seed-test every live email.
Output HubSpot live, Pardot frozenDaily checks on sync errors and form submissions for two weeks, report parity against Pardot baselines, then disconnect and archive Pardot before the license ends.
Output Parity sign-off, Pardot retired| Instance size | Typical profile | Timeline | What stretches it |
|---|---|---|---|
| Small | Under 25K prospects, fewer than 10 Engagement programs, one brand, few form handlers | 4–6 weeks | Late subscription-type decisions |
| Mid | 25K–250K prospects, 10–40 programs, scoring and grading in use, Salesforce campaigns | 6–10 weeks | Scoring redesign, campaign source-of-truth debate |
| Complex | 250K+ prospects, business units, heavy form handlers, multiple regions or brands | 10–16 weeks | Portal structure, regional consent rules, website dependencies |
JayOh guidance from 10+ HubSpot and Pardot migrations and 75+ CRM and marketing automation migrations overall. Ranges assume a responsive client-side owner and a decision on scoring within week two.
28 steps in the order we run them. Tick them off as you go; progress saves in this browser. Download it as a text file for your project board.
Cost follows the number of assets you keep, not the number of prospects. Retiring dead assets in week one is the biggest lever you have.
| Band | Assets kept | Timeline | Typical services cost |
|---|---|---|---|
| Small | Under 10 programs, under 20 forms, one brand | 4–6 weeks | $8K–$20K |
| Mid | 10–40 programs, scoring + grading, Salesforce campaigns, 20–60 forms | 6–10 weeks | $20K–$55K |
| Complex | Business units, 40+ programs, heavy form handlers, regional consent | 10–16 weeks | $55K–$100K |
JayOh guidance for migration services only; HubSpot licenses and any Pardot overlap months are separate. Ranges use the same hourly economics as JayOh’s published pricing. For a full estimator across every migration path, use the CRM migration cost and timeline guide.
Pattern A guide: HubSpot–Salesforce integration. Pattern B guide: Salesforce to HubSpot migration. Going the other way? HubSpot to Salesforce migration.
We engineer growth systems. JayOh builds the RevOps architecture, GTM execution and data infrastructure that turn messy revenue operations into predictable pipeline for B2B SaaS and PE-backed teams.