RevOps HQ
← BACK TO BLOG
••
CRM Migration•HubSpot

Pipedrive to HubSpot Migration: How to Map, Load, Validate and Cut Over

Pipedrive to HubSpot migration explained: object and field mapping, won and lost deal status, Smart Transfer versus a script, load order and validation.

P

Paul Maxwell, PhD

AUTHOR

GET WEEKLY REVOPS INSIGHTS

No spam. Unsubscribe anytime.

A Pipedrive to HubSpot migration can account for every record and still misstate the business on the first morning after cutover. Two defects follow from one difference between the data models. The HubSpot open pipeline shows deals the team lost last year, because a lost Pipedrive deal keeps its stage, and a mapping that reads only the stage returns the deal to that stage. The closed-won report shows the company's whole sales history closing in the migration month, because HubSpot sets Close date to the current day when a deal moves into a closed stage.

This article sets out how to run the migration so that records, their meaning and their history all arrive. It starts with deal status and deal stage, then gives the object and field mapping in one table. It compares HubSpot's own routes with a scripted migration, works a sample account through the arithmetic, and gives the load order and a procedure that ends in verification. Costs, symptoms, the limits of the evidence and common questions follow.

Three terms carry the argument. Deal status is Pipedrive's record of a deal's outcome: a field holding open, won or lost, kept beside the field for the stage (Pipedrive Deals API). HubSpot Smart Transfer is HubSpot's self-service tool for moving another CRM's data into HubSpot through data sync (Smart Transfer). A scripted migration extracts through Pipedrive's API and loads through HubSpot's import tool or APIs, under code the business controls. The question of whether the data will come across hides three questions: whether each record transfers, whether its meaning survives, and whether its history arrives. HubSpot's documentation answers the first object by object, the second in part, and the third for two dates.

Deal Status and Deal Stage in Pipedrive and HubSpot

A Pipedrive deal moves through the stages of one pipeline until a user marks it won or lost, at which point it leaves the active pipeline view (Pipedrive pipeline view). The Deals API keeps the two facts apart: stage_id names the stage, status holds open, won, lost or deleted, and won_time and lost_time record when the outcome was set. The same API filters won deals by stage, so a closed deal still carries one.

In HubSpot the outcome is the stage. Won and Lost are closed stages inside each deal pipeline, and every deal pipeline needs both for sales reports to process deals correctly (HubSpot pipelines). HubSpot derives Is Closed Won from the stage (default deal properties). The HubSpot stage of a migrated deal is therefore a function of two Pipedrive fields, and a stage-to-stage mapping table is correct for open deals only.

The HubSpot stage of a migrated deal depends on Pipedrive status as well as stageA grid with three sample Pipedrive stages as rows, Qualified, Proposal made and Negotiation, and three Pipedrive status values as columns, open, won and lost. Each cell shows the HubSpot stage the deal should receive. In the open column the stage decides, so each row maps to its own HubSpot stage. In the won column every row maps to one Closed won stage and the Pipedrive stage is discarded. In the lost column every row maps to one Closed lost stage, and the Pipedrive stage survives only if it is written to a stage-at-close property. A mapping that reads the stage alone would place won and lost deals in open stages.HUBSPOT STAGE FOR EACH PIPEDRIVE DEALPipedrive stagesample pipelineStatus: openthe stage decidesStatus: wonthe status decidesStatus: lostthe status decidesQualifiedQualifiedProposal madeProposal madeNegotiationNegotiationClosed wonPipedrive stage discardedClosed lostPipedrive stage survives onlyin a stage-at-close propertyReading the stage alone would place every won and lost deal in the open stage of its row.
The HubSpot stage of a migrated deal depends on its Pipedrive status as well as its stage: open deals keep a mapped stage, and every won or lost deal lands in one closed stage

Under the rule in the drawing, won deals take Closed won and lost deals take Closed lost whatever stage they held, which discards one fact a sales team will want later: the stage at which each lost deal was lost. Once the deal sits in Closed lost, that fact survives only if the load first wrote it to a custom property, such as a dropdown named Pipedrive stage at close.

Probabilities need the same care. Pipedrive sets every stage probability to 100 percent unless someone adjusts it (Pipedrive probability), while a HubSpot deal probability written by import, data sync or API stops following stage movement (default deal properties). Copied values therefore either weight the whole open pipeline at full value or freeze probabilities that were meant to move.

