Portfolio
Grupo IOE / UNADE · 2023–2026

Moodle ↔ Zoho CRM Integration for Grupo IOE

Custom Moodle local plugin

A Moodle local plugin that centralizes the integration with Zoho CRM and WorkDrive through web services, hooks and an automated student-monitoring task.

My role Full design and implementation of the plugin

  • PHP 8
  • Moodle 4.5+
  • Moodle Web Services API
  • Zoho CRM
  • Zoho WorkDrive
  • Deluge
  • OAuth 2.0
  • Moodle Hooks API
Moodle ↔ Zoho CRM Integration for Grupo IOE
~7.984
Lines of PHP
65
Commits
15
Web services
1
Scheduled task

Screenshots

Problem

Grupo IOE / UNADE delivers its training on Moodle, but the real operation lives in Zoho CRM: enrolments, leads and learning materials stored in WorkDrive. With no bridge between them, every course setup, every resource and every student follow-up meant manual, duplicated work and a real risk of the CRM and the campus drifting out of sync.

Solution

I designed and built local_ioe, a Moodle local plugin that centralizes the whole integration. I implemented 15 web services to remotely create and update course sections, resources, SCORM packages, labels, folders and forums, plus read endpoints for grades and first access. I wrote a Zoho WorkDrive connector with OAuth authentication and access-token caching (reused for 59 minutes) to pull materials straight into Moodle file storage. I added Moodle 4.5+ output-API hooks and Deluge scripts that trigger the actions from the CRM itself. Everything follows the Moodle standard: capability checks, full PHPDoc, a privacy provider and GPL v3 licensing.

Result

The plugin runs in production (v1.0.0) as the single integration layer between Moodle and Zoho CRM. It lets the team orchestrate the course lifecycle from the CRM and automates student monitoring through a daily scheduled task that sends staged messages based on elapsed days, with thresholds and templates configurable from the admin settings.