Moodle Integrations: Let Me Count the Ways

By May 8, 2017Blog

There are so many ways to integrate Moodle to many different outside systems and resources that it would be impossible to cover them all in this one blog post!

In fact, Moodle.org defines Moodle as “a global learning management platform that supports open standards, and is interoperable by design to enable integration of external applications and information onto a single Moodle platform.”

Pretty broad topic for a short blog post, don’t you think?  So, let’s narrow this down a bit to the topic of courses and enrollments and we’ll sprinkle a little attendance and grades into the mix for good measure.

Counting the Ways

There are several ways to accomplish the above-mentioned Moodle integrations, including but not limited to:

  1. Flat-file
  2. External Database
  3. Web Services API

…and any combination of the above, each of which have advantages and disadvantages.  The best option for your Moodle site is one that can most efficiently and effectively support your institution’s requirements/constraints for data management while providing the most up to date information to your Moodle users.

With that said, we will briefly stick our toes in the water with each of these integration methods listed above and review some key aspects of each.

Flat-file Integration 

The Flat-file method of integration is perhaps the most manual of the three methods.  Flat-file can be used to bulk create courses, generate enrollments/un-enrollments, and more.

The process is very simple.  Build a flat-file, usually in .csv format, containing the information that you want to upload into Moodle.  There are different file layout requirements depending on what you are uploading.  Moodle provides functionality for you to upload the file and then takes it from there to create courses, enrollments, etc. based on what you are uploading.

There are ways to automate this process a bit more.  Files can be uploaded to a destination via SFTP for example. Then, a job can be scheduled on your Moodle server to “listen” for a new file to arrive in the destination and then process it automatically.

  • Flat-file Course Creation – Moodle has built-in functionality for flat-file course creation.  Access the flat-file Course Upload function by navigating to Site Administration > Courses > Upload Courses.   The courses file can be added here conveniently with a drag-and-drop process.  Moodle provides an opportunity to preview the results before they happen in addition to a complete report on results after you click submit.
  • Flat-file Enrollments – Moodle also has built-in functionality for flat-file enrollments generation.  This involves activating the flat-file enrollment method and then configuring it to “listen” for a new file upload and process it automatically.  Enable the flat-file enrollment method by navigating to Site Administration > Plugins > Enrollments > Manage Enrol Plugins.  While on that same Manage Enrol Plugins page, configure the flat-file enrollment method by clicking its Settings link. Once enabled and configured, enrollment files uploaded to the predetermined destination will be picked up and processed automatically.  Flat-file enrollments will display in a course under Enrolled Users with an associated flat-file enrollment method.  This makes it very easy to track the origin of enrollments in courses.

External Database 

The External Database method provides a fully automated integration with your source database system.  This can be used in many ways including but not limited to automated course creation, enrollments generation, and attendance and grades post-back to the source database system to name a few.

To use this method you need:

  1. An External Database Plugin – either Moodle’s core version or a custom version like the one eThink offers.
  2. A secure connection between the Moodle site and the data source – one example of such a connection would be an IPSec VPN.
  3. A few primary connection parameters including:
    • User account with the appropriate access permissions to the data source
    • IP Address, host name, or DSN name of the data source server
    • Data source/database name

Also needed are specifications on exactly how to extract the needed data from the data source.  This can take different forms depending on the External Database Plugin that you are using.  For eThink, it would be query logic.  These specifications should cover how to pull courses and enrollments from the data source.

For attendance and grades integration, you would need specifications on exactly how to send attendance and grade data from Moodle back to the data source.

Web Services API 

Lastly, the Web Services method is one of the more advanced Moodle integrations, utilizing Application Program Interfaces (APIs) to define how software components can interact. Let’s start with Web Services.  A web service is a set of one or more function(s) requested by the client from a provider server.  The client server always initiates the request and the client can be another server, or a mobile app for example. The client provides a token or a username/password for secure authentication with every request, along with the name of the function and any other needed data. Moodle will return the data requested or make changes requested and send back a confirmation.

Moodle offers numerous Core APIs including enrollment, courses, overall data manipulation, and much more.  The full Moodle API documentation can be found on any Moodle site under Administration block > Plugins > Web Services > API Documentation.

With the increased focus on the Moodle mobile application, get ready to see an increase in web service functions on the newest versions of Moodle.  Additionally, it will be easier for plugin developers to create their own.  This evolution will benefit the Moodle mobile application as well as any system that needs to interact with Moodle.

Note: Just a heads up that using this method typically requires that you have someone at your institution who has the programming chops to write the code that will access the Moodle web service functions using the available protocols.

Parting Thoughts…

As Moodle is the world’s most widely used Learning Management System, it makes sense that it must be able to integrate with other systems easily and for various purposes.  Flat-file, external database, and web services are just a few of the ways Moodle can integrate with the other systems at your institution to achieve a cohesive software architecture that efficiently, effectively, and profitably serves your clients, customers, and employees.

When it comes to Moodle integrations, we continue to count the ways!

Happy Learning!

If you would like to speak to a Moodle expert regarding integration, Moodle best practices or how-to’s, simply request a demonstration below.

Request Demo