Define what must survive

Before choosing rows, write down what the business needs after the move. That may include contacts, companies, deals, ownership, next actions, and links between records. If notes, calls, attachments, or history matter, list them separately instead of assuming they travel with the main record export.

For each item, write an observable check. "The data looks right" is too broad. A better check might be that a contact is still linked to the correct company, the owner field has the intended person, and a date remains a date rather than plain text.

Choose a sample that represents the difficult cases

Do not select only the newest, cleanest records. Include common records, older records, records with missing values, likely duplicates, special characters, and records with relationships to another object. If the source contains different customer types or stages, include examples from each type that will use a different mapping.

There is no universal sample size that proves a migration safe. The sample is useful when it exposes the important variations in your data, not when it reaches a particular percentage. Keep a note of what the sample does not cover so that the team does not confuse a test of selected cases with a complete audit.

Map the fields and identifiers

Copy the source values into a test file and map each destination field deliberately. Mark fields that should update an existing record, fields that should be created, and columns that should not be imported. Use a stable identifier when the destination supports one, and document what a blank identifier will do.

HubSpot's multi-object import documentation describes importing related records in one or multiple files and requires a unique identifier to match imported data to an existing record. It also says existing emails, meetings, notes, and tasks cannot be updated through that import path. These are HubSpot-specific behaviors, so inspect the destination documentation and account settings you will actually use.

Fictional input records to adapt before a trial

  • Source ID: CO-01; Type: Company; Field values: Cedar Bay Studio; domain cedarbay.example; Relationship to check: Company anchor for C-01 and D-01
  • Source ID: C-01; Type: Contact; Field values: Avery; avery@cedarbay.example; owner Jordan; company CO-01; Relationship to check: Exactly one contact linked to CO-01
  • Source ID: D-01; Type: Deal; Field values: Website refresh; proposal sent; owner Jordan; next review 2026-10-21; Relationship to check: Linked to C-01 and CO-01
  • Source ID: C-02; Type: Contact; Field values: Taylor Reed; email missing; owner Morgan; Relationship to check: Hold or create by an explicit rule; do not guess an existing match
  • Source ID: ACT-01; Type: Call note; Field values: Prior-quarter discovery call for C-01; Relationship to check: Keep the C-01 link or record this unsupported import as a gap

Run the test where it cannot damage the live list

Use a separate test workspace or another destination that cannot overwrite production data. If the system has no safe test area, ask its owner for a controlled method before importing. Keep a copy of the exact input file and write down the import settings so the result can be repeated or explained.

After the import, compare each test case with its expected result. Check record counts, field values, identifiers, and links between objects. Review error messages and skipped rows rather than treating a completed import status as proof that everything transferred.

Set a decision gate before scaling up

Agree in advance which failures mean stop, repair the mapping, or accept a documented limitation. A missing contact-to-company link may be a hard stop for a team that relies on account history. A cosmetic formatting change may be acceptable if the underlying value is intact. The owner of the migration should record the decision and the reason.

When the test passes, expand the migration in controlled groups and compare the same checks after each group. Keep the source system available until the team has verified the records it needs and has decided how to handle anything the import could not carry.

Using Areinum

Ask Areinum Assistant to organise the sample records, field mapping and expected relationships into a test checklist. The migration owner runs the trial in a separate destination and checks what actually arrived.

See the example

CRM migration sample test log

The sample records and expected outcomes are fictional and have not been imported into any CRM.

CRM migration sample test log
Test caseFictional source recordExpected resultObserved resultRelationship checkStatusFollow-up
Contact and companyAvery at Cedar Bay StudioOne contact linked to Cedar Bay StudioNot runCompany link must existNot runCheck contact email and company domain
Deal associationWebsite refresh proposalDeal linked to contact and companyNot runBoth links must existNot runConfirm the destination supports the required association
Missing identifierTaylor Reed with blank emailNo accidental match to another contactNot runNo existing contact should be overwrittenNot runChoose a create or hold rule before import
Historical activityCall note from a prior quarterActivity is available or recorded as a known gapNot runActivity remains linked to its contactNot runCheck whether the destination import path supports this item
  1. Use one row per case that tests a distinct record type, mapping, identifier, or association.
  2. Write the expected result before running the test. Fill in the observed result afterward and use the follow-up field to record a mapping repair or accepted gap.
  3. The names and records are fictional. A passing sample reduces uncertainty for the tested cases but does not prove that every record or workflow will migrate correctly.

Map the fields and identifiers

Fictional input records to adapt before a trial
Source IDTypeField valuesRelationship to check
CO-01CompanyCedar Bay Studio; domain cedarbay.exampleCompany anchor for C-01 and D-01
C-01ContactAvery; avery@cedarbay.example; owner Jordan; company CO-01Exactly one contact linked to CO-01
D-01DealWebsite refresh; proposal sent; owner Jordan; next review 2026-10-21Linked to C-01 and CO-01
C-02ContactTaylor Reed; email missing; owner MorganHold or create by an explicit rule; do not guess an existing match
ACT-01Call notePrior-quarter discovery call for C-01Keep the C-01 link or record this unsupported import as a gap

Limits of this method

  • A sample checks only the cases included in it. It cannot establish that all records, history, permissions, automations, or files will transfer.
  • Import options and limits vary by destination product, plan, permissions, and record type. Confirm the current rules for the account you intend to use.

Questions you may have

How should I choose a migration sample?

Include the record types, relationships and difficult cases your team relies on, such as missing identifiers, linked companies and activity history.

Does a successful upload mean the migration passed?

Compare the imported fields, relationships and exception cases with the expected result. An upload can succeed while important context is missing.

Does a passing sample guarantee the full migration?

It covers the cases tested. Review the remaining scope and known limitations before deciding whether to proceed.

Will Areinum import the sample into our live CRM?

The guide describes a checklist and a controlled trial. The migration owner selects an appropriate destination and handles the actual import.

Sources and further reading

  • Import records for multiple objects

    HubSpot documentation describes multi-object imports, associations, and unique identifiers for matching imported data to existing records.

    The article documents HubSpot behavior and account requirements; it is not a migration success benchmark. It states that existing emails, meetings, notes, and tasks cannot be updated through this import path.

    2026-10-18

The demo uses sample company data. Access may need to be arranged.

Explore the demo