Migration Playbook

Pipedrive HubSpot

Pipedrive to HubSpot: The Complete Migration Playbook

A 44-step runbook across six phases — track your progress, and open the right tool at every step.

0 / 44 steps complete 0%
TL;DR

Pipedrive-to-HubSpot migration requires API-based ETL to preserve associations, activities, and files. Plan for token-based rate limits on both sides. CSV breaks relationships.

There is no native migration path that preserves multi-object associations, activities, or file attachments from Pipedrive to HubSpot. Pipedrive is pipeline-centric with flat custom fields identified by 40-character hex hashes and no custom objects. HubSpot is a relational CRM with an explicit Associations API, batch endpoints, and Enterprise-only custom objects. The fundamental gap is relational: Pipedrive activities link to one deal, lead, or project at a time, while HubSpot Engagements can associate with multiple contacts, companies, and deals simultaneously — requiring your transformation layer to expand relationships, not just copy them. Every migration requires API-based ETL with 100-record batch endpoints, explicit association rebuilding via typed association IDs, custom field hash resolution across 16 field types, and rate-limit management on both Pipedrive's token-based system and HubSpot's burst windows.

Read this first

Pair-specific gotchas that catch teams out. Each one has cost somebody a weekend.

No custom objects in Pipedrive

If your Pipedrive instance relies heavily on custom fields on Persons or Deals to simulate separate entity types, you need to decide whether those become custom properties on HubSpot's standard objects or dedicated Custom Objects — which requires HubSpot Enterprise.

Best practice

Create a custom unique identifier property in HubSpot for every imported object — pipedrive_person_id, pipedrive_org_id, pipedrive_deal_id — and use these for idempotent upserts and association mapping.

Call the *Fields endpoints once at the start of your migration to build the custom field

Call the *Fields endpoints once at the start of your migration to build the custom field hash → label map. Cache the results. These calls consume tokens you don't want to spend repeatedly.

Do not use HubSpot Search as your main upsert loop

Use source-system ID properties and batch read/update wherever possible. Search is best for targeted lookups and duplicate investigation, not for scanning the entire migrated dataset.

Pipedrive's v2 list endpoints return a maximum of 500 items per page

Use the next_cursor value from each response to paginate. For v1 endpoints, use start and limit (also max 500) with offset-based pagination. Since July 15, 2025, archived deals and leads are not returned by the main endpoints — you must use the dedicated archived endpoints if archived data is in scope.

Automate property creation for large schemas

If your Pipedrive instance has hundreds of custom fields, manually creating matching HubSpot properties is error-prone and slow. Use HubSpot's Properties API (POST /crm/v3/properties/{objectType}) to programmatically create properties with the correct field types, group names, and dropdown options based on your Pipedrive field schema export.

Watch for workflow triggers on imported records

If HubSpot has active workflows with enrollment triggers (e.g., "contact is created" or "deal stage changes"), imported records can fire those workflows — potentially sending live emails, creating tasks, or changing deal stages. Before loading data, either pause active workflows or add enrollment filters that exclude records with your pipedrive_*_id properties set. Re-enable workflows only after migration is complete and validated.

Newly created or updated HubSpot CRM objects can take time to appear in search results

For immediate QA, validate with returned IDs or batch reads, not search-only scripts. (developers.hubspot.com)

Do not combine migration scope with implementation scope

Data movement, pipeline redesign, workflow rebuilds, and new reporting should be tracked as separate workstreams. Mixing them creates fake dependencies and avoidable delay. Read Why Data Migration Isn't Implementation for more on that split.

The runbook

Work top to bottom. Tick steps as you go — your progress is saved in this browser.

01 Discovery Agree scope, pipeline design and success criteria before touching data. 0/5

Objective A scope covering every object in the revenue model, with sales leadership signed up to the pipeline design.

  1. Inventory every object in Pipedrive

    RevOps 1-2 days

    Count accounts, contacts, leads, deals or opportunities, activities, notes, emails, files, products and quotes. Activity and email history is usually the largest object by an order of magnitude and the one people forget to size.

    Data Profiler Get real record counts instead of estimating from memory
  2. Map the current pipeline and agree the target model

    Sales leadership 3-5 days

    Document every pipeline, stage, probability and required field, then agree the HubSpot model with sales leadership. Migrating a broken pipeline faithfully is a wasted opportunity; redesigning it mid-migration is a wasted migration.

    Stage changes alter historical conversion rates. Agree how you will restate reporting before you change the model.

  3. Catalogue integrations and automation

    RevOps 2-3 days

    List every system touching Pipedrive: marketing automation, quoting, billing, ERP, data enrichment, dialler, BI. Each is a separate cutover task with its own owner, and each can silently write bad data into your new CRM.

  4. Capture the reporting that must survive

    RevOps 2 days

    Interview the people who actually live in the dashboards — forecast, pipeline coverage, rep activity, cohort conversion. Every one of these needs the underlying fields to migrate, which frequently expands the scope.

  5. Build the business case and pick the go-live date

    Project sponsor 2 days

    Model licence delta, implementation effort and productivity dip. Then choose the date deliberately: mid-quarter is disruptive, quarter-end is worse. Most teams land on the first week of a new quarter.

    COI & ROI Calculator Build the 36-month business case you will need for sign-off

