Skip to main content
Version: Next

Bulk Teacher Import

Import your entire teaching staff in minutes. This guide covers every step of the 6-step wizard — from downloading the template to reviewing results — including required fields, employment types, qualification codes, and common fixes for import errors.


Before You Start

What you'll need

  • Spreadsheet software — Microsoft Excel, Google Sheets, or LibreOffice Calc
  • Teacher data ready — full name, email, gender, employment type, hire date, and highest qualification at minimum
  • Permission — your account must have the Teachers › Create permission. Contact your administrator if the Teachers tab is locked.
  • School selected — verify the correct school is active in the top navigation bar.

Supported file formats

FormatExtensionNotes
CSV (comma-separated).csvUniversal; works in any spreadsheet app
Excel workbook.xlsxRecommended; includes dropdown validation
Legacy Excel.xlsSupported but .xlsx preferred
Maximum file size

Files larger than 10 MB are rejected. For large schools, split the import into batches of 200–500 rows.


How to Open the Import Wizard

  1. In the left sidebar, click People.
  2. Click Import in the People sub-menu.
  3. Click the Teachers tab.

People › Import page with the Teachers tab selected, showing the teacher import wizard start screen.


Step 1 — Upload

Click Download Template to receive a pre-formatted Excel file.

Upload step for teachers showing a "Download Template" button and a central drag-drop zone.

The template contains:

  • Sheet 1 – Data: colour-coded headers (blue = required, grey = optional), format hint row, and three sample teacher rows.
  • Sheet 2 – Field Reference: full column descriptions, accepted values, and dropdown validations for gender, employmentType, and highestQualification.

Option B: Upload your existing spreadsheet

Drag and drop your file onto the upload zone, or click Browse files.

Column name matching

Column names are matched case-insensitively. EmploymentType, employmenttype, and employment_type are all recognised as the same field.

Upload zone showing a file being dragged over it. The zone highlights in blue when a file is hovering.

Required columns

These seven columns must be present or the upload will be rejected:

ColumnDescriptionExample
firstNameTeacher's first nameChiedza
lastNameTeacher's surnameGumbo
emailWork email addressc.gumbo@rufaro.ac.zw
genderGenderfemale
employmentTypeType of employment contractfull_time
hireDateDate employment began2022-01-10
highestQualificationHighest academic credentialbachelor

Employment type values

ValueMeaning
full_timePermanent full-time teacher
part_timePart-time teaching hours
contractFixed-term contract
temporaryShort-term / relief teacher
substituteDay-by-day relief cover

Qualification code values

ValueMeaning
certificateTeaching certificate (e.g. ZINTEC)
diplomaTeaching diploma
bachelorBachelor's degree (e.g. B.Ed)
bachelor_honoursHonours degree
masterMaster's degree
phdDoctorate
professional_certificateProfessional body certification
Wrong qualification code

If you enter Bachelor of Education or B.Ed, the row will fail validation. You must use the exact code: bachelor. Refer to the Field Reference sheet in the downloaded template for the complete list.

Accepted date formats

Input formatExample
ISO 86012022-01-10 (preferred)
Day/Month/Year10/01/2022
Month-Day-Year01-10-2022
Excel serial date44571 (auto-converted)

Click Next to proceed.


Step 2 — Preview

Every teacher row appears in an editable table. Red-bordered rows have validation errors; white rows are ready to import.

Preview table for teacher import showing 48 rows. Row 7 has a red left border. A counter shows "1 error".

Editing a cell

Click a cell to edit it. The editor adjusts to the field type:

  • Employment type / qualification — dropdown with accepted codes
  • Date fields — date picker
  • Subjects — comma-separated text (e.g. Mathematics, Physics)
  • Name / email / phone — plain text

A dropdown editing the "employmentType" cell, showing the five options: full_time, part_time, contract, temporary, substitute.

Error panel

Click the red badge on an errored row to see exactly which fields fail and why.

Preview step showing "Skip invalid rows" enabled. Invalid rows are highlighted and the import counter updates to show only valid rows will be processed.

Skip invalid rows

Enable Skip invalid rows at the top of the table to exclude problem rows and import the rest. Failed rows can be corrected and re-imported in a separate batch.

Click Next to proceed.


Step 3 — Assign

Enrich each teacher's record before saving. This step is optional if your CSV already contains all necessary fields.

Assign step showing a list of teacher names. The first teacher is expanded with accordion sections: Subjects & Classes, Qualifications, Profile.

Subjects & class teaching loads

Use the combobox to select subjects the teacher is qualified to teach. You can also pre-assign specific class divisions.

FieldDescription
SubjectsMulti-select from subjects configured in Academics
Class AssignmentsSpecific class divisions this teacher will teach
Subjects must exist first

Subjects must be created in Academics → Subject Management before they appear in the combobox. If you don't see a subject, set it up in Academics and return to this import.

Qualifications

Add formal qualifications beyond the CSV highestQualification field:

FieldDescription
Qualification namee.g. B.Ed Science Education
InstitutionUniversity or college name
Year obtainedFour-digit year
Certificate numberAwarding body reference

Profile extras

FieldDescription
TitleMr., Mrs., Ms., Dr., Prof.
Preferred nameGoes by a different name
Departmente.g. Sciences, Languages
Office / roomTeacher's base classroom

Tags & notes

Attach free-form tags (e.g. new-hire-2026, hod-candidate) and optional internal notes visible only to administrators.

