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.

../../_images/moodle_sync_configuration_tab.png

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 openeducat_timetable.

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 local_wsattendance plugin.

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

../../_images/moodle_settings_tab.png

Role Configuration

  1. Student Role ID :- The Moodle role ID assigned to students. Default 5.

  2. 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

  1. Batch Size :- The number of records sent per API call. Default 50.

  2. Attendance Source :- Which system wins for attendance data — Moodle, OpenEduCat, or Both (last write wins).

  3. 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.

  1. Engagement Window (days) :- A student counts as active when their last Moodle login falls within this many days. Default 30.

  2. 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.

  1. Grade Scale Type :- Percentage, Letter Grade or Points.

  2. Pass Threshold (%) :- The percentage below which a pulled grade counts as a fail. Default 50.

  3. Grade Scale lines :- Optional letter bands. Each line takes a minimum percentage, a maximum percentage, a letter grade and a pass or fail result.

../../_images/moodle_grade_scale_tab.png

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 4.

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.

../../_images/moodle_status_tab.png

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 Settings ‣ Technical ‣ Automation ‣ Scheduled Actions.