Platform Migration

Moving Ten Years of Leads, Payments and Students Without Losing a Record

The reason institutes stay on software they have outgrown is almost never features — it is the fear of migration. That fear is rational, and it is manageable. Here is the sequence that makes it a controlled project rather than a gamble.

Field-Level Mapping Reconciled Balances Parallel-Run Cutover

Executive Summary

Migration risk concentrates in three places, and none of them is the file transfer: identity (the same person existing three times across three systems), money (outstanding balances that must reconcile to the rupee), and cutover (the window where staff are entering data into two systems at once). This guide covers what to migrate versus archive, how to resolve duplicate identities safely, the reconciliation checks that must pass before go-live, and why a two-to-three month sample migration should always precede the full one.

Legacy spreadsheets and archives passing through validation into a structured platform
Migration is a validation pipeline, not a file copy. What matters is which records are stopped at the gate.

1. Decide What Actually Needs to Move

The most common mistake is attempting to move everything. A decade of history contains a great deal that has no operational use, and every record carried across is a record that must be mapped, validated and reconciled. Sort your data into three buckets before anyone writes an export:

BucketContainsTreatment
Live operationalActive learners, open leads, unpaid instalments, running batches, current staffFull migration with complete relationships. This must be perfect.
ReferenceAlumni, closed enrolments, settled payments, past batchesMigrate as records, but relationships can be simplified. Searchability matters more than structure.
ArchiveDead leads years old, superseded documents, obsolete campaign dataExport to cold storage. Do not migrate. Keep it retrievable, keep it out of the working system.

This decision is also a data-protection one. Personal contact records with no operational purpose are a liability rather than an asset, and migration is the natural moment to stop carrying them forward. Check what your retention policy actually says before defaulting to “bring it all.”

2. The Identity Problem Is the Hard Part

In almost every institute that has run for years, the same human being exists as several separate records: a lead from a campaign in 2019, a student record created at admission, a payer record in the accounting sheet, and an alumni entry in a WhatsApp export. Migrating these naively produces four records that will never reconcile, and a support team that cannot answer “what has this person paid?”

Resolve identity before import, not after. A workable approach:

  • Choose one primary key. Phone number is usually the most reliable in Indian institutes; email is patchier and often shared within families or clinics.
  • Normalise before comparing. Strip country codes, spaces and punctuation. A substantial share of “duplicates” are formatting differences, and a substantial share of missed matches are too.
  • Auto-merge only on exact normalised matches. Fuzzy name matching creates false merges, and an incorrectly merged pair of people is far harder to unpick after go-live than a duplicate is.
  • Send near-matches to a human review queue rather than guessing. Expect this queue to be large on the first pass, and treat working through it as part of the project rather than an exception.
  • Keep the source identifiers. Store the original record ID from each legacy system on the merged record, so any number can be traced back to where it came from when someone disputes it.
Field-level mapping between legacy source fields and target platform fields
Field mapping is where undocumented conventions surface — the status column that means three different things depending on who filled it.

3. Map Fields Explicitly, Including the Ugly Ones

Every long-running system accumulates fields whose meaning lives only in someone's head: a “status” column with fourteen values, three of which mean the same thing; a notes field where counsellors recorded discount approvals; a date column holding two different formats depending on which year the row was created. Build the mapping document with the people who actually entered the data, not only with the administrator who owns the system.

Points that reliably cause trouble and are worth checking explicitly:

  • Dates. Mixed day-month and month-day formats in one column is extremely common and silently shifts records by months. Test with dates above the twelfth of the month, where the ambiguity becomes visible.
  • Currency and tax. Establish for every amount whether it is inclusive or exclusive of tax. Getting this wrong changes reported revenue and is usually discovered only at the first reconciliation.
  • Status vocabularies. Map legacy statuses to the new ones deliberately, and preserve the original string in a separate field so historical reporting remains explicable.
  • Free-text that encodes structure. Discounts, instalment arrangements and special approvals frequently live in notes. Extract what you can into real fields, and carry the raw note across regardless.
  • Attachments and documents. Identity documents, signed forms and certificates need their links rebuilt against the migrated records, not just the files copied.
Do a two-to-three month sample first — always

Never make the first migration the full one. Take a recent two-to-three month slice covering leads, calls, admissions, payments and students, migrate it, and have the people who own each area check their own records against the source. A counsellor recognising their own leads and a finance lead recognising their own collections will find problems in an afternoon that no automated validation catches. Every mapping defect found in the sample is a defect you do not fix across ten years of data later.

4. Reconciliation: The Checks That Must Pass Before Go-Live

Migration is complete when the numbers agree, not when the import finishes without an error. Define these checks in advance and treat any failure as blocking:

Financial reconciliation
  • • Total collected in period matches the legacy system exactly
  • • Total outstanding matches, learner by learner, not just in aggregate
  • • Instalment schedules and due dates carry across unchanged
  • • Approved concessions and negotiated prices survive as the agreed amount
Record counts
  • • Source count minus intentional exclusions equals target count
  • • Every exclusion is explained by a rule, never by an unexplained gap
  • • Merged identities are counted and reviewed, not silently absorbed
  • • Rejected rows land in an exceptions list somebody actually works through
