Sync Configuration¶
Everything the integration is allowed to do is controlled from the tabs of the Moodle instance form. A newly created instance is configured but idle — every toggle is off until it is explicitly enabled, so that the first scheduled job cannot start a full-scale sync before the connection has been validated.
Sync Configuration Tab¶
The Sync Configuration tab holds one toggle per entity type, split into a push column and a pull column.
Push (OpenEduCat to Moodle)¶
Toggle |
Effect when enabled |
|---|---|
Push Departments |
Departments are created and updated as Moodle course categories. |
Push Courses/Programs |
Programs are created as sub-categories under their department’s category. |
Push Subjects |
Subjects are created as Moodle courses. |
Push Students |
Students are created as Moodle users. |
Push Faculty |
Faculty members are created as Moodle users and given the teacher role. |
Push Batches |
Batches are created as groups inside the relevant Moodle courses. |
Push Enrollments |
Student enrollments become Moodle enrolments and group memberships. |
Push Timetable Sessions |
Timetable sessions become Moodle calendar events. Requires
|
Push Admin / Non-Teaching Staff |
Activates the Role Mappings tab and the daily staff push. |
Note
The push runs in dependency order — departments, programs, subjects, students, faculty, batches, enrollments, sessions. Enabling enrollments without subjects and students, for example, leaves nothing for the enrollment step to attach to.
Pull (Moodle to OpenEduCat)¶
Toggle |
Effect when enabled |
|---|---|
Pull Gradebook Grades |
Grade items and grades are read from the Moodle gradebook. |
Pull Assignment Grades |
Assignment submission grades are imported. |
Pull Quiz Grades |
Each student’s best quiz grade is imported. |
Pull Completion Status |
Course completion status is written to the student’s enrollment record. |
Pull Attendance |
Attendance sessions are imported. Requires the |
Create Departments from Moodle Categories |
During an initial import, missing departments are created from Moodle categories. |
Pull Engagement Analytics |
Login and completion analytics are collected per student and subject, and activate the Engagement Analytics dashboard. |
Settings Tab¶
Role Configuration¶
Student Role ID :- The Moodle role ID assigned to students. Default
5.Teacher Role ID :- The Moodle role ID assigned to faculty. Default
3(editing teacher).
Confirm both values against your Moodle site, as described in the previous chapter.
Sync Settings¶
Batch Size :- The number of records sent per API call. Default
50.Attendance Source :- Which system wins for attendance data — Moodle, OpenEduCat, or Both (last write wins).
Auto Sync Enabled :- The master switch for the scheduled jobs. While it is off, the cron jobs skip this instance entirely and only manual operations run.
Important
Moodle processes batch operations as a single transaction, so one invalid record fails the whole batch. Keeping the batch size at 50 — or lowering it while diagnosing a problem — limits how many records a single bad row can block.
Engagement Analytics¶
Visible only when Pull Engagement Analytics is enabled.
Engagement Window (days) :- A student counts as active when their last Moodle login falls within this many days. Default
30.Last Engagement Pull :- Read-only timestamp of the most recent analytics pull.
Grade Scale Tab¶
The grade scale describes how numeric Moodle grades are interpreted when they arrive in OpenEduCat.
Grade Scale Type :- Percentage, Letter Grade or Points.
Pass Threshold (%) :- The percentage below which a pulled grade counts as a fail. Default
50.Grade Scale lines :- Optional letter bands. Each line takes a minimum percentage, a maximum percentage, a letter grade and a pass or fail result.
Status Tab¶
The Status tab is read-only apart from the stale threshold, and is the quickest way to see what actually ran and when.
Field |
Description |
|---|---|
Health Status |
Current connection health. |
Last Successful Sync |
Timestamp of the last operation that completed without error. |
Last Grade Pull, Last Attendance Pull, Last Session Push |
Timestamps of the individual pull and push runs. |
Consecutive Failures |
Failure counter driving the health status. Reset by any successful run. |
Stale Threshold (hours) |
Hours without a successful sync before the status becomes Degraded. Default |
Last Push Timestamps |
Per-entity timestamps for departments, courses, subjects, students, faculty, batches and enrollments. These drive delta sync — only records changed after the timestamp are considered on the next run. |
Scheduled Actions¶
The module ships ten scheduled actions. They are active out of the box, but the push, pull and staff jobs only act on instances where Auto Sync Enabled is on.
Scheduled Action |
Interval |
Purpose |
|---|---|---|
Moodle: Full Push Sync |
6 hours |
Pushes every enabled entity in dependency order. |
Moodle: Grade Pull |
2 hours |
Pulls gradebook, assignment and quiz grades. |
Moodle: Attendance Sync |
4 hours |
Synchronizes attendance in the configured direction. |
Moodle: Health Check |
1 hour |
Tests each connection and raises alerts. |
Moodle: Process Retry Queue |
15 minutes |
Retries failed operations that are due. |
Moodle: Engagement Analytics Pull |
1 day |
Refreshes the engagement dashboard. |
Moodle: Admin Staff Push |
1 day |
Applies the role mappings to Moodle. |
Moodle: Log Cleanup |
1 day |
Removes sync log entries older than 90 days. |
Moodle: Mapping Backup |
1 day |
Exports the mapping table as a CSV attachment. |
Moodle: Orphaned Mapping Detection |
7 days |
Flags mappings whose OpenEduCat record no longer exists. |
They can be reviewed and rescheduled from .