Don't move on until

  • Object counts confirmed for accounts, contacts, deals and activities
  • Target pipeline and stage model agreed with sales leadership
  • Reporting requirements captured from the people who use the reports
02 Data Audit CRM data is usually dirtier than anyone expects. Find out how dirty. 0/9

Objective A profiled export with duplicates, ownership gaps and relationship integrity all quantified and triaged.

  1. Export and profile every object

    Data engineer 2 days

    Profile null rates, distinct values and type consistency across all objects. Pay attention to fields sales reps were supposed to fill in: an 80% null rate on a field your forecast depends on is a business finding, not a data one.

    Data Profiler Profile the Pipedrive export for nulls, outliers and type drift
  2. Quantify duplicates and agree the merge policy

    RevOps 2-4 days

    Measure duplicate accounts (same company, different spellings and suffixes) and contacts (same email, or same person at a renamed company). Agree survivorship rules before merging: which record wins, which fields, and what happens to the activity history on the loser.

    Merging before you have agreed survivorship rules destroys history irreversibly. Decide first, merge second.

    Data Cleaner Strip empty rows, stray whitespace and dead columns
  3. Verify relationship integrity

    Data engineer 1-2 days

    Check every deal has a valid account, every contact a valid account, every activity a valid parent. Referential breaks are the defect that turns a clean-looking load into a CRM where the pipeline report does not tie to the account list.

  4. Resolve ownership and the user map

    RevOps 1-2 days

    Build the Pipedrive user → HubSpot user map, including leavers. Every record needs a valid owner: records assigned to deactivated users either fail to load or land unassigned, and unassigned pipeline is pipeline nobody works.

    Records owned by deactivated users are a top cause of load failures. Decide the reassignment target before you start.

  5. Scan for PII and regional compliance

    Compliance / DPO 1-2 days

    CRMs hold marketing consent, lawful basis and unsubscribe state. Confirm these fields migrate intact and that consent provenance survives — losing consent records is a regulatory problem, not a data-quality one.

    PII & Compliance Scanner Find regulated fields before they land in a new system
  6. Clean, normalise and archive the pre-state

    Data engineer 2 days

    Normalise country and state values, phone formats, currencies and casing, and standardise all timestamps to UTC. Keep an untouched copy of the raw export — it is your only reference if a mapping decision turns out wrong.

  7. Extract Organizations

    Paginate through /api/v2/organizations using cursor-based pagination. Store all records with their Pipedrive IDs.

  8. Extract Persons

    Paginate through /api/v2/persons. Capture the org_id foreign key for each person.

  9. Extract Deals

    Paginate through /api/v2/deals. Capture person_id, org_id, stage_id, pipeline_id.

Pipedrive → HubSpot specifics

Activities cannot be imported via CSV
Notes, calls, meetings, and tasks have no CSV import path — they require the API.
Fetch field schemas
Call /api/v2/personFields, /api/v2/organizationFields, /api/v2/dealFields, and /api/v1/activityFields to build the custom field hash → label map.

Don't move on until

  • Duplicate rate quantified per object with a merge policy agreed
  • Every record has a valid owner mapped to a target user
  • Relationship integrity verified — no orphaned deals or contacts
03 Field Mapping Map objects, relationships and picklists — in that order. 0/9

