How to bulk import students from Excel or CSV for legacy ERP migration
For school office staff and IT heads moving from a previous ERP — Campus Care, MyClassboard, FedenaERP, GeniusKids — to Inkwelly during onboarding, or running a March intake of 60-plus students. By the end, every student profile, address, parent record, and academic record will be loaded into Inkwelly and verified, with no leftover entries pointing nowhere.
To bulk import students into Inkwelly: open Students then Data then Import, download the Template CSV on the Student Profiles tab, line up your old ERP export so the column names match, tick Dry Run Mode and upload, fix any rows the Detailed Error Report flags, then untick Dry Run and click Start Import. Repeat for Addresses, Parents, and Academics in that same order. Inkwelly handles photo links and 1,200-student migrations in one go.
A typical Indian CBSE day school runs 800 to 1,200 students; a residential school often runs 1,500 plus. When a school switches ERP, the entire student list moves in a single weekend, usually between two academic sessions. Inkwelly's bulk import is the right tool for this whole-school cutover and for the March intake when 60 to 120 fresh admissions land in a week. The four import tabs — Student Profiles, Addresses, Parents, Academics — match the four lists your old ERP exports separately. Loading them in tab order keeps every record connected to the right student.
1. Set the admission-number format first
Open Inkwelly Settings, then School, then Admission Number Format. Pick the prefix, year, and counter width that match the admission numbers already in your old ERP file — for example KSM/2026/0247. Save before you go anywhere near the Import page. If the format clashes with the numbers in your CSV, every student gets rejected as a duplicate or invalid number, and the file gets turned away before a single student is added. This single five-minute setup is the most common reason a first migration upload fails, so finish it before you open the Import page.
2. Open Students, Data, Import
Open Inkwelly. From the sidebar, click Students, then Data, then Import. The page title reads Import; the line below says Bulk upload student profile, academic, parent, and address data via CSV. Make sure you are on the Student Profiles tab — it sits first in the four-tab strip for a reason. The other three tabs (Addresses, Parents, Academics) attach their entries to students who already exist in Inkwelly, using the admission number to find them. So Profiles must be loaded before any of the other three. If you upload them out of order, Inkwelly cannot find a student to attach those addresses, parents, or academic records to, and they quietly fall through.
3. Download the Template CSV and line up your old ERP columns
Click Download Template CSV at the top of the Student Profiles tab. Open the template in Excel or Google Sheets. Open your Campus Care, MyClassboard, FedenaERP, or GeniusKids export beside it. Rename and reorder the columns in your old export so they match the Inkwelly template exactly — both the column names and the column order need to match. Convert Campus Care's XLS to CSV via File then Save As then CSV UTF-8. Save as plain CSV (the UTF-8 option), otherwise Hindi names and apostrophes turn into question marks at upload. The UDISE+ field-level format is a useful reference here when you are not sure how to map a column.
4. Upload the file with Dry Run Mode ticked
Tick Dry Run Mode on the Profiles tab. The submit button label changes from Start Import to Validate Data. Drag your CSV into the drop zone, or click to upload. Inkwelly reads the file line by line, checks every field, pretends to add each student, and saves nothing yet. The check finishes in under 30 seconds for a 1,200-student file. This is your safety net — the first time you upload during a migration, always tick Dry Run. Without it, a faulty file can either fail halfway through or quietly add 800 students with bad data, and cleaning that up takes hours.
5. Read the result block and download the Detailed Error Report CSV
Look at the result block under the drop zone: Total Rows, Success, Failed, Time. If Failed is more than zero, click Download Detailed Error Report CSV. The report lists the line number, the field that caused the trouble, and the exact reason — invalid date, duplicate admission number, missing class, malformed phone, photo link not reachable. Open the report alongside your source file. Fix those entries in the source file. Save it again as plain CSV (UTF-8). Run Dry Run again. Keep going until Failed = 0 of N. This loop is the migration. On a 1,200-student file, two or three passes is normal.
6. Untick Dry Run and click Start Import
Untick Dry Run Mode on the cleaned file. Keep Download Photos ticked (on by default) if your file has a photo link column with public photo addresses — Inkwelly fetches each photo, files it under the right class and admission number in the school media library, and attaches it to the student profile. The submit button now reads Start Import. Click it. While the job runs, the button label changes to Importing…. When it finishes, a green message reads Successfully imported {count} students, and the result block shows the same Total Rows, Success, Failed, Time numbers — except this time the students are real.
7. Repeat for Addresses, Parents, and Academics in that order
Move to the Addresses tab. Download its Template CSV, line up your old export, tick Dry Run, upload, fix, untick Dry Run, click Start Import. Then do Parents. Then do Academics. All three of these tabs attach to the students you just created on the Profiles tab — they find each student by admission number — so all three need Profiles to exist first. Follow the tab order shown across the Inkwelly Import page, left to right: Profiles, Addresses, Parents, Academics. Skip the order and you end up with addresses, parents, and academic records that have no student to attach to, and Inkwelly quietly drops them.
Common slip-ups during a switch from your old ERP
- File not saved as plain CSV (UTF-8) — Excel's default CSV is the older ANSI format; Hindi names, accented characters, and apostrophes break on upload. Use Save As then CSV UTF-8 in Excel, or just use Google Sheets, which exports UTF-8 by default.
- Commas inside addresses or names — a stray comma splits a row mid-field. Wrap any field that has a comma in double quotes, or let Excel and Sheets do it for you with Save As CSV UTF-8.
- Date format mix-up — most Indian ERPs export DD/MM/YYYY but US-locale Excel reads it as MM/DD/YYYY and silently swaps day and month. Set the date column to Text in Excel before pasting dates, then save as CSV.
- Photo links behind a login — the photo link column must be a public address that opens the picture without a login. Campus Care and MyClassboard photo links are usually behind a login — download the photos to a public S3 bucket or to Inkwelly media first, then put those public addresses in the CSV.
- Tab order skipped — uploading Parents before Profiles ends up with parent records that have no student to attach to. Profiles always go first.
- File over the size limit — the drop zone shows the maximum size; very large schools can split the CSV into 1,000-student chunks and run the import once per chunk.
What to do next
With the bulk import done, here are the next things schools usually run during onboarding:
- Edit imported students at scale — see Bulk update student records for the spreadsheet flow when you need to fix 50 phone numbers or move 200 rolls between sections after the import.
- Issue Transfer Certificates — students who already left the old ERP but never received a TC can be issued one from Inkwelly via the Transfer Certificate flow.
- Single fresh admission flow — mid-session walk-ins after the migration use the single admission flow instead of CSV import.
- Admission-number format — if the migration revealed a numbering inconsistency, fix it via the admission number format before next session.
If any step here breaks on your school's data, share the Detailed Error Report CSV with the Inkwelly support team on WhatsApp — most ERP migrations are diagnosed within 30 minutes from that report alone.
Migrating from Campus Care, MyClassboard, or FedenaERP?
Bring a sample export from your old ERP. The Inkwelly team lines up your columns against the template, runs a dry run on the spot, and you walk away with a working migration plan.
Frequently asked
7 questionsWhat if my file has duplicate admission numbers from the old ERP?
Inkwelly's dry run flags every duplicate in the Detailed Error Report CSV with the line number and the conflicting admission number. Fix the duplicates in your source file by adding a suffix or by renumbering the older student, save again as plain CSV (UTF-8), run Dry Run again, and import once Failed shows zero. Inkwelly never accepts a duplicate admission number on a real import.
Does Inkwelly support direct migration from Campus Care, MyClassboard, or FedenaERP?
Inkwelly does not have a one-click connector for those products, but every one of them lets you export student data to XLS or CSV. Convert that export to plain CSV (UTF-8), line up its columns against the Inkwelly template on the Profiles tab, dry-run, fix, import. The four-tab order (Profiles, Addresses, Parents, Academics) handles every type of record those ERPs hold. Most migrations from Campus Care or MyClassboard finish in a single afternoon for a 1,000-student school.
What if Dry Run shows 50 errors out of 800 students?
Click Download Detailed Error Report CSV. The report lists each failing student with the exact field and the reason — invalid date, duplicate admission number, missing class. Fix only those 50 entries in your source file; leave the 750 valid ones unchanged. Save as plain CSV (UTF-8) and run Dry Run again. Most migrations need two or three Dry Run passes before Failed reaches zero.
Can I import student photos in bulk via a link?
Yes. Add a photo link column to your CSV with a public photo address per student. Keep Download Photos ticked on the Profiles tab (on by default). Inkwelly fetches each photo, stores it in school media under the class and admission number, and attaches it to the student. Photo addresses behind a login fail — move those photos to a public S3 bucket or to Inkwelly media first.
What is the maximum CSV file size for bulk import?
The drop zone label shows the active limit for your school plan — it reads CSV file (max {maxSizeMB}MB). Schools above the limit split the CSV into 1,000-student chunks and run the import once per chunk; the four-tab order applies per chunk too. Very large residential schools (1,500 plus students) usually split by class so each Dry Run check stays under 30 seconds.
Inkwelly me purane ERP se students kaise import kare?
Apne purane ERP se student data CSV me export kijiye. Inkwelly me Students, Data, Import par jaiye. Student Profiles tab par Download Template CSV dabaiye. Apne export ke columns ko template ke columns se match kijiye, file plain CSV (UTF-8) me save kijiye. Dry Run Mode tick karke upload kijiye — koi error hai toh Detailed Error Report download kijiye, theek kijiye, dobara dry run kijiye. Jab Failed zero ho jaye, Dry Run untick karke Start Import dabaiye. Phir Addresses, Parents, Academics tabs par yahi process repeat kijiye — issi order me.
Can I undo a bulk import if I uploaded the wrong file?
Inkwelly keeps the import history per school and shows the students added in each import run. For a small mistake, fix the affected students by hand or with [Bulk update student records](#ref:cmolki3870036fp350v6zy0eu). For a wrong-file disaster, contact Inkwelly support on WhatsApp with the import run ID — the team can soft-archive the imported batch within the support window. Dry Run Mode is meant to prevent this in the first place; never skip it.
You might also like
2 readsSources & references
- CBSE Affiliation Bye-Laws — Chapter VI (Records and Registers) · accessed 7 May 2026
Mandates that admission registers and student records be maintained without duplication or gaps, which directly drives the admission-number-format check before bulk import.
- UDISE+ Data Capture Format — Student Module · accessed 7 May 2026
Defines the field-level format for student records that Indian schools file annually, and which most legacy ERPs export — useful as the column-mapping reference when migrating to Inkwelly.
- Digital Personal Data Protection Act 2023 · accessed 7 May 2026
Governs consent, retention, and processing of student personal data — relevant when migrating an entire school's records from a legacy ERP into Inkwelly.
See Inkwelly on your school
30-minute demo. We open your current ERP with you and load your data into Inkwelly on the call. Dated go-live plan by the end of it.