Pipedrive Platinum Partner5.06 reviews on the Pipedrive Marketplace150+ implementations, 100+ clientsTop 8 partner worldwide, July 2026

Products

Migration without data loss: a field manual

Treat this as procedure, not advice. Preconditions first, then eight steps in a fixed order, each with the check that closes it. If a check fails, you stop and fix it there. You do not carry a failed step into the next one.

Spec sheet
Preparation
1 to 3 weeksMapping and dry runs. The import itself is hours.
Freeze window
One weekendOld system read only, new system not yet live.
Rollback
Source stays liveRead only for at least one quarter after cutover.
Verdict
Counts or nothingA step is done when a number proves it, not when it feels done.

Preconditions

Do not start the procedure until all six are true. Each one that is false will surface later as rework, and it will surface after the data has moved.

  1. A full export of the source system exists, per object, in a format you can reopen. Not a report, not a filtered view. Everything.
  2. The target account has its pipelines, stages and custom fields already built. Migration into an unconfigured account creates fields on the fly and you inherit the mess. See custom fields for how to decide that up front.
  3. A written field map exists: source field, target field, transformation, owner of the decision. Anything unmapped is explicitly marked as dropped, with a name against it.
  4. Every source record has a stable identifier that will be written into a dedicated field in Pipedrive. This is what makes reconciliation and a second pass possible.
  5. Users exist in the target account with the same names, so ownership maps cleanly. An unmapped owner defaults to whoever runs the import, and that ruins every report by rep.
  6. A freeze window is agreed with the business, in writing, with a date. Not a preference. A date.

The procedure

Step 1. Profile the source

Count everything before you touch anything. Records per object, records per owner, records per status, empty rates per field. Write the counts down.

Verify: you have a single table of source counts, dated, that every later step is compared against. If you skip this, you have no definition of success.

Step 2. Resolve the data model

Map source objects onto the Pipedrive model of leads, people, organisations, deals and activities. Custom objects and record types in the source have no direct equivalent, so each one becomes a field, a pipeline or a dropped concept. Decide which, per object. The data model entry sets out the target shape.

Verify: no source object is unassigned, and every drop is recorded with a reason.

Step 3. Clean at source, not in flight

Deduplicate, normalise phone numbers and close dead records before the export, in the system that still owns them. Cleaning during the import means your reconciliation counts will never match and you will not know whether a gap is a bug or a cleanup.

Verify: re-run the step 1 profile. The delta between the two counts is explainable line by line.

Step 4. Dry run into a sandbox

Import a representative slice into a separate account or a test pipeline. Take the awkward cases deliberately: the customer with eight contacts, the deal with forty activities, the record with accented characters and a comma in the company name.

Verify: open ten records by hand and compare them field by field against the source. Not a sample of one.

Step 5. Import in dependency order

Organisations first, then people, then deals, then activities, then notes and files. Each object carries the source identifier. Each object references its parent by that identifier rather than by name.

Verify: after every object, count. Records created plus records skipped must equal records submitted. A missing row that nothing reports is the failure mode this step exists to catch.

Step 6. Reconcile relations

Counts matching does not mean relations survived. Query for the orphans directly: deals without an organisation, people without an organisation, activities without a deal, organisations with zero people.

Verify: each orphan filter returns zero, or returns a number you can explain from the source. Explainable is acceptable. Unexplained is not.

Step 7. Reconcile value

Sum open pipeline value per stage, and won value per quarter, in both systems. This is the check that catches currency mistakes, decimal separators read as thousands, and deals landing in the wrong pipeline.

Verify: totals match to the cent, or the difference is traced to named records. A rounding excuse is not a trace.

Step 8. Cut over

Freeze the source, run the final delta import for everything created during the dry run period, then switch the team. Set the source to read only the same day, and keep it that way for a quarter.

Verify: five reps each open their own top three deals on day one and confirm what they see. Their confirmation is the acceptance test, not yours.

Reconciliation table

StepMeasurePass condition
1Source counts per objectWritten down and dated
3Counts after cleanupDelta explained line by line
5Created plus skippedEquals submitted, per object
6Orphan filtersZero, or explained from source
7Open and won valueMatches to the cent
8Rep confirmationFive reps, three deals each

When this manual is more than you need

One spreadsheet of a few hundred rows does not need eight steps. Clean the columns, split the file per object, use the standard importer and check twenty records by hand. That route is written up in the spreadsheet guide, and it is a morning of work, not a project.

The full procedure earns its cost when the source is a real CRM with relations, history and attachments, which is the case in a HubSpot move or a Salesforce move. It also earns it when more than one source is merging into one target, because then reconciliation is the only thing standing between you and a duplicate problem on day one.

Last note, and it is the one people ignore. Budget more time for mapping than for importing. The import is a machine operation. The mapping is a set of business decisions about what your company will remember, and those decisions cannot be made in the freeze window.

Questions

What counts as data loss in a CRM migration?

Three things, in order of how often they happen: relations that silently drop, so a deal arrives without its organisation; history that never gets exported at all, usually emails and file attachments; and field values that survive the move but land in the wrong field. Only the first one is visible in a record count.

In what order should objects be imported?

Organisations, then people, then deals, then activities, then notes and files. Every object depends on the one above it, so importing out of order produces orphans that have to be relinked by hand afterwards.

Should the old CRM stay available after cutover?

Yes, read only, for at least one quarter. It is the only reference you have when a rep says a record looks wrong. Cancelling the old licence on cutover day saves one month of fees and costs you the ability to answer questions.

How long does a migration take?

Mapping and dry runs take longer than the import itself. For a mid sized account expect one to three weeks of preparation and a cutover measured in hours. A migration that is planned in a day is a migration that will be repaired for a month.

Can you migrate without any downtime?

Not honestly. There is always a freeze window in which the old system is read only and the new one is not live yet. You can make it short, usually a weekend, and you can plan around it. A migration with zero freeze means two systems accepting writes, and that is how records diverge.

Next step

Not sure where your setup stands?

Answer 10 questions and get a readiness score on screen. The full advice lands in your inbox.

Built by a Pipedrive Platinum Partner, rated 5.0 from 6 marketplace reviews.