Enrolment ::: enrol_autoenrol
Maintained by Mark Ward, RobertoRoberto Pinna
Adds functionality to automatically enrol users onto a course, either as they log in to your Moodle site or as they access a course. This plugin was at first intended for use on courses which you want all users to be able to access but can also be configured for more advanced purposes as reserved access courses. Using the new user filtering you can think at Autoenrol as a Swiss Army knife for Moodle enrolments.
Latest release:
3068 sites
118 fans
Moodle 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11

When added to a course this enrolment plugin can enrol users onto a course automatically, either as they log in to your Moodle site or as they access to the course.
It was at first intended for use on site-wide courses such as "Moodle Help" or "Learner Voice".
In addition the plugin has advanced functionality to support automatically grouping and filtering users based upon their profile fields. Depending on how your user accounts are setup this may help you to give access to certain user groups.

Configuration of the plugin is managed by two capabilities which allow administrators to easily control who has access to the plugin.

New advanced user filtering (available from 2.3)
A complete rewrite of Autoenrol filter that use moodle standard availability interface adds great flexibility in user filtering.
The moodle profile availability core plugin unfortunately does not include language and authentication method. 
If you need them, you can install additional availability plugins like Restriction by language and Restriction by authentication.

Warning for 2.3 and 2.3.1 users:
Release 2.3 add a new option to enable/disable new enrolments but not define "enabled" as default value for existing instances.
After upgrade all existing autoenrol instances do not permit new enrolments.
Please update to 2.3.2 in order to fix it. It enables new enrolments for all instances modified before 2.3 upgrade. 


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


Mark Ward (Lead maintainer)
Roberto Pinna: Maintainer
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Roberto
    Thu, Jun 17, 2021, 11:54 PM
    For users with many modified instances after 2.3 upgrade.
    I committed on GitHub a CLI script to check and enable all instances with new enrolments disabled.

  • Fri, Jul 2, 2021, 4:20 AM
    Is there any way to implement auto enrol for new/future users only?
    We have a course called 'HR requirements' that needs to be completed by new joining users only.
    I have tried creating a custom user field called 'Hire date' but I am not able to set filtering like : hire_date > 1 july 2021

  • Fri, Jul 2, 2021, 4:45 AM
    Hi Himanshu Saini, have you configured autoenrol with Group by field set to "Authentication" and Allow only field set to "email"?
  • Fri, Jul 2, 2021, 2:01 PM
    Hello Pavel, How it will distinguish between existing and new users. Also we are using openID connect so none of the users have authentication set as email.
  • Mon, Jul 5, 2021, 2:56 PM
    Hello All,
    I ma trying to setup an lms and for me, new users would keep adding on randomly, so I need to make the enrollment duration dynamic. so everytime a new user is registered/enrolled he/she should get enrolment for next number of days. I could add dynamic enrolment using autoenrol but, after starting to use "autoenrolment", my other plugin i.e. "enrollment timer" has stopped working! is there any alternative that I can get these both to work without any PHP setting?
  • Roberto
    Mon, Jul 5, 2021, 6:22 PM
    Hello Himanshu,
    I'm sorry but at this time profile availability does not support date field, just string fields, so you can't add filter like: hire_date > 1 july 2021
    I submitted an issue in Moodle Tracker in order to ask it as a new feature:

  • Roberto
    Mon, Jul 5, 2021, 6:39 PM
    Hello Shreya,
    unfortunately Enrolment Timer block only works with Self Enrolment.
    You can try to ask to Enrolment Timer developers to add support to other enrolments method that set enrolment duration.
    They should check the user enrolment instance and use the duration set in that instance.

  • Mon, Jul 26, 2021, 6:18 PM
    Hi there. If my course also has guest access enabled as an enrolment method, this seems to stop auto enrol from automatically enrolling the student. Instead the student is presented with a cog icon with the option 'Enrol me on this course'. I have set 'Always Enrol' to 'Yes'. If a course does not have guest access enabled, auto enrol works as usual. Is this by design? Ideally, I would like authenticated users to be auto enrolled on the course, even if guest access is available. Moodle 3.10.3, Auto Enrol 2.2.
  • Roberto
    Mon, Jul 26, 2021, 6:23 PM
    Hi Kirk,
    enrolment process follow the enrolment instances order so need to be move autoenrol before guest access using arrows in course enrolment methods page.

  • Mon, Sep 13, 2021, 6:16 PM
    Hi men! After install, I can't see "Auto Enrol" method in the Enrolments page. Can some help me plis?
  • Mon, Sep 13, 2021, 8:45 PM
    Hi Roberto,
    Is it possible to auto-enrol students without the 'Enrol When' option?
    When the student has matched the rules set in the User Filtering section (complete a list of courses), they are enrolled into the course. No need to logout and log back in. No need to load the course (which they cant see).
    This does work when the 'Synchronise Autoenrol task' scheduled tasks is enabled and set to run every minute. But I'm concerned that this will put extra load on the database.
  • Roberto
    Mon, Sep 13, 2021, 9:10 PM
    Hi Neil,
    I'm sorry but there are only two ways to perform an elaboration in Moodle: with the user action (login or load the course in this case) or with a scheduled task.
    Generally run the scheduled task one time by night it's enough to synchronise enrolments.
    Why you need to run it every minute?

  • Wed, Sep 22, 2021, 6:32 AM
    I must be going blind. I just updated the plugin on our development site and now there seems to be no way to indicate enrolment on loading of the course. I'm feeling pretty silly, here.
  • Roberto
    Wed, Sep 22, 2021, 9:33 PM
    Hi Blair,
    if you don't see the Enrol When setting in instance configuration probably is because your administrator disabled "enrol on login" feature or your role can't enrol on login.
    The only thing you can "set" is "enrol on loading the course" so the setting in not shown.
  • Fri, Sep 24, 2021, 2:05 AM
    Hi, Roberto. I am the Admin, but I now understand. I found the plugin setting, "enrol_autoenrol | loginenrol" and I get it now. Thank you, Roberto.
1 2 3 4 5 6 7 8 9 10 11 12 13
Please login to post comments