This page provides details on what data is collected, and how is then stored, exposed and transmitted between the chatbot user, the chatbot app and Moodle.
Data collected
The Moodle eLearning application collects information about the user, so the app can create a moodle user profile. This information includes the user’s name, telephone number and other not required information such as messaging platform id (like whatsApp number or Facebook page scope id), age, gender, organizational role, employee id and extra details about user’s place of work.
Data Privacy and Terms & Conditions
The chatbot includes on its startup flow a dialogue to collect acceptance of the Terms & Conditions, including data privacy, which the user must accept to be able to continue the conversation.
API calls
The application communicates with the Moodle API making calls to Moodle’s standard endpoints, as well as the custom endpoints that the Chatbot Plugin enables. The chatbot app uses a token generated in Moodle, and included as part of the chatbot installation.
Similarly, user’s inputs are posted by the communication service provider into the Chatbot plugin, which are followed by the chatbot prompts that are send via the security protocol dictated by the communication service provider.
The current Communication Service Provider is Twilio
Data in Transit
Moodle Chatbot App communicates with two external tools:
Moodle Platform.
Communication service provider (twilio).
Moodle Platform: Moodle Chatbot App relies on using Moodle API to display information such as course details and activity details. Moodle API requires access via tokens. This enables a user to use specified functions to work outside moodle without any sharing credentials. For more information, check Moodle’s documentation: https://docs.moodle.org/402/en/Using_web_services
Communication service provider (Twilio): Moodle Chatbot App requires a connection to receive/send user’s input and Bot messages. This is done by using Twilio’s webhooks to trigger all featured functionalities. Data exchanged with the communication service provider is always transferred as encrypted, via https (port 443). This communication service provider secures its information by checking both webhook provided to Twilio and webhook used in Moodle Chatbot App. If both URLs match, then the data is procesed. For more information, check Twilio’s documentation: https://www.twilio.com/docs/usage/webhooks/webhooks-security
Data at rest
Moodle Plugin: the plugin creates two custom tables in Moodle that are used to store the session log and an app log.
Session log: status of the conversation by user. Allows users to always come back to continue the chatbot conversation in the same paints after a session expires.
App log: log of all traffic, showing all user input as well as content sent to the user.
Chatbot app: the app requires to store information about user last step/input in the chat. Chatbot App stores this information in the Session log table created by Moodle Plugin.