Skip to main content

Add Bulk Data

Add Bulk Data lets you import multiple students at once using a CSV file. This is ideal for the start of a new academic year, school migrations, or any scenario where you need to enrol dozens or hundreds of students efficiently.

Add Bulk Data page showing session year, class section selectors and file upload
Add Bulk Data — select class section, then upload your CSV file

Upload Students via CSV

1
Navigate to Students → Add Bulk Data
From the sidebar, expand **Students** and click **Add Bulk Data**.
2
Select Session Year and Class Section
Choose the **Session Year** and **Class Section** from the dropdowns. All students in this CSV will be assigned to the same class section. If you need different class sections, perform separate uploads.
3
Download the Sample CSV
Click the **Download Sample File** button to get a pre-formatted CSV template with the correct column headers.
4
Prepare your CSV file
Open the sample file in a spreadsheet application (Excel, Google Sheets, LibreOffice Calc) and fill in your student data. See the **CSV Columns** section below for details on each column.
5
Upload the CSV
Click **Choose File** and select your prepared CSV (accepted file types: `.csv`, `.txt`). Then click **Submit** to start the import.
6
Review results
After processing, the system shows a **success count** (students imported) and an **error count** (rows that failed, with details about each error).
One class section per upload

Each CSV upload assigns all students to the same class section. If you need to enrol students into different class sections, perform separate uploads for each.


CSV Columns

FieldTypeRequiredDescription
first_nametextRequiredStudent first name
last_nametextRequiredStudent last name
mobiletextOptionalStudent phone number
gendertextRequiredMust be "male" or "female" (lowercase)
dobdateRequiredDate of birth. Accepted formats: DD-MM-YYYY or MM/DD/YYYY
admission_datedateRequiredAdmission date in the same format as DOB
current_addresstextRequiredCurrent residential address
permanent_addresstextRequiredPermanent home address
guardian_emailemailRequiredGuardian email address. If an account with this email exists, the student is linked to the existing guardian
guardian_first_nametextRequiredGuardian first name
guardian_last_nametextRequiredGuardian last name
guardian_mobiletextRequiredGuardian phone number

Custom Field Columns (optional)

Any columns after guardian_mobile are treated as custom form field data. The column header must match the custom field name (with spaces replaced by underscores).

Example: If you have a custom field called "Blood Group", add a column named blood_group after the guardian_mobile column.

Sample CSV Structure

first_namelast_namemobilegenderdobadmission_datecurrent_addresspermanent_addressguardian_emailguardian_first_nameguardian_last_nameguardian_mobileblood_group
JohnDoe+237600000001male15-03-201001-09-2025123 Main St123 Main Stparent@email.comJaneDoe+237600000002O+
AliceSmithfemale22-07-201101-09-2025456 Oak Ave456 Oak Aveparent2@email.comBobSmith+237600000003A-

How It Works Behind the Scenes

For each row in the CSV, the system:

  1. Creates a new user account (using first_name + admission_no as the email/login)
  2. Sets the default password to the admission number
  3. Creates or links the guardian account (by email lookup)
  4. Creates the student record linked to the selected class section and session year
  5. Stores any custom field data
Admission number

The admission number is auto-generated from the student's first name and a unique identifier. It serves as the student login credential.


Common Errors and Solutions

ErrorCauseSolution
"The first_name field is required"Empty first name cellFill in all required fields
"The guardian_email has already been taken"Guardian email conflicts with a non-guardian userUse a different email or check the existing account
"The dob is not a valid date"Date format not recognizedUse DD-MM-YYYY or MM/DD/YYYY consistently
"The gender must be male or female"Capitalized or misspelled genderUse lowercase: male or female
Row skipped silentlyCompletely empty row in CSVRemove blank rows from the spreadsheet

Tips for a Smooth Import

  • Always use the sample file as your starting template
  • Keep the column headers exactly as provided — do not rename or reorder standard columns
  • Save as CSV (Comma delimited) — not Excel (.xlsx)
  • Remove any formatting, merged cells, or formulas from the spreadsheet before saving
  • Test with a small batch (5-10 students) before importing the full list
  • Keep a backup of your CSV file for reference