USER GUIDE - Zoho CRM 2 Moodle (Advanced)

USER GUIDE - Zoho CRM 2 Moodle (Advanced)

CRM Modules Customizations:

During the installation of the Moodle extension in your Zoho CRM, custom fields will be created in modules for easy operating and usage during the sync. 


Contacts: 

  • Moodle Role: dropdown values (Student, Teacher).

  • Moodle ID: INT

  • Moodle Username: text

  • Moodle Password: Text 


Deals (Enrollments): 

  • Enrol Status: dropdown values (Pending, Approved).

  • Course Name: Lookup of Products module


Products (Courses): 

  • Moodle ID: INT

Sync Process Flows

Deals (Enrolments) Sync: 

After the field of ‘Enrol Status’ within the Deals (Enrolments) module changes into ‘Approved’ or is created with an “Approved” value, the process to enroll a Moodle user under a course will be initiated. The course lookup from the Products module and Contact lookup field for a student/teacher (moodle user) is mandatory. 

The extension helps to check if the Contact is present in Moodle as an user and if the course (lookup from Products module) is added to Moodle as a course of not. After a successful check and coming across an unique contact, a Moodle user ID & password will be automatically generated for the contact in the module and save user ID in “Moodle ID”, password in “Moodle Password” CRM fields.

As soon as a student/teacher is enrolled, they will get an email notification with a unique Moodle user ID and password from the CRM Deals module.


Grades Sync (Custom Module): 

After a student successfully completes his/her course, the grades are visible in Moodle by clicking on the “Sync Grades” button. The grades will sync to the custom module from Moodle for a Contact (grade_get_course_grade($userid, $couseid)) and is also added in the Contact module as a related list. 


Extension Setting Widget:

The configure tab will showcase a window with two more tabs - Moodle Settings and Moodle Field Mapping. The Moodle Settings tab will contain two input fields - one is for moodle API URL and another is for moodle token and a save button. After getting user input, it’ll save as an organization variable against extension. And the field mapping tab will facilitate users to map CRM fields into Moodle.


Process Flow




How does it work?


  • The extension operates within the Deals module, requiring two key pieces of information: Moodle user details from the Contacts module and course details from the Products module. If both the Moodle user (Student/Teacher) and course details are present, a user can be created or updated in the Deals module under two conditions:
    1. The enrolment status is set to "Approved" in the Deals module.
    2. The Enrol Status field changes to "Approved".
  • This process automatically enrolls the user in the associated course specified in the Deals module as Course Name (Product).
  • Once the Moodle user is successfully converted to Moodle ID, the username to Moodle Username, and the password to Moodle Password, all details will be saved in the Contacts module.
  • If a new course is added, its ID from Moodle is saved in the Products module.
  • If an email address is already registered in Moodle, the user details are updated in the Contact module instead of creating a new entry. Similarly, if a course is already registered, it is updated in the Products module to avoid duplicating data.
  • Exception/Error/misleading queries will generate a note in the Deal/Contact module.
  • Clicking the "Sync Grades" button in the widget's top right corner in the Deals module automatically saves a grade report to the Grades (Custom Module), with the grade name saved as the Grade ID and the grade ID saved as Moodle ID.

Extension Screens:

Screenshot-1: Moodle Settings page for Moodle users with access



Screenshot-2: Moodle fields mapping with CRM module (Contacts, Deals, Products) fields.



Screenshot-3: Enroll a user (student / teacher) under a course.



Screenshot-4:  Sync enrolled users grades in Zoho CRM Grades module 



Screenshot-5: Error will save into Deals module Notes.




Challenges

  1. Moodle fields are predefined can’t be altered from user’s end.

  2. Managing dividation of Moodle widget functionality as a single widget.