Build the Field-Mapping Doc: Concord Biotech's CRM Migration Prep
Objective: Build a real field-mapping document and phase timeline, the two artifacts the lesson says must exist on paper before a single record moves, for a company migrating CRMs.
You're supporting the marketing operations lead at Concord Biotech, the Ahmedabad-based, Nasdaq-adjacent NSE/BSE-listed pharmaceutical API manufacturer (~$1.19B IPO market cap), who is migrating from a legacy CRM to a modern one before a global partner-conference push. Regulatory and audit-trail requirements mean nothing can move without documentation.
Build a field-mapping table (old field, new field, transformation needed) for a realistic 12-field CRM schema, then lay out the 5-phase migration timeline from the lesson.
Before you start
What you'll need
Free path (everything below is enough to finish)
Free, easy to share for sign-off before migration starts
Free tier handles a single migration project tracker without needing a dedicated project-management tool
The process
1 step
Step 01 of 01
Phase 1 of the lesson's framework is field mapping: documenting every field in the old system, where it lands in the new one, and what transformation it needs, approved on paper before anything moves.
The legacy CRM has a free-text 'industry' field and a single 'contact_notes' blob. The new CRM uses a picklist for industry and separate structured fields for notes. What does the mapping doc need to capture that a simple 1-to-1 export would miss?
Procedure
- List all 12 legacy fields (contact info, deal stage, industry, notes, last-touch date, lifecycle stage, etc.)
- For each, identify the destination field in the new CRM
- Flag any field needing a real transformation (free-text industry -> picklist, blob notes -> structured fields)
- Assign an owner to each transformation (marketing ops vs. the CRM vendor's migration team)
- Build the 5-phase timeline (audit, mapping, sandbox test, parallel run, cutover) with real week-by-week durations
Concord Biotech field-mapping doc (excerpt) old_field: industry (free text) -> new_field: industry (picklist) transformation: map 40+ free-text variants to 12 standard picklist values owner: marketing ops old_field: contact_notes (single blob) -> new_field: notes[] (structured, dated entries) transformation: parse blob by date-stamp pattern into separate note records owner: CRM vendor migration team old_field: lifecycle_stage -> new_field: lifecycle_stage transformation: none, direct 1:1 map owner: either TIMELINE Phase 0 Audit & cleanup: 3 weeks Phase 1 Field mapping: 2 weeks Phase 2 Sandbox test load: 1 week Phase 3 Parallel run: 3 weeks Phase 4 Cutover: 1 week
Healthy
Every field with a real transformation has a named owner and an explicit rule before migration starts.
Unhealthy
A 1:1 export/import with no mapping doc, which silently drops the industry picklist mapping and mangles the notes blob.
What this means
The mapping doc's real value is catching the fields that need transformation, not the ones that map 1:1. Those are the ones that break silently during a rushed migration.
So what do I do about it?
| Symptom | Action | Effort |
|---|---|---|
| Free-text fields get exported with no transformation rule | Write the exact mapping (which free-text values become which picklist option) before the sandbox load | 30 min |
Final deliverable
A 12-field mapping table with transformation rules and owners, plus a 5-phase timeline checklist ready for sign-off.
See a reference example
Postman marketing ops, field-mapping doc (excerpt) old_field: lead_source (free text) -> new_field: lead_source (picklist, 8 values) transformation: map 60+ variants down to 8 standard sources, owner: marketing ops old_field: deal_stage -> new_field: deal_stage, transformation: none, owner: either TIMELINE: Audit 2wk -> Mapping 2wk -> Sandbox 1wk -> Parallel run 4wk -> Cutover 1wk
Success criteria
You're done when you can:
- All 12 fields are mapped with an explicit transformation rule or 'none'
- Every transformation has a named owner
- The 5-phase timeline has real week-by-week durations, not placeholder text