CRM data migration is the controlled move of your contacts, companies, deals, notes and activity history from one system, or from spreadsheets, into a new platform, with every field mapped, every duplicate resolved and every record counted on arrival. If you are still choosing the platform itself, start with our guide to CRM software in South Africa, then come back here to plan the move.
The risky part is rarely the import button. It is the decisions made before it: which records deserve to move, where each old field lands, and what happens to personal information that you are no longer entitled to keep. Get those right and the load itself takes an afternoon.
Quick Answer
A safe CRM data migration follows seven stages: audit the source, clean and delete, map every field, choose an import route that fits your record count, test on a small sample, load and reconcile the counts, then cut over with the old system kept read-only. In South Africa, add four POPIA checkpoints: retention (s14), security of the export (s19), a written contract with the new vendor where it processes records on your behalf (s21) and a permitted ground if the data is transferred abroad (s72).
Not sure your data is ready to move?
Send us your current field list and pipeline stages and we will look at where records are most likely to be lost.
Get a free consultationWhat Does CRM Data Migration Involve, Stage by Stage?
A CRM data migration plan has seven stages, and skipping any one of them is how records go missing quietly. Use this as your working crm data migration checklist:
| Stage | What you produce | Typical failure if skipped |
|---|---|---|
| 1. Audit the source | A list of every system and spreadsheet holding customer data, with an owner for each | A second spreadsheet on someone's laptop never moves |
| 2. Clean and delete | A reduced, deduplicated export | Old junk and duplicates are imported into a clean system |
| 3. Map fields | A source-to-destination document | Columns land nowhere, or in the wrong field |
| 4. Choose a route | A decision on file import, mapping tool, API or managed service | An import fails on a file or row limit mid-project |
| 5. Test | A small sample load with checked results | Mapping errors reach the full database |
| 6. Load and reconcile | Record counts that match, source versus destination | Nobody notices that a segment is short |
| 7. Cut over | A freeze date, a read-only old system and re-pointed integrations | Reps keep working in two systems |
Pipedrive's own guide lists five routes for the load itself: spreadsheet upload, third-party mapping tools, API connections, managed migration services and manual entry. Stages 1 to 3 and 5 to 7 apply whichever route you pick.
Why Should You Clean Data Before You Migrate It?
Cleaning before the move means resolving duplicates and deleting records you no longer need while the full history still sits in one system, which is far easier than untangling them after import. Pipedrive's migration guide makes the same point: remove duplicates before migration, and keep a backup you can revert to.
Start with the unique identifier your new CRM will match on. HubSpot uses email address for contacts and company domain name or Record ID for companies. Zoho CRM matches on email for Leads and Contacts and on Account Name for Accounts. If your source has blank or shared email addresses, such as one info@ address shared by several contacts, decide now how they will be treated. Our duplicate contact cleanup guide covers merge rules in detail.
This is also where crm data cleanup doubles as compliance work. POPIA section 14(1) says records of personal information must not be retained any longer than necessary for the purpose they were collected or subsequently processed, unless an exception applies, such as a legal requirement, a lawful business need or a contract.
A migration is the natural moment to apply your retention rule instead of carrying every dormant record into a new system. Where you no longer have authority to keep a record, section 14(4) calls for it to be destroyed, deleted or de-identified as soon as reasonably practicable, and destruction or deletion must prevent reconstruction "in an intelligible form". A deleted spreadsheet left in a shared folder is not the end of it.
Takeaway: Clean First
Merge duplicates and delete expired personal information in the source system before you export. Importing first and cleaning later means paying to move records you are not entitled to keep, then hunting for them in a larger database.
How Do You Map Fields So Nothing Is Lost?
A field map is a document that sends every column in your source to exactly one of three places: an existing field in the new CRM, a new custom field, or a recorded decision to leave it behind. Field mapping is where most silent data loss happens, because an unmapped column does not raise an error. It simply never arrives.
Build the map as a table before touching the import tool:
| Source column | Destination | Transform needed | Decision |
|---|---|---|---|
| Full name | First name + Last name | Split on the first space; review double-barrelled names by hand | Map |
| Cell number | Mobile phone | Restore the leading 0 or convert to international format; store as text | Map |
| Source ("how did they find us") | Lead source (picklist) | Collapse free-text spellings to the picklist values | Map |
| Notes from 2017 | Note on contact | None | Exclude, subject to your retention rule |
| Spouse birthday | New custom field | Date format | Create field only if a workflow will use it |
Two Excel behaviours are worth planning for, because South African numbers trigger the first one by default. First, Excel removes leading zeros from numerical text and converts them to numbers, so a local mobile number such as 082 123 4567 can arrive as 821234567. Microsoft's guidance is to format the column as text before you paste or import, or to prefix entries with an apostrophe.
Second, Excel has a maximum precision of 15 significant digits, so any longer identifier, such as a long account or policy reference, has digits past the fifteenth rounded down to zero. Keep those columns as text from the first export.
Settle your naming rules while you map. A consistent convention for custom fields is much cheaper to set now than to retrofit across reports later; see our field naming convention post.
Which Import Route Fits Your Record Count?
A file import is the right route when your largest table fits inside your CRM edition's per-file row and size caps; a mapping tool, API connection or managed service is the alternative once it does not. A limit discovered halfway through a load costs more than reading the help page first. These are the figures on HubSpot's import help, Zoho CRM's import help and Pipedrive's migration guide, checked in October 2026; confirm them against your own edition before you plan.
| Platform and tier | Published per-file limit | Undo or revert window | Best for (row limit only) |
|---|---|---|---|
| HubSpot, free tools | 20MB per import file | Not verified here; check HubSpot's import help | Files up to 20MB |
| HubSpot, paid tiers | 512MB and 1,048,576 rows per file | Not verified here; check HubSpot's import help | Up to 1,048,576 rows per file, subject to the 512MB cap |
| Zoho CRM Free | 1,000 rows per file | 30 days | Very small lists only |
| Zoho CRM Standard | 20,000 rows per file | 30 days | Lists up to 20,000 rows per file, larger ones in batches |
| Zoho CRM Professional | 50,000 rows per file | 30 days | Up to 50,000 rows per file, subject to the 25 MB cap |
| Zoho CRM Enterprise | 100,000 rows per file | 30 days | Up to 100,000 rows per file, subject to the 25 MB cap |
| Zoho CRM Ultimate | 200,000 rows per file | 30 days | Up to 200,000 rows per file, subject to the 25 MB cap |
| Pipedrive, spreadsheet import | Not stated in the guide we read | 48 hours via Revert, per Pipedrive's migration guide | Check Pipedrive's current import limits before you plan |
Worked example: a hypothetical 45,000-row contact table
On Zoho CRM Standard (20,000 rows per file), 45,000 / 20,000 = 2.25, so you need 3 files. On Zoho CRM Professional (50,000 rows per file) it fits in 1 file. On a HubSpot paid tier (1,048,576 rows per file) it also fits in 1 file.
A hypothetical 8,000-row table on Zoho CRM Free (1,000 rows per file) takes 8 files, which is the point to compare the cost of batching with the cost of a higher edition for the migration month. Splitting files is fine; just split on a clean boundary, such as by owner or region, and reconcile each batch separately.
The rollback rule matters as much as the row limit. Zoho CRM lets you undo an import for 30 days, after which the import is automatically confirmed and cannot be undone. Zoho's undo permanently deletes the imported data, and undoing imported Contacts also removes the imported Accounts linked to them, and the reverse. Pipedrive's migration guide says a spreadsheet import can be reverted within 48 hours.
Treat undo as a deletion tool with a deadline, not a free review period: find problems inside the window, then decide whether to undo and reload. File size and column caps apply as well: Zoho CRM also limits each import file to 25 MB and 500 columns, so a 50,000-row file with wide rows can fail on size before it reaches the row limit.
If you are still deciding between platforms, our comparisons of HubSpot and Pipedrive and of Zoho CRM and Bigin cover fit for South African businesses. For what the whole project costs beyond the licence, see CRM implementation cost.
Unsure whether one file or several is the safer route?
Tell us your record count, your CRM edition and your timeline, and we will assess whether your plan fits inside the published limits.
Request a timeline and fit checkHow Do You Test and Verify a CRM Migration Before Cutover?
Testing a migration means loading a small, deliberately messy sample first and checking it field by field, because that is the cheapest point to find a mapping error. Pipedrive's guide puts it directly: a small test import helps identify mapping errors, duplicate records and workflow issues before they affect the complete CRM database.
Choose the sample to include your worst cases rather than your best: a contact with no email, a company with two spellings, a record with a long note, a number with a leading zero, a deal with several products. Then check four things on the test load:
- Field landing: open a handful of records and compare every field against the source, not just the name and email.
- Duplicate behaviour: load the same file twice and confirm the platform skips or updates rather than creating copies. HubSpot warns that blank cells do not clear an existing value when updating, so a re-import will not wipe a field you meant to empty.
- Relationships: confirm contacts sit under the right company and deals under the right contact.
- Dates and owners: confirm created dates, deal stages and record owners came through as intended.
After the full load, reconcile counts: contacts in the source versus contacts in the destination, per batch, and the same for companies and open deals. A mismatch you can explain, such as rows excluded on purpose, is fine. A mismatch you cannot explain is a stop sign, and where your platform offers a rollback window, finding it early is what keeps that option open.
Takeaway: Reconcile Early, While Rollback Is Still Possible
After a full import, compare record counts per object and per batch against the source. Zoho CRM allows an import to be undone for 30 days, and undoing deletes the imported records; Pipedrive's migration guide says a spreadsheet import can be reverted within 48 hours. Check your own platform's rule before you load.
What Does POPIA Require When You Move Customer Data?
POPIA applies to a migration exactly as it applies to day-to-day processing, so a move has four checkpoints beyond the technical ones: how long you keep records, how you secure the export, which contract binds the new vendor, and where the data will be hosted. This is general information, not legal advice, and the section wording below is taken from a reproduction of the Act rather than the Gazette; the Act and the Information Regulator's guidance are the authorities.
- Retention (s14). Apply your retention rule before export, as covered above, so you do not carry forward records you are no longer authorised to hold.
- Security of the export (s19). Section 19(1) requires appropriate, reasonable technical and organisational measures to prevent loss of, damage to or unauthorised destruction of personal information, and unlawful access to or processing of it. The section is general, not specific to migrations, but a migration file is a full copy of your customer base. Treat the export like production data: restrict who can open it, avoid emailing it around, and delete working copies after the load.
- The new vendor (s21). Where the CRM vendor processes personal information on your behalf, section 21(1) requires a written contract that obliges the operator to maintain the section 19 security measures. See our post on the POPIA operator agreement.
- Hosting outside South Africa (s72). If personal information is transferred to a foreign third party, which may be the case when the new platform hosts data abroad, section 72(1) allows the transfer only on one of its listed grounds, including that the recipient is bound by a law, binding corporate rules or a binding agreement providing adequate protection, or that the data subject consents. Our cross-border transfer guide explains how to document this.
Moving a contact into a new tool does not create a new marketing permission. Whatever basis or consent status a contact had before the move has to travel with the record, which is why your field map should include an opt-in status, a date and a source for each contact. Our CRM data governance checklist shows how to keep that audit trail.
What Breaks After Cutover, and How Do You Catch It?
After cutover, the things most likely to break are the forms, integrations and reports still pointing at the old system, not the records themselves. Cutover is the day the new system becomes the only place your team works; your website forms, ad lead capture, email platform, chat tools and reporting keep sending data to the old system until you move them.
Work through the connections one at a time. Re-point website enquiry forms, and test one live submission end to end. Check that paid social lead forms still reach the right place; our posts on Meta lead ads integration and WhatsApp integration cover two common ones. Rebuild the reports the team actually uses, and compare one against the same report from the old system.
Then set a freeze point. Tell the team the date after which nobody edits the old system, switch it to read-only rather than deleting it, and keep it available at least as long as your new platform's rollback window (30 days on Zoho CRM, 48 hours on a Pipedrive spreadsheet import, per the vendors above) and through your first month-end. A short written list of who owns each integration, with a dated check beside it, is more valuable than a long migration deck. If your data currently lives in spreadsheets, our comparison of a CRM versus a spreadsheet explains what changes in day-to-day use.
Want a second pair of eyes on your cutover plan?
Share your freeze date, integrations list and reporting needs and we will review the gaps before you switch.
Book a free auditWhy South African Businesses Choose Growth Pulse Media
A migration is a business decision before it is a technical one: which stages you track, which fields drive reporting, and which records you are entitled to keep. Growth Pulse Media is founded by Dirk van Greuning, who built and scaled a large South African ecommerce business before starting the agency. All work is executed in-house and the client load is deliberately limited, so each project gets senior attention.
That operator view shapes our digital strategy work: we start from the pipeline and the reporting you need, then work back to the data that has to be clean for those numbers to be trusted. The concrete offer is a free audit or consultation of your plan through the contact page, with no obligation, and we will get back to you within 24 hours.
Who This Is NOT For
A formal migration plan is not worth the effort in three situations.
You have not chosen a CRM yet. A migration plan written before the platform is picked will be rewritten. Choose first using our CRM pricing breakdown, then map.
Your entire database fits on one screen. A few dozen contacts can be keyed in or imported in one sitting. A formal plan is overkill.
You expect the move to fix a broken sales process. Migration carries your current habits into a new tool. If stages are unclear or nobody logs activity, fix that first, or you will import the same mess with nicer screens.
Frequently Asked Questions
How long does CRM data migration take?
The load itself can take hours, but planning, cleaning and testing usually take far longer, and the timeline depends on the number of source systems, the quality of the data and how many integrations must be re-pointed. A single spreadsheet with clean columns is a short job; several systems with duplicates is a multi-week one.
Can I migrate data to a new CRM from Excel?
Yes. HubSpot accepts .csv, .xlsx and .xls files with one sheet and a header row where each column corresponds to a property, and Zoho CRM accepts CSV, XLS and XLSX. Format phone numbers and long identifiers as text first, because Excel strips leading zeros and rounds digits past the fifteenth.
What is the biggest risk when you migrate data to a new CRM?
Silent loss: columns that were never mapped, duplicates that were never resolved and records that never arrived because nobody reconciled counts. A field map, a small test load and a count comparison soon after the load address all three.
Can I undo a CRM import if something goes wrong?
It depends on the platform. Zoho CRM allows an import to be undone within 30 days, after which it is confirmed, and the undo permanently deletes the imported data. Pipedrive's migration guide says a spreadsheet import can be reverted within 48 hours. Check the rollback rules for your platform before loading, and keep a backup of the source regardless.
Does POPIA apply when I move customer data between systems?
Yes, because the records are still personal information in your possession or under your control. Sections 14, 19, 21 and 72 on retention, security, operator contracts and cross-border transfers are the ones most relevant to a move. Take legal advice for your specific setup.
Plan your CRM move with an operator, not a template
Whether you are heading to HubSpot, Zoho CRM or Pipedrive, send us your field list, record count and cutover date. No obligation, and we will get back to you within 24 hours.
Talk to Growth Pulse Media