Object and Field Mapping for a Pipedrive to HubSpot Migration

HubSpot's documented Pipedrive configuration for Smart Transfer is the vendor's own statement of what maps where (supported apps). Read against Pipedrive's data, it gives four groups: created at configuration, kept current by data sync, moved once after the sync, and not listed at all.

Pipedrive items, their HubSpot destinations, and the Smart Transfer route documented for each
Pipedrive itemPeopleHubSpot destinationContactsSmart Transfer routeData sync; people without an email are skipped by default
Pipedrive itemOrganizationsHubSpot destinationCompaniesSmart Transfer routeData sync
Pipedrive itemDealsHubSpot destinationDealsSmart Transfer routeData sync; only deals in mapped stages
Pipedrive itemProductsHubSpot destinationProductsSmart Transfer routeData sync
Pipedrive itemNotesHubSpot destinationNotesSmart Transfer routeData sync
Pipedrive itemCall, meeting and task activitiesHubSpot destinationCalls, meetings and tasksSmart Transfer routeData sync, with a Data Hub subscription
Pipedrive itemEmail activitiesHubSpot destinationEmail activitiesSmart Transfer routeData sync, with a Data Hub subscription; logged emails are excluded
Pipedrive itemCustom activity typesHubSpot destinationCalls, emails, meetings or tasksSmart Transfer routeData sync, with a Data Hub subscription
Pipedrive itemUsers and currenciesHubSpot destinationUsers and currenciesSmart Transfer routeCreated in the configuration step
Pipedrive itemCustom fieldsHubSpot destinationCustom propertiesSmart Transfer routeData sync, with a Data Hub subscription
Pipedrive itemProducts on dealsHubSpot destinationLine itemsSmart Transfer routeOne-time transfer after the sync
Pipedrive itemDeal participantsHubSpot destinationContact associations on the dealSmart Transfer routeOne-time transfer after the sync
Pipedrive itemOrganization relationshipsHubSpot destinationLabeled company associationsSmart Transfer routeOne-time transfer after the sync
Pipedrive itemAttachmentsHubSpot destinationAttachmentsSmart Transfer routeOne-time transfer after the sync
Pipedrive itemLeads InboxHubSpot destinationContacts, or HubSpot's lead objectSmart Transfer routeNo listed route
Pipedrive itemProjectsHubSpot destinationProjects, where activatedSmart Transfer routeNo listed route

Deal participants become contact associations only through the one-time transfer, and until it runs a deal without associated contacts is excluded from revenue attribution reporting. The Leads Inbox has no listed route, so leads move by import or script, either to HubSpot's lead object or to contacts distinguished by lead status and lifecycle stage. Pipedrive leads share their custom fields with deals (Pipedrive custom fields reference), so their values need contact or lead properties.

Custom fields need a type decision each. Pipedrive has sixteen field types and keys each custom field by a 40-character hash that differs between accounts, so a mapping keyed on field names fails when two fields share a label. The Data fields export lists each field's type and API key (Pipedrive export), which makes it the spine of the mapping. Nine types map directly to HubSpot property types: text, autocomplete, large text, numerical, single option, multiple options, user, phone and date. The other seven need design. Monetary fields carry the currency under a separate _currency key, range fields hold two values where a HubSpot property holds one, and time and address fields need a format decision. Organization and person fields reference records, so they become association labels, a Professional or Enterprise feature with up to 50 labels per object pair. Formula fields, a Premium feature in Pipedrive (Pipedrive custom fields), are rebuilt as calculation properties.

HubSpot Smart Transfer, the Import Tool and a Scripted Migration

Smart Transfer is open to Super Admins on every plan and runs one way into HubSpot: it audits record counts and field types, creates properties, pipelines, users and currencies, syncs the records, and then offers the one-time transfers. For Pipedrive it creates two workflows, which fill Create date from creation time and Close date from won time, lost time or expected close date (supported apps). A transfer can be reverted, which deletes the configuration and records it created.

The import tool takes files from Pipedrive's export, which a global admin runs per data type under Tools and apps > Export data. That export holds only records the exporting user can see, puts activities, notes and files in separate files, omits files stored in Google Drive, and expires after 28 days (Pipedrive export). Emails, meetings, notes and tasks can be created by import but never updated (multiple-object imports).

