# CRM Data Migration Template

**Kind:** Template · **Stage:** Implement · **Last reviewed:** 2026-08-14

Inventory accounts, contacts, deals, activities, and leads — with volumes, owners, stage maps, and load order — before you move CRM data.

Download the spreadsheet-friendly companion: [`crm-data-migration-template.csv`](/resources/crm-data-migration-template.csv).

Pair with the [field mapping template](/resources/crm-field-mapping-template/), [migration checklist](/resources/crm-migration-checklist/), and [CRM Migration Planner](/tools/crm-migration-planner/). Companion reading: [financial services CRM migration](/guides/financial-services-crm-migration/), [implementation planning](/guides/crm-implementation-planning/).

---

## How to use

1. List every source system and CRM object (accounts, contacts, deals, activities, leads).
2. Estimate open vs archive volumes per object.
3. Assign a data owner per object.
4. Capture dependencies and owner-email→user strategy.
5. Note stage-map readiness and amount/currency/close-date issues.
6. Set provisional load order; fill the CSV for ops reviews.
7. Freeze rows before pilot import; keep notes for exclusions and rollback.

**Decision rule:** Do not firm-wide cutover until a pilot sample of open deals shows correct owners, account–contact–deal links, stages, amounts, and close dates — and until you know how to re-import or roll back if validation fails.

---

## Column definitions (CSV)

| Column | Meaning |
| --- | --- |
| `object` | CRM object (Accounts, Contacts, Deals, Activities, Leads, Users, …) — match field mapping names |
| `source_system` | Legacy CRM, sheet, or other system |
| `record_count_est` | Order-of-magnitude count for planning |
| `open_vs_archive` | `open` / `archive` / `mixed` / `exclude` |
| `owner` | Person accountable for quality + validation |
| `dependencies` | Parent objects / keys that must exist first |
| `load_order` | Sequence number (1 = first) |
| `owner_remap` | How OwnerEmail maps to CRM users (or N/A) |
| `stage_map_status` | Stage/status map readiness for deals/leads |
| `notes` | Include/exclude, LeadSource, amount/currency, exceptions |

---

## Checklist

### CRM object inventory

- [ ] Source systems listed (primary vs archive)
- [ ] Accounts / companies row filled
- [ ] Contacts row filled (email as match key noted)
- [ ] Deals / opportunities row filled (open vs closed split)
- [ ] Activities / tasks / notes row filled (include, exclude, or wave-two)
- [ ] Leads row filled — or explicit N/A
- [ ] Users / owners row filled (before owned open records)
- [ ] Custom objects listed or deferred

### Volumes, open vs archive, sensitive data

- [ ] Open vs archive flagged per object
- [ ] Record-count estimates filled
- [ ] Export method noted and tested once
- [ ] Sensitive objects/fields flagged for security review
- [ ] Files / attachments strategy noted
- [ ] Notes capture duplicates, dual ownership, legal holds

### Dependencies & load order

- [ ] Parent/child links listed (contacts→accounts; deals→accounts/contacts; activities→parents)
- [ ] Owner-email→user prerequisite noted (users before owned deals/contacts)
- [ ] Load order numbered without conflicts
- [ ] Parallel-safe objects marked carefully
- [ ] External-key / legacy ID strategy noted
- [ ] Rollback hint per object
- [ ] Frontline lead reviewed the sequence

### CRM field readiness (owners, stages, amounts)

- [ ] Deal stage map readiness noted
- [ ] Owner email→user strategy written (lookup + queue user)
- [ ] Amount / currency issues flagged
- [ ] Close date format issues flagged
- [ ] Lead source / channel preservation noted
- [ ] Next-step policy for open deals noted

### Ownership, pilot & validation

- [ ] Object owner column filled for every include
- [ ] Cleansing gate defined (contact email dedupe) before map freeze
- [ ] Validation checks listed (owners, stages, links, amounts, close dates)
- [ ] Pilot segment of open deals chosen and sized
- [ ] Validators named (ops + frontline)
- [ ] Defect log location set
- [ ] Re-import rule written

### Cutover readiness

- [ ] Freeze window drafted to fit export + validate
- [ ] User freeze communications planned (AEs stop editing legacy open deals)
- [ ] Final export owner (+ backup) named
- [ ] Hygiene-week tasks noted (dupes, owners, stage honesty)
- [ ] Template version frozen with field map
- [ ] Security review linked for contact/deal extracts

---

## Suggested load order (starting point)

1. Users / owners (seat map for OwnerEmail lookup)
2. Accounts / companies
3. Contacts (after accounts; dedupe by email)
4. Deals / opportunities (open pipeline first)
5. Leads (or convert-before-load — decide explicitly)
6. Activities / notes (only if in scope; often wave-two)
7. Custom objects (after parents exist)

Edit freely — your dependencies win.

---

## Worked examples

**SaaS leaving a legacy CRM:** Before — unclear whether activities or leads were in scope; first import orphaned deals and dropped LeadSource. After — accounts → contacts → deals with owners, volumes, stage-map notes, and load order; pilot on open deals first.

**Boutique firm on sheets:** Before — three sheets claimed to be truth. After — one primary for open accounts/contacts; deals waited for owner-email lookup; activities deferred; opportunities blocked until parents landed with owners.

---

## FAQ (short)

- **Same as field mapping?** No — this is objects/volumes/order; field mapping is Stage, Amount, OwnerEmail, LeadSource, etc.
- **Migrate all activities?** Only if someone will use and validate them; many teams wave history later.
- **Leads vs contacts?** Decide: import, convert-before-load, or exclude — preserve LeadSource if attribution matters.
- **How exact must counts be?** Order-of-magnitude for planning; re-count before final cutover.

---

*Educational template from SoftwareGlimpse. No invented timelines, rankings, or prices.*
