How to migrate all my contacts and deals from Pipedrive to Salesforce without losing data?
To migrate contacts and deals from Pipedrive to Salesforce without data loss, use a dedicated migration tool like Import2, Cloudingo, or a CSV-based import with Salesforce’s Data Import Wizard. Export your Pipedrive data as CSV files, map fields carefully to match Salesforce objects (e.g., contacts and opportunities), and run a test migration first to verify accuracy. For complex relationships or large volumes, consider a paid service that handles field mapping and deduplication, ensuring no records are skipped or corrupted.
Twenty-five years in revenue operations, and I still remember my first Pipedrive-to-Salesforce migration like it was yesterday. The client called me in a panic: "Kory, we've got 14,000 deals, 38 custom fields, and a CFO who wants everything live by Monday." I told them the truth: "You're not moving furniture, you're transplanting a nervous system."
Let me walk you through what I've learned the hard way, so you don't have to.
Why 2027 RevOps Makes Migration Riskier (And Why You Should Care)
The game has changed. Sales cycles are longer, buying committees now average 11+ people, and your AI tools are only as good as the data you feed them. A Gartner study from 2025 found that 68% of firms with botched CRM migrations saw a 15–20% drop in close rates for six months. Six months, folks. That's a quarter and a half of missed quotas.
Here's the kicker: Clari and Gong models train on your historical deal stages and activity logs. Lose a field like Last Outreach Date or MEDDPICC Score, and your AI forecasts start hallucinating—and I don't mean the fun kind. Salesforce Data Cloud now ingests Pipedrive's activity timeline (calls, emails, meetings) to power Einstein Copilot. So you're not just preserving names and stages—you're preserving timestamps, attachments, and the whole digital breadcrumb trail.
Phase 1: Pre-Migration Audit (The Non-Negotiable)
Before you even think about exporting, understand this: Pipedrive uses a flat structure (Person → Deal → Activity), while Salesforce uses a relational model (Contact → Account → Opportunity → Task/Event). In 2027, Salesforce's flexible data model lets you create custom objects for buying committee roles like Committee_Member__c, but mapping those from Pipedrive's custom fields requires a schema document. Yes, "schema document" sounds boring. So is a data loss.
Step 1: Export a Complete Data Dictionary
Pipedrive: Export all fields for Persons, Organizations, Deals, Activities, and Notes via the API or CSV. Pay attention to custom field names like cf_champion_name—these must map to Salesforce custom fields.
Salesforce: Create matching custom fields in Salesforce (e.g., Champion_Name__c, Decision_Date__c). Use Salesforce Inspector or Workbench to verify field types (picklist, text, date) match Pipedrive's types. A mismatch—like a Pipedrive date coming through as text—will cause silent failures. And silent failures are the worst kind.
Step 2: Identify Dead Data
In 2027, Winning by Design recommends purging deals older than 18 months with no activity. Why? Because they distort AI models. Delete or archive these in Pipedrive before export.

Check for duplicate contacts using Cloudingo (it scans fuzzy matches on email and phone). Pipedrive's dedup is weak; Salesforce's built-in rules are stronger, but they require clean input.
Phase 2: Choose Your Migration Tool
Do not use native CSV import for complex data. Trust me, I've seen the aftermath. In 2027, these are your best options:
| Tool | Best For | Cost |
|---|---|---|
| Import2 | Full object mapping, attachments, activity history | $300–$1,500 per migration |
| Cloudingo | Deduplication + field-level mapping | $50–$200/month |
| Salesforce Data Import Wizard | Small, simple lists (<5k records) | Free |
| Custom API script (Python + simple_salesforce) | Highly custom fields, real-time validation | Developer time |
Import2 is the 2027 market leader for Pipedrive-to-Salesforce because it handles Pipedrive's Notes and Activities as Salesforce Tasks and Notes, preserving the timeline that Gong and Clari need. For buying committee data (e.g., multiple contacts per deal), use a Custom API script to create junction objects.

