Skip to main content
ESMOE currently requires schools to upload Excel workbooks rather than using a Kralis API connection. Kralis helps schools prepare those workbooks from their existing records.

Workflow walkthrough

Watch the walkthrough to see how Kralis maps ESMOE students once, generates result workbooks, and supports importing the Ministry’s existing workbooks.
You can also watch the video on YouTube.

Student upload

Open Integrations → ESMOE tools → Student upload. Select the academic year and class. Kralis uses Annual records for that year and class so the export represents the students enrolled in that historical academic context, rather than only the students’ current class. The exported workbook follows the Ministry’s student template, including first name, middle name, surname, gender, date of birth, and parent fields. Review the file before uploading it to ESMOE. The student workbook columns are exported in this order:
  1. Surname
  2. First Name
  3. Middle Name
  4. Gender
  5. Date of Birth
  6. Parent Phone Number
  7. Parent Surname
  8. Parent First Name
  9. Parent Email
The parent surname is populated from the student surname and the parent first-name field is populated as Mr and Mrs. Phone numbers are exported as digits-only Nigerian local numbers so values such as +2348012345678 become 08012345678 for the Ministry template. Gender and date of birth are required for a valid student export. Rows missing either value are shown as invalid for review rather than silently producing an incomplete Ministry workbook. When synchronizing identifiers, Kralis first uses an existing ESMOE registration-number match for a loaded student. Rows without a saved identifier fall back to name matching and can be reviewed before they are saved. The selected Annual year and class only determine the active students loaded for the sync; ESMOE registration identifiers are saved yearless because they remain with students across academic years. The sync review distinguishes identifier matches, high-confidence matches, suggested matches, and unmatched rows. Existing registration-number assignments are not silently overwritten: if a registration number or Kralis student is already used by another selection, the conflict must be resolved before saving. Explicit replacement removes the old assignment and assigns the external identifier to the selected student.

Result upload

Open Integrations → ESMOE tools → Result upload and select the year, term, class, and subject. Kralis supports two workflows:
  • Import ESMOE workbook — upload the workbook downloaded from the Ministry. This is the safest workflow when the Ministry workbook is authoritative or identifiers are incomplete.
  • Generate from Kralis — select an ESMOE subject code and generate a workbook from Kralis records. This is the faster workflow when the class already has saved ESMOE identifiers. It preserves the saved ESMOE registration number and external name, and fills the selected subject code for every generated row.
The Ministry result workbook uses these columns: Student Name, Reg Number, Subject Code, CA 1, CA 2, and Exam Score. For the import workflow, Kralis matches the workbook’s Student Name rows to the selected Annual students, displays the matches for review, and fills: Name matching normalizes case, spaces, punctuation, icons, and name order. Ambiguous or unmatched rows must be reviewed before download. Confirmed ESMOE registration numbers can be saved as yearless student integration identifiers and reused by later result uploads. They can be managed from the Student integration identifiers page. During result upload, Kralis first looks up the Ministry Reg Number among saved ESMOE identifiers. If a saved identifier is found, the linked Kralis student is used directly; otherwise, Kralis falls back to name matching. Since ESMOE registration numbers remain with students across academic years, the sync workflow saves them without an academic year. The score conversion follows the school’s configured exam maximum:
  • When the school exam maximum is 60, Kralis uses the stored exam score and splits the stored pre-exam total between CA 1 and CA 2. CA 1 receives the floor of half the pre-exam total and CA 2 receives the remainder.
  • When the school exam maximum is not 60, Kralis converts the Kralis total to the ESMOE weighting: 20 points for CA 1, 20 points for CA 2, and 60 points for Exam.
  • Any generated or imported row with CA 1 > 20, CA 2 > 20, or Exam Score > 60 is marked invalid and cannot be downloaded as a completed workbook.
The selected subject code is always shown in the result table and preserved in the generated or imported workbook. Kralis currently processes the workbook in the browser and does not save ESMOE workbook rows or scores back to Kralis; only explicitly synchronized student identifiers are persisted.