A scripted migration can recover stage history, because Pipedrive's deal changelog endpoint lists changes to deal field values with their timestamps (Deals API). It spends Pipedrive's daily API budget: 30,000 tokens multiplied by the plan multiplier (1 for Lite, 2 for Growth, 5 for Premium, 7 for Ultimate) and by the number of seats. Every integration on the account shares that budget, and once it is spent Pipedrive rejects requests with a 429 error until midnight in the server's time zone (Pipedrive rate limiting).

HubSpot's paid migration services list template setup and website migration, which move website content rather than CRM records. The firm writing this article is a HubSpot Solutions Partner that runs scripted migrations, which is an interest in how the two routes compare; the costs section below names the conditions under which Smart Transfer is the better choice.

Smart Transfer and a scripted migration compared on the points that decide the route
Point of differenceWho can run itSmart TransferSuper Admins, on any HubSpot planScripted migrationHolders of Pipedrive API access and HubSpot import permissions
Point of differenceCustom fields and activitiesSmart TransferNeed a Data Hub subscriptionScripted migrationLoad by import or API, with no Data Hub requirement
Point of differenceWon and lost statusSmart TransferHandling undocumented; test by countScripted migrationSet by the status rule
Point of differenceCreate date and Close dateSmart TransferFilled by two backfill workflowsScripted migrationWritten at load from Pipedrive's times
Point of differenceStage historySmart TransferNo listed routeScripted migrationRead from the deal changelog, 20 tokens per call
Point of differenceCorrecting a loadSmart TransferRevert deletes what the transfer createdScripted migrationReload updates records through a unique Pipedrive ID

Reconciliation Arithmetic on a Sample Account

The figures below are sample data built to make the arithmetic checkable, and they describe no client. The sample account runs one pipeline with three stages, Qualified, Proposal made and Negotiation, on Pipedrive's Lite plan with three seats.

Sample account (sample data): Pipedrive counts and the HubSpot result a correct load should produce
Pipedrive recordsPeopleCount and value in Pipedrive4,800, of which 350 have no email and 40 repeat an earlier emailExpected result in HubSpot4,410 contacts by data sync with default settings; 4,760 by import
Pipedrive recordsOpen dealsCount and value in Pipedrive610 deals, $4,270,000Expected result in HubSpot610 deals in the mapped open stages
Pipedrive recordsWon dealsCount and value in Pipedrive1,140 deals, $9,120,000Expected result in HubSpot1,140 deals in Closed won, dated by won time
Pipedrive recordsLost dealsCount and value in Pipedrive850 deals, $6,800,000Expected result in HubSpot850 deals in Closed lost, with the Pipedrive stage kept in a property

The contact figures differ by route. Data sync skips people without an email unless the email-only option is cleared, and where two records share an identifier the first syncs and the next counts as a duplicate (data sync): 4,800 − 350 − 40 = 4,410. An import creates no second contact for an email already in HubSpot, while every row without an email or other unique identifier becomes a new contact (deduplication): 4,800 − 40 = 4,760, and a second run of the file adds the 350 again.

A stage-only mapping puts all 2,600 deals into open stages, and the HubSpot open pipeline reads $20,190,000 against a true $4,270,000, which is 4.7 times the real value. If HubSpot sets the close dates, the 1,990 closed deals take the date they moved into their closed stages. The closed-won report for the migration month then shows 1,140 deals worth $9,120,000, the account's entire won history. Of the 850 lost deals, 390 were lost at Qualified, 280 at Proposal made and 180 at Negotiation, a split that survives only through the stage-at-close property.

The price of stage history can be computed in advance. A deal changelog call costs 20 tokens and a deal participants call costs 10 (Deals API), so one of each per deal comes to 2,600 × 30 = 78,000 tokens if every response fits on one page. The daily budget is 30,000 × 1 × 3 = 90,000 tokens, so those calls take 87 percent of a day that every other integration on the account shares. On the Growth plan with three seats it would take 43 percent of 180,000.

Load Order and Cutover for a Pipedrive Migration to HubSpot

Where the import tool or a script does the loading, the order follows the dependencies between records, since a record can be associated only with one that already exists.

