Global CSV feeding for Moodle

Experimental ::: tool_sync
Maintained by Valery Fremaux
This plugin concentrates all CSV based approaches for feeding massively Moodle with initialisations as courses, users, and enrollements, completing all existing mechanisms with missing parts (cron automation, failure reports, tryback files, archiving, CSV files repository and selection, instant upload and run).
Latest release:
49 sites
18 fans
Current versions available: 10

IMPORTANT NOTE FOR PLUGIN ARCHIVE AVAILABILITY : due to the large amount of plugins supported, it is NOT affordable for us to update packages. Please use the Source Control urls to our github to get plugins archives

The Admin Tool Sync plugin provides an industry level unified set of tools in order to massively operate Moodle loads and unloads of major data entities.

This tool was priorily intended to complete all standard tools around CSV files loading with systematic handling by cron, manual operation, and resulted more confortable to join all those tools in an "all in one" version. Most of the code for making end operations is largely inspired frol core CSV features, with some enhancements.

The versions < 2.7, use a special <moodledata>/sync file manager (outside moodle file system to allow easy feeding of CSV files from an outside administrative process). From Moodle 2.7 ahead, the sync file manager has been reintegrated into standard moodle file handling, although the original sync container is still used for csv external inputs just before cron runs. All the files in <moodledata></sync will be automatically integrated into the Admin Tool Sync filearea for processing.

What is added :

  • All tools (except course reinitialisation or deletion) can be fully croned.
  • All tools can generate a tryback file keeping only discarded inputs (failed)
  • All tools will archive the processed files into the archive directory
  • All tools can be used from an immediate file upload (manual run)
  • All tools can use any input file stored into the CSV file container, and keep track in configuration of which file to use.
  • Course mass reinitialisation tool is added
  • Course mass creation handles template designation to initiate a course with content, either pointing an available backup (all versions) or pointing an external file in the server (>= 2.7)
  • Exhaustive reports give detailed status on each operation.
  • Reports are generated ans stored in "reports" folder.


Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5
Screenshot #6


Valery Fremaux (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Wed, Sep 10, 2014, 10:15 PM
    Hi again Valery. Thanks for sharing yet another plugin with the community. I quite like the idea of the tool. I can see its potential in all development, testing and production setups.

    There are some issues that raised during the review of the plugin.

    * The SQL function IF() is MySQL specific and makes your plugin fail on other databases. If there is no other way around, you will probably have to try and implement it via SQL standard CASE statement.
    * Please pay attention to PHP Notices thrown in development debug mode (e.g. Notice: Undefined property: stdClass::$users_filelocation in admin/tool/sync/users/execcron.php on line 50).
    * It would really help if there was an in-built help on CSV files format.

    Fow now, I am marking this plugin as needing more work to get these issues addressed. Thanks for your patience with the approval process.
  • Wed, Jul 15, 2015, 8:05 PM
  • Thu, Jul 16, 2015, 2:32 AM

    Thanks Valery for sharing the tool with the community. The absence of relevant documentation/help in English makes the functionality testing a bit harder. Also, some coding related issues were detected during the review. For now, I moved the plugin into the Incubating category. Once the issues reported to your bug tracker are fixed, please feel free to contact us so that the plugin can be re-evaluated and put into the Admin tools category.

  • Wed, Jul 22, 2015, 11:53 AM
    I think this tool does exactly what i need, but I have no idea how to use it. The documentation is very limited. Is there any chance of an English guide?
  • Wed, Nov 25, 2015, 6:46 PM
    Any information about 2.9 support ?
  • Wed, Mar 27, 2019, 7:16 PM
    When do we get support for moodle 3.2 version?
  • Thu, Sep 10, 2020, 9:14 PM
    this plugin is really great for me. I use tasks in cron to do the work, but I did not find yet the task about Course group operations ; did I miss something or should I write some cron scrip for that (if so, a example would be most appreciated)
    Thanks for the job ;)
  • Fri, Nov 27, 2020, 7:25 PM
    Hi (again, lately)
    I added default values for groupsync_task and added this task (roughtly) to be able to get it via crontab.
    changed : /tool/sync/db/tasks.php
    inserted in DB directly (I know, bas way, but really efficient for an ignoramus in moddle-prog.) : component=tool_sync and classname=\tool_sync\task\groupsync_task
    Sure there is a better way, but it works ;)
  • Sketch...
    Thu, Oct 28, 2021, 2:25 PM
    FYI, the latest versions of this plugin are on, not here on
Please login to post comments