Bulk student import
When migrating from a previous system or onboarding a whole intake, importing from a spreadsheet beats typing hundreds of records. EduPrime's import maps your columns to student fields, validates every row, and can be re-run safely without creating duplicates.

Prepare the spreadsheet
- From the Students list, choose Import and download the template.
- The template carries one column per field: admission number, first name, surname, gender, date of birth, class, stream, boarding/day, guardian name, guardian phone, tags.
- Fill one student per row. Keep dates in one consistent format (e.g.
YYYY-MM-DD). - Give every student an admission number – this is the key EduPrime uses to detect duplicates on re-run.
Map columns & validate
Upload the file. EduPrime auto-matches column headers to fields; correct any it could not match using the mapping dropdowns. It then validates every row and reports problems before writing anything:
| Validation | What it catches |
|---|---|
| Required field empty | Missing name, DOB or class. |
| Unknown class/stream | A class that does not exist yet – create it first. |
| Bad date format | DOB EduPrime cannot parse. |
| Duplicate admission number | Two rows, or a row matching an existing student. |
Fixing errors & re-running
If validation fails, EduPrime lists the offending rows and the reason. Fix them in your spreadsheet and re-upload – nothing is written until the file is clean (or you choose to import only the valid rows). Because matching is keyed on admission number, re-running an import updates existing students rather than duplicating them, so a corrected re-run is safe.
After import
Once imported, spot-check a handful of records: confirm class placement, guardian linkage and that fee structures attach correctly (imports may not attach fee structures automatically – verify against the next invoice run). Then group the list by class to confirm the counts match your source register.