Relationship integrity
  • • Every payment attaches to the right learner and the right course
  • • Batch membership and enrolment dates are preserved
  • • Lead ownership and follow-up history stay with the right counsellor
  • • No orphaned records pointing at IDs that no longer exist
Spot checks by real users
  • • Each counsellor opens ten of their own leads and confirms the history
  • • Finance checks the ten largest outstanding balances individually
  • • A learner-facing view is checked for someone with a part-paid package
  • • At least one certificate-eligible learner is verified end to end
Records passing through sequential validation gates with exceptions diverted
Staged validation with a visible exceptions tray. Records that fail must be surfaced and worked, never silently dropped.

5. Cutover: The Riskiest Fortnight

The technical migration is usually less disruptive than the period around it, when staff are unsure which system is authoritative. Reduce that window deliberately:

  1. Announce a hard freeze date for new entries in the legacy system, and make it unambiguous. Ambiguity here is what produces leads recorded in one system and payments in the other.
  2. Run a delta migration at cutover. Migrate the bulk in advance, then move only records created or changed since that point. This keeps the freeze to hours rather than days.
  3. Parallel-run for a short, fixed period — typically one to two weeks — with the new system authoritative and the old one read-only. Read-only is important: a legacy system left writable will keep being written to.
  4. Time it to your admissions calendar. Never cut over during peak intake. The right window is immediately after a batch closes, when both counsellors and finance have capacity.
  5. Keep a rollback position for the parallel-run period: a restorable snapshot of the legacy system and a documented decision-maker who can call it.
  6. Train on migrated data, not demo data. Counsellors trust a system that shows them their own leads. Training on fabricated records delays real adoption by weeks.
Keep the legacy export regardless

Retain a complete, restorable export of the legacy system after go-live, stored securely and with access restricted. Questions surface months later — a disputed payment from before the move, a certificate reissue, an audit request — and the ability to answer from the original source is worth far more than the storage costs. Set a review date for that archive rather than keeping it indefinitely by default.

6. What This Looks Like in Vacademy

Vacademy supports migration of historical CRM, payment and student data, with bulk import and a direct API path for sources that need it. Because leads, calls, enrolments and payments live in one data model, the relationships that usually break across a multi-system migration — a payment finding the right learner, a follow-up history staying with the right counsellor — are preserved rather than reassembled afterwards.

The recommended starting point is a two-to-three month sample of your real historical data during evaluation. It answers the migration question and the platform question at the same time: your team assesses reporting, payment tracking and counsellor workflows against records they recognise, rather than against a demo environment that proves nothing about your data.

Start with a sample, not a leap

Export two to three months of leads, calls, admissions and payments. We will migrate it into a fresh environment so your team can check their own records before any commitment.

Frequently Asked Questions

What data should an institute migrate to a new platform?+

Sort records into three buckets before exporting anything. Live operational data — active learners, open leads, unpaid instalments, running batches — must migrate completely with all relationships intact. Reference data such as alumni, closed enrolments and settled payments should migrate as records where searchability matters more than full structure. Dead leads years old and obsolete campaign data belong in cold storage rather than the working system, which is a data-protection benefit as well as a scope reduction.

How do you handle duplicate student records during migration?+

Resolve identity before import rather than after. Choose one primary key — phone number is usually most reliable for Indian institutes, since email is patchier and often shared. Normalise values by stripping country codes, spaces and punctuation before comparing, auto-merge only on exact normalised matches, and route near-matches to a human review queue. Fuzzy name matching should never auto-merge, because an incorrectly merged pair of people is much harder to unpick after go-live than a duplicate.

What are the most common field-mapping mistakes?+

Mixed date formats within a single column are the most frequent and are best detected by testing dates above the twelfth of a month, where day-month ambiguity becomes visible. Others include ambiguity over whether stored amounts include tax, status vocabularies with several values meaning the same thing, structured information such as discounts and instalment arrangements buried in free-text notes, and attachments whose links must be rebuilt against migrated records rather than merely copied.

Should you migrate all historical data at once?+

No. Always migrate a two-to-three month sample first, covering leads, calls, admissions, payments and students, and have the people who own each area verify their own records against the source. A counsellor recognising their own leads and a finance lead checking their own collections will surface mapping defects in an afternoon that automated validation does not catch, and every defect found in the sample is one you avoid fixing across ten years of records later.

What checks must pass before going live on a new system?+

Treat four categories as blocking. Financial reconciliation: total collected and total outstanding must match the legacy system learner by learner, not merely in aggregate, with instalment schedules and approved concessions intact. Record counts: source count minus documented exclusions must equal the target count. Relationship integrity: every payment attached to the right learner and course, with no orphaned records. And spot checks by real users, including finance verifying the largest outstanding balances individually.

How do you minimise disruption during cutover?+

Announce an unambiguous freeze date for the legacy system, migrate the bulk in advance and move only changed records as a delta at cutover so the freeze lasts hours rather than days, then parallel-run for a fixed one-to-two week period with the new system authoritative and the legacy system strictly read-only. Schedule the cutover immediately after a batch closes rather than during peak intake, keep a restorable legacy snapshot with a named decision-maker for rollback, and train staff on migrated data rather than demo data.

Ready to experience the
Future of Learning?

Join thousands of educators and institutions who have switched to Vacademy for a seamless, automated, and intelligent teaching experience.