This article contains affiliate links. AutomateWithMNK may earn a commission if you sign up through certain links, at no additional cost to you. This does not influence our editorial assessment.
Moving an Excel sales spreadsheet into a CRM is a data handover before it is an upload. Decide what each row represents, prepare a field map, import a representative pilot and confirm that another person can continue the work. A successful import message alone cannot establish that the customer history remains usable.
This guide covers a one-off, human-led migration. Our fictional example is a training consultancy with a spreadsheet of workshop enquiries. Official documentation was reviewed on 13 October 2026. We have not tested a product account, and the checks below are proposed acceptance criteria rather than observed results.
Key points
- Define people, companies and opportunities before mapping columns.
- Check records and relationships in a small pilot import.
- Approve the cutover and preserve a record of every transformation.
Disclosure: this guide includes an EngageBay affiliate link. AutomateWithMNK may receive a commission if you subscribe through it.
Define what the migration must preserve
The consultancy’s fictional spreadsheet contains 360 enquiry rows. A purchasing manager appears on three rows because she discussed three separate workshops. Other rows contain company names without a named buyer. Moving every row into the contact list would confuse enquiries with people.
Operations lead Sam sets a narrower goal: transfer identifiable buyers and current workshop opportunities, with a named owner and an understandable next action. Completed workshop paperwork remains in an organised archive. Unclear identities go into a review queue instead of being turned into invented contacts.
If the destination is still undecided, use our EngageBay and HubSpot comparison for the product decision. The migration plan answers a different question: which information must survive so that the team can continue serving customers? Write that answer before editing column names or choosing an import file.
Keep an original, a working copy and an import copy
Save the untouched workbook with its extraction date and original tabs. Make changes in a separate working copy. Once the mapping and exceptions are approved, create the actual import version. Give each file a clear status so that someone cannot accidentally upload an unfinished cleaning sheet.
Add a stable source reference such as ENQ-0087. It traces an imported record back to its original row and decision. It is not automatically a CRM record identifier. If you want to preserve it in the destination, choose an appropriate supported field instead of placing it in a system ID column by guesswork.
Record consequential changes in a small decision log. For example, note that two rows were confirmed as the same buyer, which phone number was retained and who approved that choice. While preparation is under way, collect new sales changes separately. Otherwise the final upload may omit corrections made after the original extract.
Separate buyers from organisations and opportunities
A buyer, the organisation employing them and a workshop proposal are different records. They may need separate files or different import paths. Preserve the relationships deliberately: a repeated company name in a text field is not evidence that a formal association has been created.
| Source row | Destination decision | Review needed |
|---|---|---|
| ENQ-0087: Maya, Oak Services, leadership workshop | One buyer, one organisation, one opportunity | Confirm email and owner Sam |
| ENQ-0088: Maya, Oak Services, induction workshop | Reuse buyer; retain separate opportunity | Check that these are distinct requests |
| ENQ-0089: Pine Services, no person | Organisation awaiting qualification | Assign buyer research; invent no email |
| ENQ-0090: completed workshop paperwork | Keep archive reference outside active pilot | Confirm archive can be located |
Start with the smallest useful model. A migration does not require rebuilding every historic note as a new object. It does require a deliberate home for information that still affects customer service, contractual commitments or the next sales conversation.
Clean values while preserving uncertainty
Remove accidental leading spaces, make status labels consistent and separate multiple values held in one cell. Keep names and accents intact. Review telephone numbers as text so that country prefixes and leading zeros survive. Inspect the exported CSV itself rather than relying on the appearance of cells in the workbook.
Do not fill missing budgets with zero or classify an unknown answer as no. For our example, an unknown workshop date remains unknown. A date already agreed with the buyer should retain its meaning rather than becoming a general note buried under a new import timestamp.
Historical duplicates need a human decision about identity and conflicting values. Ongoing integration writes require a different design. Our guide to preventing duplicate HubSpot contacts in Make addresses that later situation; an event ledger is not a substitute for deciding which spreadsheet rows represent the same buyer.
Write a field map before opening the importer
For every column, state the intended destination, meaning, allowed format and rule for missing values. A helpful map also identifies columns that will not be imported and explains where their information will remain. Review the map with a salesperson who understands the enquiries.
| Source example | Proposed destination | Decision |
|---|---|---|
| Buyer first name: Maya | Contact first name | Keep confirmed spelling |
| Email: maya@example.com | Contact email | Fictional exercise address; verify real identity |
| Reference: ENQ-0087 | Dedicated source-reference field if supported | Do not assume it is an internal ID |
| Stage: proposal sent | Opportunity stage | Map to configured exact label |
| Next step: confirm attendance | Separate action or supported field | Check owner and due date survive |
| Budget: blank | Unknown amount | Keep unknown; do not enter zero |
HubSpot’s import-file documentation explains identifiers used for updates and duplicate avoidance, including Record ID and contact Email. Apply the rules for the chosen object and operation. A source reference from Excel does not become a recognised HubSpot ID merely because its column is renamed.
Follow a documented contact import with a small pilot
EngageBay documents a CSV contact import through the Sales or Marketing dashboard: open Contact, choose Import, select the file, upload it, match fields and complete the import. Use the official contact-import instructions alongside your field map. Account permissions and the current screen layout still need confirmation in your authorised account.
Select a representative pilot rather than the easiest five rows. Include an accented name, a telephone prefix, a blank amount, an existing buyer and two enquiries belonging to one person. Use fictional data for a rehearsal; do not expose customer information in shared screenshots or informal diagnostic copies.
Opportunity import is documented separately in EngageBay’s Sales module, under Deals. Its deal-import guidance requires track and milestone names to match the account exactly, including letter case. Set those labels and review the mapping before uploading the opportunities. Do not assume that importing contacts also creates their workshop deals.
Reconcile records, values and relationships
Compare the submitted rows with the outcome. Distinguish created records, updated records and rejected rows where the product reports them. When those categories are unavailable, build a comparison from the records and your source references. An unchanged total does not prove that the right values reached the right people.
Open every pilot case. Check name, email, organisation, opportunity stage, owner and next action. Verify the relationship between Maya and both workshop opportunities. Ask a colleague to find the enquiry and explain what happens next without consulting Excel. That is a stronger business check than simply seeing the new contact appear.
Log each discrepancy and its resolution. Avoid repeatedly importing the entire pilot to fix one field before understanding update behaviour. For an uncertain result, stop and establish what was written. A migration error needs an informed correction, not an unplanned bulk deletion that might remove pre-existing data.
Give the team one active place to work
Choose when spreadsheet editing stops. Collect the last agreed changes, transfer them through the approved method and mark the workbook as an archive. Keeping both systems editable without a reconciliation process creates two competing versions of the sales pipeline.
On the first working day, keep the task simple: find a buyer, update an opportunity and assign the next action. Record questions as exceptions for Sam to resolve. Our EngageBay automation guide covers the next stage; introduce automation after the transferred records and ownership have been accepted.
Retain the original and migration decisions for the agreed review period. Access should remain limited to people who need them. Make the destination useful enough that the team stops maintaining an unofficial workbook alongside it.
FAQ: Practical migration questions
Must every historical enquiry be imported?
No. Keep an explicit scope and a usable archive for excluded history. Explain where staff should look when a former buyer returns, rather than silently losing that context.
What if a row has no email address?
Do not invent one. Put the row into review and check the destination’s requirements. It may belong in an organisation record or an information-gathering queue instead of the contact pilot.
Can we discard the workbook after a successful upload?
Wait until users accept the records, relationships and next actions. The source and decision log remain useful for understanding exceptions that surface during the handover.
Approve the pilot before moving the whole workbook
After accepting your pilot import, if you choose EngageBay and also need marketing features, compare the All-in-One plans against your chosen scope.
Check EngageBay plans for your chosen scope
Your next deliverable is a frozen original, a filled field map and a representative pilot accepted by its users. Resolve unexplained differences, set a cutover owner and only then run the full migration. That gives the CRM a clear operational starting point.
Official sources
Reviewed 13 October 2026: EngageBay contacts, EngageBay deals, HubSpot import files. The scenario and acceptance process are editorial proposals, without a claimed product trial.
