/
Chatbot Manager Plugin

Chatbot Manager Plugin

The Moodle Chatbot Manager plugin adds custom functions to allow the Moodle eLearning Chatbot app to interact with user and course data. For courses, it adds functions to the following activities: lessons, quizzes, and feedback. If the custom certificate plugin is installed, further functions are added. Two custom fields are added in Moodle’s data model: Dialing prefix in the user’s profile to store the country dialing code and Bot Mode in the course settings to identify which courses the chatbot should present to the user.

What does the Moodle Chatbot Manager plugin do?

The Bot Manager Plugin creates various customized functions that are used by the Moodle eLearning Chatbot app.  These functions provide new ways to retrieve information by the Chatbot app, which presents users with a conversation-style chatbot, allowing them to create a Moodle user account, enroll on chatbot-compatible courses, and then run lesson content, quizzes, learner feedback, and generate custom certificates, if the related plugin is installed.

Source code and latest updates for the chatbot plugin available at
GitHub - psi-org/moodle-local_chatbot_plugin

Features 

Adds the following custom properties:

  • Dialing Prefix field: stores the user's country dialing code.

  • Bot Mode field: identifies if a course has been configured as a chatbot course.

Adds a custom table:

  • Mdl_local_botmanager_data_entity: table is used to store the user’s chatbot session.

Adds the following functions:

  • local_botmanager_get_courses: search and filter courses with Bot Mode custom field set to “Yes” value. It also provides the course completion percentage and the progress status name.

  • local_botmanager_get_activities: provides information related to the activities supported by the chatbot (quiz, lesson, and feedback). It also checks if the user is enrolled in the queried course; if not, it enrolls the user in the course.

  • local_botmanager_get_quiz_attempts_summary: gets a summary overview of a specific quiz attempt, including grades and time spent, formatted for display.

  • local_botmanager_open_lesson: initiates a user's interaction with the content of a lesson through the Moodle Chatbot app.

  • local_botmanager_view_lesson_page: obtains lesson contents by breaking down each paragraph into small texts to help with legibility on chatbot-based renderings.

  • local_botmanager_get_lesson_attemps_summary: retrieves the summary of a user attempt on a lesson. It includes information about participation, including start and end times, duration, and completion status.

  • local_botmanager_get_feedback: provides feedback activity's title, item ID, name, type, and completion status fields. It also performs transformations to represent questions on the Moodle Chatbot App better.

  • local_botmanager_feedback_answer_question: allows users to submit answers to questions in a feedback activity. It handles the processing of user responses, verifies correctness, and manages completion status.

  • local_botmanager_get_certificates: retrieves information about certificates earned by a user in a specific course. It gathers data such as certificate title, description, user's full name, course short name, completion date, and element positions for display.

  • local_botmanager_create_user: In addition to Moodle’s core fields, it also populates custom user profile field Dialing prefix.

  • local_botmanager_get_user: allows user search based on “userid,” “mobile_phone,” or “email” fields. In contrast to Moodle's core function, it supports search by mobile_phone.

  • Local_botmanager_update_user: allows updating specific user profile fields intended for the Moodle Chatbot app.

  • local_botmanager_get_botdataentity: fetch a single record from the table mdl_local_botmanager_dataentity. This helps the Moodle Chatbot app to track the user's state in the conversation flow.

  • local_botmanager_update_botdataentity: performs an update on an existing record in the table mdl_local_botmanager_dataentity.

  • local_botmanager_delete_botdataentity: deletes a record in the table mdl_local_botmanager_dataentity. This allows the user to restart the conversation in the Moodle Chatbot app.

Related content