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.