Load order for a Pipedrive to HubSpot migration by import or scriptEight steps in order. Before the Pipedrive account is frozen: first users and owners, so that owners exist before any record names one; second, properties and pipelines, including Closed won, Closed lost and the stage-at-close property. After the freeze: third, companies, keyed on a unique Pipedrive organization ID; fourth, contacts, associated with companies through that ID; fifth, deals, with the stage set by the status rule and dates taken from Pipedrive; sixth, line items and participants, since line items must be associated with deals; seventh, notes and activities, because an import can create notes, emails, meetings and tasks but cannot update them; and last, attachments, moved by a one-time transfer after the records.LOAD ORDER: EACH STEP NEEDS WHAT THE STEPS ABOVE CREATEDPIPEDRIVE FROZEN HERE: COUNTS TAKEN1Users and ownersowners exist before any record names one2Properties and pipelinesClosed won, Closed lost, stage-at-close property3Companieskeyed on a unique Pipedrive organization ID4Contactsassociated with companies through that ID5Dealsstage from the status rule; dates from Pipedrive6Line items and participantsline items must be associated with deals7Notes and activitiesnotes, emails, meetings and tasks are create-only8Attachmentsone-time transfer, after the records
Load order for an import or scripted migration: configuration before the Pipedrive freeze, then each record type after the records it associates with

Notes and activities come after every record they attach to, and go in once, after those records have been checked, because an import cannot update them. A regional law firm's move from Pipedrive used a phased load of this kind: organizations and contacts first, time for review, then deals, with deals closed before 1 January 2023 archived rather than imported.

Cutover adds two constraints particular to Pipedrive. One-time transfers do not stay current, so attachments, participants, line items and organization relationships move after the freeze. Deleted Pipedrive deals stay restorable for 30 days (Pipedrive pipeline view), so every count is taken on the freeze date and excludes them. The dispositions for automations, reports and permissions, and the choice between parallel running and a hard cutover, are covered under HubSpot migration services.

Migration Procedure and Verification

  1. In Pipedrive, export the field setup from Personal preferences > Data fields, and count people, organizations and deals by pipeline, stage and status, including archived deals, which the Deals API summarises separately.
  2. In HubSpot, open Data Management > Data Integration > Transfer data and run the Smart Transfer audit for Pipedrive, even for a scripted load, to obtain counts and field types per object.
  3. Create each deal pipeline, or review the one Smart Transfer's configuration creates, with its open stages, Closed won and Closed lost. Set the probabilities deliberately, and on the pipeline's Automate tab switch off Set the close date to today when moving deal to closed stage (close date automation) until the load and any repair are complete.
  4. Create the stage-at-close dropdown on deals, and a unique-value property for the Pipedrive ID on contacts, companies and deals, so that a reload updates records rather than duplicating them.
  5. Write the mapping document keyed on Pipedrive API keys: fields to properties, open stages to HubSpot stages, and the status rule.
  6. Freeze Pipedrive and load in the order drawn above. Write Close date from won or lost time and Create date from creation time, or confirm that the Smart Transfer workflows ran before cleanup removes them.
  7. Run the one-time transfers, or their scripted equivalents.
  8. Verify against the freeze-date counts. Contacts, companies and deals match per object, less only the route's documented exclusions; Closed won and Closed lost match Pipedrive's won and lost counts; open amount matches open value; closed-won amount by month matches won value by month. Then read twenty deals field by field, including lost deals from every stage. Any difference the exclusions do not explain is a defect in the load.

The reconciliation method behind the last step is set out in the CRM data migration method.

Costs and Returns of Each Route

Smart Transfer buys speed, a documented configuration and a reversible path at no licence cost for the core objects. It costs a Data Hub subscription wherever custom fields or activity history matter, and its handling of deal status has to be verified by count rather than specified. Its case is strongest on an account with one or two pipelines, few custom fields and Data Hub already planned, and weakest where stage history feeds reporting.

A scripted migration buys control, because the status rule, dates, stage history and Pipedrive IDs are written by code that can be read, rerun and tested. It costs engineering time spent once, a share of the Pipedrive API budget, and dependence on the script's author until cutover. Its case is strongest where history drives decisions, such as win rates by stage, and weakest on a small, clean account where Smart Transfer does the same job for less.

Pipeline count is a licence question on either route, since HubSpot's custom pipeline limits are shared across all objects: 15 on Starter, 100 on Professional under seat-based pricing and 350 on Enterprise, while a portal without a paid subscription keeps only the default deal pipeline (HubSpot pipelines). The return is the same on both routes: a portal whose open pipeline, won history and contact counts agree with Pipedrive on the freeze date.