Click Next to proceed.


Step 4 — Options

Global settings for this import batch.

Options step for teacher import showing three toggle switches.

OptionDefaultWhat it does
Send Portal Invitation EmailsOffSends welcome emails with login links to each teacher's email address immediately after import.
Assign Default Teacher RoleOnAutomatically assigns the school's default Teacher role to every imported account.
Stop on First ErrorOffIf any teacher record fails, the entire batch is cancelled. Leave off for partial success.
When to use "Stop on First Error"

Enable this only if you need guaranteed all-or-nothing atomicity — for example, when re-importing a corrected batch where you have already verified every row is valid.

Click Import to begin.


Step 5 — Import (Processing)

A progress bar tracks the batch in real time.

Import processing screen showing a progress bar at 41%, counter "20 / 48 teachers processed", and elapsed time.

Background processing steps:

  1. Teacher profiles are created.
  2. IAM user accounts are created (if Assign Default Role is on).
  3. Subject and class assignments from Step 3 are applied.
  4. Invitation emails are queued (if enabled).
Keep the browser tab open

Leave the tab open while processing. The import runs on the server even if you close the tab, but you'll lose the live progress view.


Step 6 — Results

After processing completes, see a full summary.

Results screen showing "48 teachers imported successfully" in green, with a sub-note "2 subject assignments failed and require manual setup".

Success summary

ItemMeaning
Green bannerTeachers successfully created
Subject assignment badgeHow many subject links were applied
Download resultsExport CSV with per-row outcome

Error table

ColumnContent
Row #Position in your original file
NameTeacher name
ErrorWhat went wrong
FieldWhich field caused it

After the import

  • Click View Teachers to see the newly imported teachers.
  • Click Start New Import for another batch.
  • Fix failed rows in your spreadsheet and re-upload.

Complete Field Reference

Required fields

ColumnFormatExample
firstNameTextChiedza
lastNameTextGumbo
emailValid emailc.gumbo@school.ac.zw
gendermale / female / otherfemale
employmentTypeSee table abovefull_time
hireDateYYYY-MM-DD2022-01-10
highestQualificationSee table abovebachelor

Personal details

ColumnFormatNotes
phoneNumberPhone number+263772345678
dateOfBirthYYYY-MM-DDOptional
nationalIdTextNational ID number
addressTextStreet address
cityTexte.g. Harare
provinceTexte.g. Harare Metropolitan
countryTextDefault Zimbabwe

Teaching profile

ColumnFormatNotes
subjectsComma-separatede.g. Mathematics, Physics
qualificationsComma-separatedAdditional qualification names

Common Errors & How to Fix Them

File errors

ErrorCauseFix
Missing required columns: emailemail column absent or misspelledAdd or rename the column
Missing required columns: employmentTypeColumn header doesn't matchUse employmentType exactly (camelCase)
File size exceeds 10 MBFile too largeSplit into smaller batches

Row validation errors

ErrorCauseFix
employmentType: invalid valueValue not in accepted listUse one of: full_time, part_time, contract, temporary, substitute
highestQualification: invalid valueWrong qualification codeUse: certificate, diploma, bachelor, bachelor_honours, master, phd, professional_certificate
email: invalid email addressMalformed emailCheck for spaces, missing @, or double dots
hireDate: invalid dateUnrecognised date formatUse YYYY-MM-DD

Import errors (server-side)

ErrorCauseFix
email already existsEmail linked to another accountUse a different email or check the existing account
schoolId not foundSchool context mismatchVerify the correct school is selected

Frequently Asked Questions

Can I import teachers without an email address?

No. Email is a required field for teachers because it is the primary identifier for their portal account and the address used for notifications, timetables, and communications. If a teacher does not have an email address yet, create a temporary one (e.g. firstname.lastname@school.ac.zw) and update it later from their profile.

How do I specify that a teacher teaches multiple subjects?

In the CSV, set the subjects column to a comma-separated list: Mathematics, Physics. Alternatively, leave that column blank and use the Assign step (Step 3) to select subjects from the combobox after upload.

Can I import a teacher who is also a head of department?

Yes. Import the teacher record first. After the import, open the teacher's profile and assign the Head of Department role or flag from the profile page. The import wizard handles basic teacher records — HOD designation is managed separately.

The qualification dropdown only shows a few options. Where is my qualification type?

The qualification code list is fixed (see the table above). If a teacher has an unusual qualification, use the closest matching code for import and add a free-text note in the qualifications column or in the Notes section of Step 3.

What if I need to import substitute teachers for just one term?

Use employmentType: substitute or temporary. These employment types are fully supported and can be updated to full_time later if the teacher is made permanent.

How do I assign a teacher to a department?

Use the Assign step (Step 3) and set the Department field in the Profile section. You can also set it later from the teacher's profile page.


Quick-Start Checklist

  • Downloaded the Excel template from Step 1
  • All seven required columns are present
  • employmentType uses a valid code (full_time, part_time, contract, temporary, substitute)
  • highestQualification uses a valid code (see table above)
  • All hireDate values are in YYYY-MM-DD format
  • All email addresses are valid and unique
  • File is .csv or .xlsx and under 10 MB
  • Preview step shows 0 errors (or Skip invalid rows is enabled)
  • Subjects exist in Academics if you plan to assign them in Step 3
  • Send Portal Invitation is set correctly for your rollout plan

Previous: Import Students · Next: Import Guardians