Objective A signed mapping spec that covers objects, relationships, picklist values and currency handling.

  1. Map objects and their relationships first

    Solution architect 2-3 days

    Establish how Pipedrive objects correspond to HubSpot objects before any field work. Leads-versus-contacts, accounts-versus-organisations and deal hierarchies differ structurally between CRMs, and a field map built on the wrong object model has to be redone.

    Schema Mapper Opens pre-loaded with the Pipedrive → HubSpot field pair
  2. Generate and then hand-review the field map

    Solution architect 2-3 days

    Auto-match both schemas, then review every row. Look hardest at anything named "type", "source", "stage" or "status", where names match and meanings do not.

  3. Map every picklist value, including retired ones

    RevOps 2 days

    Enumerate all values on both sides — deal stages, lead sources, industries, statuses — and map each explicitly, including values no longer offered but still present on old records. Unmapped values either fail the row or land as blanks that quietly break segmentation.

    Historical records often carry picklist values that were retired years ago and no longer appear in the UI.

  4. Decide currency, amount and date handling

    Finance / RevOps 1-2 days

    If you sell in multiple currencies, confirm how HubSpot stores amounts, exchange rates and dated conversion rates. Recalculating historical deal values at today's rate silently rewrites your revenue history.

    Multi-currency deals re-converted at current rates will not tie to your historical reporting or your finance system.

  5. Determine the load order

    Data engineer 1 day

    Sequence the load so parents exist before children: users, then accounts, then contacts, then deals, then activities and notes. Keep source IDs in custom fields so relationships can be rebuilt by lookup rather than guesswork.

  6. Freeze the spec and sign off

    Project manager 1 day

    Version-control the mapping, walk RevOps and sales leadership through the decisions that change reporting, and get written sign-off before the pilot.

  7. Resolve custom field hashes

    Replace 40-character hash keys with human-readable names using the field schema map.

  8. Flatten multi-value fields

    Extract primary email, primary phone. Store additional values for hs_additional_emails.

    JSON to CSV Converter Flatten nested API responses into a reviewable sheet
  9. Map picklist values

    Convert Pipedrive numeric option IDs to HubSpot string-based dropdown values.

    Data Format Converter Reshape the export into the format HubSpot's importer expects

Pipedrive → HubSpot specifics

Standardize timestamps
Convert date formats to ISO 8601 or Unix milliseconds as required by HubSpot endpoints.

Don't move on until

  • Object and relationship model mapped and reviewed
  • Every picklist value explicitly mapped, including dead values
  • Load order determined so parents always exist before children
04 Test Migration Pilot with related records, not a flat sample. 0/6

Objective A pilot load whose relationships, ownership and roll-up reporting all verify against source.

  1. Configure the HubSpot sandbox to match the agreed model

    Solution architect 3-5 days

    Build the pipelines, stages, custom fields, record types and user roles first. Load into a default configuration and you will only discover the configuration defects at full scale.

  2. Select a connected pilot slice

    Data engineer 0.5 day

    Take complete account trees — 50-100 accounts with all their contacts, deals, activities and files — rather than a flat random sample. Relationship defects are the whole point of a CRM pilot and a flat sample cannot expose them.

  3. Run the load in dependency order with full logging

    Data engineer 1-2 days

    Load users, accounts, contacts, deals, then activities, logging every request against its source ID. Note which failures are transient (rate limits, timeouts) and which are structural (validation, missing parent).

  4. Verify relationships and roll-ups

    RevOps 1-2 days

    Confirm every deal sits on the right account with the right owner and stage, and that pipeline totals per account and per rep match Pipedrive exactly. Roll-up mismatches almost always mean a relationship or currency defect upstream.

    Migration Validation Tool Diff the pilot batch against source before scaling up
  5. Measure throughput and project the full load

    Data engineer 1 day

    Record actual records-per-hour under HubSpot's API limits and extrapolate, remembering activity history usually dominates volume. If the projection exceeds your window, split the load or trim activity scope now.

  6. Let reps work the pilot data

    Sales leadership 2-3 days

    Put two or three reps in the sandbox against their own accounts. They spot missing context, wrong owners and unusable notes far faster than any reconciliation script, and their buy-in is what makes adoption work.

Pipedrive → HubSpot specifics

Timeline tests
Check a sample of high-value deals to verify historical activity appears in the correct order.

Don't move on until

  • Relationships intact across the whole pilot slice
  • Pipeline roll-ups match source for the pilot accounts
  • Reps have worked pilot records and confirmed they are usable
05 Cutover Switch the revenue system with the pipeline intact. 0/6