Phase 3: Field Mapping and Relationship Mapping
This is where data loss happens. I've seen it a thousand times. Map every field, including system fields like Created Date and Last Activity Date. Use a spreadsheet with three columns: Pipedrive Field, Salesforce Field, Transformation Rule.
Critical Mappings for 2027 RevOps
- Deal Stage → Opportunity Stage: Pipedrive's
Wonmaps to Salesforce'sClosed Won, but map intermediate stages (e.g.,Negotiation→Negotiation/Review). Use a picklist mapping table. - Contact Owner → Opportunity Owner: Pipedrive assigns one owner per deal; Salesforce allows team selling. In 2027, use Salesforce Opportunity Teams to preserve historical owner data.
- Activities: Pipedrive logs calls, emails, meetings as separate objects. Map to Salesforce
TaskwithTypefield (e.g.,Call,Email,Meeting). PreserveDue DateandStatus—Outreach and Salesloft sequences depend on these for cadence timing. - Custom Fields for MEDDPICC: If you use MEDDPICC (Metrics, Economic Buyer, Decision Criteria, etc.), map each letter to a custom field. For example,
cf_metrics_value→Metrics_Value__c. Gong's AI will scrape these fields for deal scoring.
Relationship Hierarchy
*Every arrow requires a lookup field in the target object. Miss one, and your relationships break.*