Symptoms After Migration and Their Causes

The HubSpot open pipeline is several times the Pipedrive figure. Won and lost deals were mapped by stage alone, so the repair writes the stage-at-close property and then sets each deal's stage from the status rule.

Closed-won revenue spikes in the month of the migration, or of a later repair. HubSpot sets Close date to the current day whenever a deal moves into a closed stage, unless the pipeline's close date automation is switched off (close date automation). The stage repair above therefore moves 1,990 sample deals and re-dates every one of them. The fix writes Close date from Pipedrive's won time and lost time after the last stage change.

HubSpot holds fewer contacts than Pipedrive holds people. Data sync skipped people without an email and treated repeated identifiers as duplicates; if the gap equals those two groups, the sync behaved as documented, and the repeats belong under duplicate management.

Two Pipedrive organizations became one HubSpot company. Data sync matches company names after ignoring capitalisation and punctuation, even where domains differ (data sync). The fix makes names distinct before the sync, or loads companies by import keyed on the Pipedrive ID property.

Deals are missing and no error names them. Only deals in mapped stages sync (data sync), and a stage holding only closed deals looks empty in Pipedrive's pipeline view, which hides won and lost deals.

Notes and tasks appear twice after a corrected load. An import cannot update notes, emails, meetings or tasks, so the second import created new copies, which have to be deleted.

Boundaries of This Article

This article covers moving CRM records and their history from Pipedrive to HubSpot, and not the rebuilding of automations, reports or permissions, nor Pipedrive's Campaigns, Projects or LeadBooster data. Product facts are as documented in September 2026, and the Smart Transfer mapping for Pipedrive and Pipedrive's rate limits are the documents to recheck before a plan is fixed.

The evidence has two limits. HubSpot does not document how Smart Transfer translates Pipedrive's status field, so the status rule here is a specification for a scripted load and a test for a Smart Transfer one, not a description of Smart Transfer's behaviour. The sample account is invented to make the arithmetic checkable, and no frequency of any symptom above has been measured or is claimed.

Frequently Asked Questions

What does a Pipedrive to HubSpot migration move, and what needs separate handling? People, organizations, deals, products and notes move through Smart Transfer's data sync, with activities and custom fields where the portal has Data Hub. Attachments, participants, line items and organization relationships move once after the sync, and the Leads Inbox and stage history need an import or a script.

Is a Pipedrive migration to HubSpot possible without a Data Hub subscription? The core records move through Smart Transfer on any plan, and custom field values and activities can travel through the import tool instead, which creates calls, emails, meetings, notes and tasks at the cost of preparing files and loading activities exactly once.

Does a HubSpot to Pipedrive migration work the same way in reverse? Smart Transfer runs one way into HubSpot, and Pipedrive documents its own imports from a previous CRM or from spreadsheet files (Pipedrive deals). The status problem also reverses: each closed HubSpot deal needs a Pipedrive stage chosen for it, because the stage property of a closed HubSpot deal holds only the closed stage.

In Summary

A Pipedrive to HubSpot migration moves records on every route, less each route's documented exclusions, while their meaning and history need design. Pipedrive keeps a deal's outcome in a status field beside its stage and HubSpot keeps it in the stage, so each HubSpot stage depends on two Pipedrive fields, and a lost deal's Pipedrive stage survives only in a property. HubSpot dates a close when a deal moves into a closed stage, a repair included, so Close date and Create date are written from Pipedrive's own times, by workflow in Smart Transfer or at load in a script, with the pipeline's close date automation off while deals move.

Smart Transfer suits a simple account with Data Hub in place, and a script earns its cost where stage history and repeatable reloads matter. The migration is complete when four comparisons agree on the freeze date: contacts against people less the documented exclusions, closed stages against won and lost, open value, and won revenue by month. A portal that passes all four reports the business Pipedrive reported the day before, so any later disagreement is a question about the sales process rather than the migration.

HubSpot services

Onboarding, implementation, integration, migration, administration and training, each scoped and priced before the work begins

WEEKLY PROGRAM

RevOps Office Hours

A recurring weekly RevOps operating program. Live support plus hands-on HubSpot implementation work.

$1,500/mo
Monthly Operating Program
  • →1 live Office Hours session per week
  • →4 hours of hands-on implementation work per month
  • →Hours allocated against priorities agreed at the start of each period
  • →Recurring monthly cadence