Objective All in-scope CRM data live in HubSpot, integrations repointed, and reps selling on day one.

  1. Pre-load history ahead of the freeze

    Data engineer 5-10 days

    Load closed deals, historical activities and inactive accounts while Pipedrive stays live. Only open pipeline and the final delta need to move inside the window.

  2. Publish the cutover runbook

    Project manager 1 day

    A timed sequence with owners and abort criteria: freeze, final export, delta load, integration switch, smoke test, go/no-go, rep enablement. Pick a window that avoids quarter-end and month-end close.

  3. Freeze Pipedrive and take the final delta

    RevOps 2-4 hours

    Set Pipedrive read-only and export everything changed since the pre-load. Reps updating deals during an unenforced freeze is the classic way to lose the most recent — and most valuable — pipeline changes.

    A rep who updates a deal in the old CRM during the freeze will lose that update permanently.

  4. Load the delta and reconcile the pipeline

    RevOps 2-6 hours

    Run the delta, then verify open pipeline value and count per rep against Pipedrive before anything else. If the pipeline number is wrong on day one, reps stop trusting the system and never fully come back.

    Migration Validation Tool Confirm the final delta landed before you reopen
  5. Repoint every integration and verify with real records

    IT / integrations 4-8 hours

    Switch marketing automation, quoting, billing, enrichment, dialler and BI connections, then push a live record through each path. An unrepointed integration writing into the old CRM causes divergence that gets harder to reconcile every day.

    Two-way integrations left pointing at the old CRM will keep writing there. Disable them before you switch, not after.

    Cron Expression Builder Schedule the delta syncs that run through the freeze
  6. Go/no-go, then enable the reps

    Project sponsor 1-2 days

    Call the decision explicitly against the exit criteria. Run enablement on real data with their own accounts on screen, and keep Pipedrive read-only rather than cancelled until validation closes.

Don't move on until

  • Historical load complete and reconciled before the freeze
  • All integrations repointed and verified end to end
  • Reps logged in with pipeline visible and correct
06 Validation Prove the revenue numbers tie out, then close the project. 0/9

Objective Reconciled data, forecast parity with pre-migration reporting, and signed acceptance.

  1. Reconcile every object

    Data engineer 2 days

    Compare counts and values across accounts, contacts, deals, activities and files, plus field-level spot checks on a random sample. Produce a single report suitable for audit and for finance.

    Migration Validation Tool Reconcile Pipedrive and HubSpot record-for-record
  2. Tie the pipeline and forecast to baseline

    RevOps 2-3 days

    Rebuild forecast, pipeline coverage and win-rate reporting and compare to pre-migration figures. Every variance needs an explanation — most trace back to stage or currency mapping decisions made in Field Mapping.

    Stage-model changes will legitimately shift historical conversion rates. Restate the baseline rather than chasing the difference as a defect.

  3. Verify ownership, visibility and permissions

    RevOps 1-2 days

    Confirm every record has the right owner and that sharing rules, territories and role hierarchy give each rep exactly the visibility intended. Over-broad visibility in a CRM is a data-protection issue as much as a config one.

  4. Re-profile for field completeness

    Data engineer 1 day

    Compare loaded null rates against the source profile per field. A field that arrived empty while counts matched is the failure counts alone cannot detect.

    Data Profiler Prove field completeness held up through the load
  5. Test automation and integration write-back

    RevOps 2 days

    Fire every workflow, assignment rule, sequence and notification, and confirm each integration writes correctly in both directions. Automation is rebuilt rather than migrated, so it is unproven until observed.

  6. Sign off and schedule decommission

    Project sponsor 1 day

    Get written acceptance against the Discovery criteria, keep Pipedrive read-only for 30-90 days with a final archive export taken, then diarise cancellation so the contract does not auto-renew.

  7. Record counts

    Compare total Organizations/Persons/Deals in Pipedrive vs. Companies/Contacts/Deals in HubSpot.

  8. Rebuild automations

    Re-create Pipedrive automations as HubSpot workflows. Test each one against migrated data.

  9. Monitor for 2–4 weeks

    Run daily spot checks on record counts, association integrity, and activity timelines. Issues surface when users start working with the data.

Pipedrive → HubSpot specifics

Association integrity
Sample 5–10% of records and verify that Deal → Contact → Company chains are intact.
Field-level spot checks
Compare a random sample of 50–100 records field by field.
Activity counts
Per-deal activity count in Pipedrive should match per-deal engagement count in HubSpot.
Owner mapping
Verify that deal, contact, and activity ownership in HubSpot matches the original Pipedrive assignments.
File verification
Confirm attachments are accessible and linked to the correct records.

Don't move on until

  • Full reconciliation report complete across all objects
  • Forecast and pipeline reports tie to pre-migration baselines
  • Acceptance signed and Pipedrive decommission scheduled

Field mapping reference

The field-by-field mapping for each object. Use this as the starting point for your mapping spec.