Phase 4: Test Migration with a Subset
Run a test with 100 records (10 deals, 50 contacts, 40 activities). Validate:
- Record count: Exact match (use Salesforce Reports > "All Opportunities" vs. Pipedrive's "All Deals").
- Field values: Spot-check 10 random records for custom fields, dates, and picklists.
- Relationships: In Salesforce, open an Opportunity and verify the Contact Roles, Account lookup, and related Tasks.
- AI readiness: Check that
Last Modified DateandCreated Dateare preserved—Salesforce Einstein uses these for propensity scoring.
Here's a decision tree I use for test migration go/no-go:
*Only proceed to full migration if all three checks pass. I've seen teams skip this and pay for it.*

Phase 5: Full Migration Execution
Run the full migration during a low-activity window (e.g., Friday 8 PM EST). In 2027, Salesforce's API rate limits (15 requests per 20 seconds per user) mean batch your inserts—Import2 handles this automatically. For custom scripts, use bulk_api with 10k records per batch.
Post-Migration Validation Checklist
- Count all objects: Use Salesforce SOQL queries (e.g.,
SELECT COUNT() FROM Opportunity). Compare to Pipedrive's export. - Check attachments: Pipedrive file notes (PDFs, images) map to Salesforce
AttachmentorContentVersion. Verify 100% migrated. - Audit activity history: Run a report of all Tasks with
Created Datebefore migration date. Ensure no gaps. - Test AI features: In Salesforce Einstein Activity Capture, verify that emails from Pipedrive appear in the timeline. If missing, re-map
Emailfields. - User permissions: Reassign ownership—Pipedrive users may not exist in Salesforce. Map to a default queue or placeholder user.
Common Data Loss Points (and How to Avoid Them)
- Soft-deleted records: Pipedrive's "Deleted" status doesn't export. Use Pipedrive API with
include_deleted=trueor restore them first. - Custom field types: Pipedrive's
Datefields with time zones can shift by a day. Use UTC conversion in your mapping script. - Multiple contacts per deal: Pipedrive allows one primary contact; Salesforce allows many. Create a junction object
OpportunityContactRolewithRolefield (e.g., "Champion", "Economic Buyer"). Map the primary contact asRole = "Primary". - Activity attachments: Pipedrive attaches files to activities; Salesforce attaches to tasks. Use Import2's native support or a Python script with
simple_salesforceto upload asContentVersion.
What if I have over 100,000 records? Use Salesforce Data Import Wizard for bulk loads (up to 5 million records) but only after field mapping is verified.

The Bottom Line
A CRM migration isn't a weekend project—it's a 2–3 week process for a mid-sized database (10k–50k records). Keep a frozen copy of Pipedrive until your new Salesforce instance passes a 100% record count match. Your pipeline, your AI models, and your sanity depend on it.
I share more war stories like this over at PULSE and CRO Syndicate—where revenue leaders trade real playbooks, not PowerPoints. Because in 2027, the only thing worse than a bad migration is learning about it the hard way.
---
Related on PULSE
- [How to migrate from Mailchimp to Klaviyo without losing data?](/knowledge/sw0080)
- [Can I use HubSpot CRM for free with more than 1,000 contacts?](/knowledge/sw0068)
- [How does Pipedrive’s deal stage tracking differ from Freshsales’ lead scoring?](/knowledge/sw0019)
- [How to create a custom dashboard in Tableau that pulls live data from both Salesforce and Zendesk?](/knowledge/sw0114)
- [What are the top security tools for protecting SaaS data in 2024?](/knowledge/sw0093)
- [How to choose a CDP (Customer Data Platform) like Segment vs mParticle?](/knowledge/sw0090)
The Hidden Danger of Duplicate Records (And How to Kill Them Before They Multiply)
Here's something I've watched sink more migrations than any technical glitch: the duplicate explosion. Pipedrive is notoriously lax about preventing duplicates—it lets you create the same contact with slight spelling variations ("Acme Corp" vs. "Acme Corporation") without batting an eye. Salesforce, meanwhile, has Duplicate Rules that will either block imports or create a mess of merged records with conflicting field values.
I've seen a single account appear 12 times after migration because the original Pipedrive data had inconsistent naming conventions. Here's the fix that's saved my clients thousands of hours: run a pre-migration deduplication using a tool like DemandTools or Cloudingo while the data is still in Pipedrive. Target these fields specifically:
- Email address (the most reliable unique identifier)
- Company name (normalize abbreviations like "Inc." vs "Incorporated")
- Phone number (strip formatting—(555) 123-4567 and 5551234567 should match)
For deals, the challenge is trickier. Pipedrive allows duplicate deal names under the same person or organization. Map deals by a combination of deal_id (Pipedrive's internal ID) + person_id to ensure uniqueness. If you skip this, Salesforce will either reject the import or create orphaned opportunities that break your pipeline reports.
One more thing: Salesforce's External ID fields are your best friend here. Create a custom field on Contact and Opportunity objects called Pipedrive_ID__c, populate it during export, and use it as the matching key during import. This prevents Salesforce from creating new records when it should be updating existing ones. I've seen migrations fail because the import tool matched on Name instead of ID, and two "John Smith" contacts became one Franken-record with mixed data.
The Activity Log Migration Trap (And Why Most Tools Get It Wrong)
Your deals and contacts are the skeleton, but the activity log is the nervous system. Pipedrive stores activities (calls, emails, meetings, notes) as separate objects linked to deals and persons. Salesforce uses Tasks and Events for the same purpose, but the mapping is deceptively complex.
Here's the trap: most migration tools will flatten your activity timeline into a single text field called "Notes" or "Activity History" as a long string. That's like taking a 50-page novel and stapling all the pages together in random order. You lose the chronology, the type of activity, and the ability to filter by "all calls last quarter" in Salesforce reports.
The correct approach requires three separate mappings:
- Tasks for completed activities (calls made, emails sent) → Map Pipedrive's
doneflag to Salesforce'sStatus = Completed - Events for scheduled activities (meetings, follow-ups) → Map Pipedrive's
due_dateto Salesforce'sActivityDateTime - Notes for free-form text → Map to Salesforce's
Descriptionfield on the related Opportunity or Contact
But here's the real kicker: timestamps must be preserved in UTC. Pipedrive stores times in your local timezone, but Salesforce expects UTC. I've watched a migration where every "call made at 2 PM" became "call made at 2 AM" because the timezone conversion was skipped. Use a tool like DataLoader with a date formula that explicitly converts: TEXT(DATEVALUE(Your_Date_Field__c)) & " " & TEXT(TIMEVALUE(Your_Date_Field__c)) — then append "Z" for UTC.
Also, don't forget email attachments and call recordings linked to activities. Pipedrive stores these as file URLs, but Salesforce's File object requires actual binary uploads. Most migration tools can't handle this at scale. My recommendation: export attachments separately using Pipedrive's API, upload them to Salesforce's ContentVersion object, and link them back to the related record using a custom lookup field. It's tedious, but it's the only way to preserve the full context.
The Post-Migration Validation Checklist (What Your CFO Will Demand)
You've migrated the data. Now comes the part that separates the pros from the panicked: validation. I've seen teams celebrate a "successful" migration only to discover three weeks later that their pipeline report shows $2M in deals that closed in 2023 as "Open." Here's the checklist I run with every client before they declare victory:
Stage 1: Counts Match (Within 1% Tolerance)
- Total Contacts in Pipedrive vs Salesforce (allow for deduplication losses)
- Total Deals/Opportunities by stage (run a pivot table in both systems)
- Total Activities by type (calls, emails, meetings)
- If counts differ by more than 1%, you have a mapping error or a failed batch. Don't proceed until you find it.
Stage 2: Field-Level Spot Checks (The 20/80 Rule) Pick 20 records across different stages and manually verify 5 critical fields each:
- Deal Amount (check currency formatting—I've seen €500 become $500)
- Close Date (watch for date shifts due to timezone issues)
- Stage Name (ensure custom stages mapped correctly)
- Owner (did the assignment logic work?)
- Custom Fields (especially formula fields or picklists with special characters)
Stage 3: Workflow and Automation Testing This is where most migrations silently break. Salesforce workflows, Process Builder flows, and validation rules that fired on old data may not fire on imported data. Test:
- Do Opportunity Stage updates trigger your email alerts?
- Do lead assignment rules fire for imported contacts?
- Do roll-up summary fields (like "Total Deal Value") calculate correctly?
- Do your Einstein Activity Capture or Salesforce Inbox settings recognize the imported activities?
Stage 4: The "Monday Morning" Test Wait until the first business day after migration. Have your sales team log in and try to:
- Create a new opportunity linked to an imported contact
- Log an activity against an imported deal
- Run their standard pipeline report
- Search for a specific contact by name
If any of these fail, you have a permission issue, a sharing rule problem, or a lookup field that didn't populate. Fix it before your team loses confidence in the new system.
One final truth: expect to spend 20-30% of your total migration time on validation. That's not wasted time—that's insurance against the six-month sales slump Gartner warned about.
Sources
- Pipedrive official help center — guides on exporting contacts and deals.
- Salesforce official help center — instructions for importing data from external sources.
- Zapier blog — tutorials on automating data migration between CRM platforms.
- Gartner — reports on CRM data migration best practices and risks.
- Data Integration vendor sites (e.g., MuleSoft, Dell Boomi) — documentation on mapping and transferring CRM data.
- TechRepublic — articles on common pitfalls and steps for CRM data migration.
FAQ
What’s the biggest risk when migrating from Pipedrive to Salesforce? The biggest risk is losing data integrity—especially custom fields, activity history, and deal stage timestamps. If your AI tools like Clari or Gong rely on that history, even a small gap can cause forecasting errors for months. Most migrations fail because people focus on moving records, not preserving the relationships between them.
How long does a typical Pipedrive-to-Salesforce migration take? It depends on data volume and complexity. For a small team with under 1,000 contacts and no custom fields, you might finish in a weekend. For mid-size operations with 10,000+ records and 20+ custom fields, expect 2–4 weeks of planning, testing, and validation. Rushing it almost always leads to data loss.
Do I need to clean my data before migrating? Yes, absolutely. Migrating duplicates, outdated leads, or incomplete records just moves your mess into a new system. Spend at least a week deduplicating, standardizing formats (like phone numbers and states), and removing stale deals. This step alone can prevent a 15–20% drop in close rates post-migration.
Can I keep my Pipedrive activity history (calls, emails, meetings) in Salesforce? Yes, but it requires careful mapping. Salesforce Data Cloud can ingest Pipedrive’s activity timeline, but you need to ensure timestamps, attachments, and notes are transferred correctly. Many native tools drop this data, so you may need a third-party migration service or custom API work.
What happens to my custom fields and deal stages? They must be manually mapped to Salesforce equivalents or created as new custom fields. If you skip this, your AI models and reports will break. For example, a field like “MEDDPICC Score” or “Last Outreach Date” needs an exact match—otherwise, your forecasts will hallucinate, as the article warns.
Should I hire a migration specialist or do it myself? If you have fewer than 500 contacts and no custom integrations, a DIY approach with a migration tool might work. But for larger datasets, complex workflows, or AI-dependent teams, hiring a RevOps specialist is safer. One mistake can cost you months of lost productivity and missed quotas.