Pipedrive HubSpot 8 fields
Pipedrive fieldHubSpot fieldNotes
Organizations Companies Direct 1:1 mapping. Address fields may need restructuring.
Persons Contacts Pipedrive allows multiple emails/phones as arrays; HubSpot stores primary email as the dedup key.
Leads Contacts (lifecycle stage = Lead) or HubSpot Leads Pipedrive leads are pre-deal records. HubSpot Leads require Sales Hub Pro/Ent and an existing contact. Alternatively, use lifecycle stage or a lead status property on Contacts.
Deals Deals Pipeline stages must be pre-created in HubSpot. Deal-to-Contact and Deal-to-Company associations require the Associations API.
Activities Engagements (Notes, Calls, Meetings, Tasks) Each activity type maps to a different HubSpot engagement endpoint. Activity → Deal → Person associations must be rebuilt individually.
Products Products / Line Items Pipedrive products attached to deals become HubSpot line items associated with deals.
Notes Notes (Engagement) Notes are a subtype of engagement in HubSpot.
Files / Attachments Files (via File Manager API) Must be downloaded from Pipedrive and re-uploaded to HubSpot. No cross-platform file reference transfer.

Risk matrix

Per-object risk for this pair. Plan extra validation around anything marked high.

ObjectRiskNotes
Organizations → Companies low Direct 1:1 mapping; address fields may need restructuring
Persons → Contacts medium Multi-value email/phone arrays must be flattened; HubSpot deduplicates on single primary email
Deals → Deals medium Pipeline stages must be pre-created; currency needs conversion; timestamps require Unix ms format
Leads → Contacts/Deals medium Routing decision required — HubSpot Leads need Sales Hub Pro/Ent or use lifecycle stage on Contacts
Activities → Engagements high Single entity must split across four HubSpot endpoint types with different payload schemas
Notes → Notes medium HTML content may exceed HubSpot's 65,536 character limit; truncation or splitting needed
Files/Attachments high Three-step per-file process with no batch support; Google Drive files excluded from Pipedrive export
Custom Fields → Properties medium Monetary fields need per-attribute currency handling; set fields need label-based option mapping
Products → Line Items low Direct mapping when associated with deals via line item creation
Deal Participants medium Role labels require HubSpot Professional or Enterprise for custom association labels

The hard parts

What makes this specific migration difficult, beyond the mechanics.

Association Rebuilding

HubSpot requires explicit API calls to link Contacts to Companies, Deals to Contacts, and Engagements to all parent records. Missing any link breaks timeline visibility.

Activity Type Routing

Pipedrive's single Activity entity must be classified and routed to four separate HubSpot engagement endpoints — Notes, Calls, Meetings, and Tasks.

Rate Limit Management

Token-based daily budgets on Pipedrive and 190-request/10-second burst limits on HubSpot require coordinated throttling with exponential backoff on both sides.

File Attachment Workflow

Files must be individually downloaded from Pipedrive, re-uploaded to HubSpot's File Manager, then linked to records via Note engagements with hs_attachment_ids.

Custom Field Hash Resolution

Pipedrive's 40-character hex hash keys differ per account across 16 field types and must be resolved via the Fields API before any transformation.

Tools used in this playbook

All free, all run entirely in your browser — nothing is uploaded.

FAQ

Can I migrate Pipedrive activities and notes to HubSpot using CSV import?

No. HubSpot's CSV import supports Contacts, Companies, and Deals, but not activities, notes, calls, or meetings. These must be migrated via HubSpot's Engagements API, which requires creating each engagement type through its dedicated endpoint and associating it with the correct records using typed association IDs.

What are Pipedrive's API rate limits for data extraction?

Pipedrive uses a token-based rate limiting system. Each account gets a daily budget of 30,000 base tokens × plan multiplier × seat count. Each endpoint consumes a different number of tokens based on complexity. Burst limits apply on a rolling 2-second window per API token. API v2 endpoints consume approximately 50% fewer tokens than v1.

Do I need HubSpot Enterprise to migrate custom fields from Pipedrive?

Custom fields can be migrated to any HubSpot tier as custom properties on standard objects. However, if you need HubSpot Custom Objects — separate entity types with their own records and associations — you must have at least one Enterprise-tier Hub subscription. The default limit is 10 custom object definitions per account.

How long does a Pipedrive to HubSpot migration take?

Timeline depends on volume and complexity. A small instance (under 5,000 records, no activities) can be migrated in 1–2 days via CSV. A mid-size migration (10,000–50,000 records with activities, notes, and files) typically takes 3–7 days via API. Enterprise migrations with 100k+ records and complex associations may take 1–2 weeks including validation.

How should I map Pipedrive leads in HubSpot?

Map them to HubSpot Leads only if your team will use the HubSpot prospecting workflow (requires Sales Hub Professional or Enterprise). Otherwise, convert Pipedrive leads into Contacts with a lifecycle stage or lead status property, optionally creating early-stage Deals if the business already qualifies inside the deal pipeline.

Or skip all of this and let us handle it

Book a 30-minute call and we'll scope your migration in a single session.