Adding a person to Moodle and enrolling that person in a course are two separate actions. First, the learner needs a site account. Second, that account needs an enrolment in the correct course with the correct role. Missing either step is why a student can sometimes sign in but cannot see a course—or appears in a course list but cannot sign in at all.
This guide explains the most useful workflows for administrators, managers, and teachers in Moodle 5.3. You will learn how to create one account, allow self-registration, upload many users with a CSV file, enrol existing users manually, configure self-enrolment, and keep a changing group of learners in sync with a cohort.
Quick answer: To add one learner, go to Site administration > Users > Accounts > Add a new user and create the account. Then open the course, go to Participants, click Enrol users, choose the Student role, select the person, and confirm the enrolment. A teacher can usually perform the second step, but creating site accounts normally requires an administrator, manager, or another role with the relevant permission.
Account creation and course enrolment are not the same thing
Moodle uses authentication and enrolment for different purposes:
- Authentication answers: “Who is this person, and how can they sign in?”
- Enrolment answers: “Which course can this person enter, and what may they do there?”
- Roles answer: “Is this person a student, teacher, non-editing teacher, manager, or something else in this context?”
A user can therefore have an active Moodle account without belonging to any course. The same user may also be a teacher in one course and a student in another. Moodle assigns course roles within the course instead of permanently labelling every account as a student or teacher.
Avoid assigning the Student role at system level simply to give someone access to a course. Course-level enrolment is narrower, easier to audit, and less likely to grant unintended access elsewhere.
Choose the right workflow
| Your situation | Recommended approach |
|---|---|
| You need to add one or a few named learners | Create accounts manually, then use manual enrolment |
| Learners should create their own accounts | Enable email-based self-registration |
| Learners should join a course themselves | Enable self-enrolment, optionally with an enrolment key |
| You have a prepared list of many learners | Upload users with a CSV file |
| Membership changes regularly by department or intake | Create a cohort and use cohort sync |
| Your organisation already has a directory or identity provider | Use an appropriate authentication integration such as LDAP, an external database, or OAuth 2 rather than maintaining duplicate credentials |
| Visitors only need to view content | Consider guest access; guests cannot participate in activities |
Moodle separates these options so that you can combine them. For example, users may authenticate through an organisation’s identity provider while cohort sync controls which courses they enter.
Before you add anyone
Confirm three things first:
- Your permission level. Site administrators can manage accounts. Managers may be able to do so depending on their assigned capabilities. Teachers can normally enrol existing users in their own courses but do not automatically have permission to create site accounts.
- The source of truth. Decide whether Moodle, a student information system, an HR database, or an identity provider owns the user’s name, email address, and status. Maintaining the same identity manually in several systems creates duplicates and stale accounts.
- Your privacy rules. Collect only the profile data your organisation actually needs. Use institutional email addresses or identifiers consistently, and confirm that you have a lawful reason to upload personal data.
The menu wording in this article follows Moodle 5.3 with standard navigation. A custom theme, local role configuration, or plugin may move or hide some controls.
Method 1: Create a Moodle user account manually
Manual creation is the simplest method when you need to add a small number of people.
- Sign in as an administrator or another user allowed to create accounts.
- Go to Site administration > Users > Accounts > Add a new user.
- Enter a unique Username.
- Choose the appropriate Authentication method. Leave it as Manual accounts only if Moodle should manage the person’s password.
- Enable Generate password and notify user if you want Moodle to create a temporary password and email the new account details.
- Enter the required first name, surname, and email address.
- Check the language, timezone, and other profile details that matter to your site.
- Click Create user.
Moodle usernames normally use lowercase letters, numbers, hyphens, underscores, periods, and the @ symbol unless the administrator permits extended characters. Establish one predictable username pattern before adding many people. Changing conventions midway makes duplicates and support requests more likely.
Do not enter a password in a document or send it through an insecure channel when Moodle can generate and notify the user. Also check that outgoing email works before relying on automated account messages.
Creating the account does not add the learner to a course. Continue to the manual enrolment section below.
Method 2: Let users create their own accounts
Email-based self-registration is useful for public training, community courses, and other sites where an administrator should not create every account.
To enable it:
- Go to Site administration > Plugins > Authentication > Manage authentication.
- Find Email-based self-registration and open its eye icon if it is disabled.
- In the Self registration dropdown on the same page, select Email-based self-registration.
- Save the changes.
After registration, the user normally confirms the account through an email link. Self-registration creates the site account; it does not automatically enrol the user in every course. Enable self-enrolment in the intended course or enrol the new account manually.
Before opening registration to the public, review the authentication settings, permitted email domains, site policies, and any available anti-spam controls. Test the complete journey with an address that is not already associated with an administrator account: sign up, receive the email, confirm the account, sign in, and enter the course.
Method 3: Upload users in bulk with a CSV file
For a class list or staff intake, a CSV upload is faster than creating accounts one by one.
At minimum, a new-user file contains these exact headers:
username,firstname,lastname,email
sam.lee,Sam,Lee,sam.lee@example.com
amira.khan,Amira,Khan,amira.khan@example.com
Then:
- Save the file as CSV, preferably using UTF-8 encoding.
- Go to Site administration > Users > Accounts > Upload users.
- Upload the file and check the delimiter and encoding.
- Review the preview carefully.
- Select the upload behaviour and password option.
- Run the upload and inspect the results for skipped records, changes, and errors.
Moodle’s documentation recommends testing a file containing one record before a large upload. That small test catches column-name, delimiter, encoding, and username problems without affecting a full class.
The upload screen can create passwords and email them when the password column is omitted. It can also update existing users, so read the Upload type and Existing user details settings carefully. “Add new only, skip existing users” is safer when your intention is only to create new accounts. A bulk update with the wrong overwrite option can replace valid profile data.
Create accounts and enrol them with the same CSV
You can include enrolment columns in the upload file:
username,firstname,lastname,email,course1,role1
sam.lee,Sam,Lee,sam.lee@example.com,SAFE101,student
amira.khan,Amira,Khan,amira.khan@example.com,SAFE101,student
course1 must contain the course short name, not its full name. The manual enrolment method must be enabled in that course. role1 accepts the role short name; if you omit it, Moodle normally uses the course’s default role, which is usually Student.
You may also add group1 to place learners in a course group. For multiple courses, continue with numbered columns such as course2, role2, and group2. Always test the exact file structure on a small sample first. See Moodle’s detailed Upload users reference before using update, delete, suspend, or multi-course options.
How to enrol existing users manually
Manual enrolment is ideal when a teacher or administrator controls a defined class list.
First confirm that the method is available:
- Open the course.
- Go to Participants.
- Open the page menu and choose Enrolment methods.
- Make sure the eye icon beside Manual enrolments is open.
Then enrol the learners:
- Return to Participants.
- Click Enrol users.
- In Assign roles, choose Student.
- Use Show more if you need a custom start date, enrolment duration, or other available options.
- Search for and select the users.
- If relevant, add them to a group.
- Click Enrol selected users and cohorts.
The wording of the final button can vary slightly with the options available on the site. After enrolment, search the Participants list and verify the role, group, status, and enrolment method.
Be particularly careful with Assign roles. Accidentally choosing Teacher gives capabilities that a learner should not have. Follow least privilege: give each person only the access needed for the task.
Configure manual enrolment defaults
From Participants > Enrolment methods, use the edit icon beside Manual enrolments to review settings such as:
- The default role.
- Default enrolment duration.
- Start-date behaviour.
- Expiry notifications.
- The welcome message.
- Whether old grades should be recovered when a previously unenrolled user returns.
That last option deserves deliberate review. Moodle does not enable Recover user’s old grades if possible by default. Decide according to your assessment and record-retention policy instead of assuming a returning learner’s previous grades will reappear.
How to enable self-enrolment in a course
Self-enrolment lets users who already have site accounts join a course themselves. It works well for optional training, open learning resources, and courses promoted through an internal catalogue.
- Open the course and go to Participants > Enrolment methods.
- Open the eye icon beside Self enrolment (Student). If it is not listed, add Self enrolment from the method dropdown.
- Select the edit icon beside the method.
- Confirm that existing enrolments are enabled and the assigned role is Student.
- Set an enrolment key if access should be limited.
- Review the start date, end date, duration, maximum users, welcome message, and any other settings shown.
- Save the changes.
Account self-registration and course self-enrolment remain separate. A public learner may need to create and confirm an account first, then enter the course and use the self-enrolment option.
Use an enrolment key when appropriate
An enrolment key is a shared course password used only when someone joins. It is not the user’s Moodle password.
Give the key to the intended audience through a controlled channel. If it becomes public, change it in the self-enrolment settings. Moodle notes that changing the key does not remove people who are already enrolled.
If different classes should enter different groups, create course groups and assign a separate group enrolment key to each one. A learner who uses a group key can be enrolled in the course and placed in the matching group in one step. Make sure the course-level key and group keys are not identical.
Enrol a whole cohort—and keep it in sync
A cohort is a site-wide or category-level collection of users, such as “New Employees 2026” or “Year 1 Nursing.” It is different from a course group, which exists inside one course.
There are two ways to use a cohort:
- Selecting a cohort in the manual Enrol users window adds its current members. This is effectively a snapshot; later cohort membership changes are not automatically reflected.
- Adding Cohort sync as an enrolment method creates a live relationship. When someone is added to or removed from the cohort, course membership updates accordingly.
Use cohort sync when enrolment should follow a changing department, intake, location, or programme. It reduces repeated administration and makes the rule behind course access easier to explain.
To configure it, open Participants > Enrolment methods, choose Cohort sync, select the cohort and role, optionally map members to a group, and add the method. Your role needs permission to view the relevant cohort.
Other enrolment methods you may see
Moodle can support several additional methods, depending on which plugins the administrator enables:
- Guest access: allows viewing but does not let guests participate in activities.
- Course meta link: brings enrolments from another course into the current course.
- Category enrolments: applies role assignments from a course category in specific configurations.
- External database, LDAP, or flat file: connects enrolment to another system or data feed.
- Payment-based enrolment: grants access after payment through a configured gateway or enrolment plugin.
Administrators control availability under Site administration > Plugins > Enrolments > Manage enrol plugins. Do not enable every method “just in case.” Each active path should have a clear owner, audience, and removal rule.
How to suspend or remove access
Choose between suspending and unenrolling according to what you need:
- Suspend the course enrolment when access should stop temporarily but the course record should remain associated with the learner.
- Unenrol the user when the course membership should end. Review the effect on grades, group membership, activity data, and reports before doing this.
- Suspend the site account when the person should not be able to sign in anywhere on the Moodle site.
- Delete the account only under an established retention and deletion policy. Deletion is not the routine choice for someone who merely finished one course.
You can edit an individual course enrolment from the Participants page. For repeated offboarding, prefer a consistent rule—such as cohort sync or an authoritative external system—over ad hoc manual removal.
Troubleshooting common enrolment problems
The learner does not appear in the enrolment search
The person probably does not have an eligible site account yet, the account is suspended, or you are searching with the wrong name or email address. Check Site administration > Users > Accounts > Browse list of users if you have permission. Confirm the authentication method before creating a duplicate account.
The learner can sign in but cannot see the course
Check all of the following:
- The user is listed on the course Participants page.
- The enrolment status is active.
- The enrolment start date has arrived and the end date has not passed.
- The relevant enrolment method is enabled.
- The course itself is visible to students.
- A course or activity access restriction is not hiding the content.
In Moodle 5.3, the Participants page can explain why an enrolment is Not current, including an enrolment that has not started, has expired, or belongs to a disabled enrolment method.
Users can register but cannot join the course
Email-based self-registration only creates accounts. Enable self-enrolment inside the course, provide the correct enrolment key, or enrol users manually.
Self-enrolment is enabled, but the option is missing
Confirm both levels: the administrator must enable the Self enrolment plugin for the site, and the course must have an active Self enrolment instance. Also check its start/end dates, maximum-user limit, and whether new enrolments are allowed.
The welcome or password email never arrives
Check the address for typing errors, the recipient’s spam folder, Moodle’s outgoing mail configuration, scheduled tasks, and mail logs available to the administrator. Do not keep recreating the account; that can leave duplicates without fixing the mail problem.
The CSV creates errors or duplicate accounts
Verify that the headers are exact, usernames are unique, fields do not contain unhandled commas, and the selected upload type matches your intention. Open the CSV in a plain-text editor to confirm its structure. Test one row before the complete list.
A safer enrolment checklist
Before announcing the course, test the workflow with a non-administrator learner account:
- The account can sign in using the intended authentication method.
- The learner can find and enter only the intended course.
- The Participants page shows the Student role, correct group, active status, and expected dates.
- The welcome message and password/reset emails arrive.
- The learner can complete a representative activity but cannot access teacher controls.
- Course visibility and restrictions match the launch plan.
- There is a documented process for late arrivals, withdrawals, expired enrolments, and returning learners.
This short test is more reliable than checking the course while logged in as an administrator, because administrators can see content and controls that ordinary learners cannot.
Make the learner journey easier to understand
Correct enrolment rules solve access. Clear interface design solves the next problem: helping new learners understand where to go after they sign in. A consistent dashboard, visible course cards, readable navigation, and mobile-friendly layouts reduce avoidable support questions.
A theme cannot repair authentication or enrolment configuration, but it can make the journey from login to course content easier to follow. If you are refreshing that experience, explore the Moodle themes from Themes Almond after the access rules are working correctly.
If the course itself is not ready yet, start with How to Create a Course in Moodle: A Beginner’s Guide.
Frequently asked questions
What is the difference between adding a user and enrolling a student in Moodle?
Adding a user creates a site account and an authentication method. Enrolling a student connects that account to a particular course with a course-level role. Most learners need both.
Can a Moodle teacher add new users?
A teacher can normally enrol existing site users in a course they manage. Creating a new site account usually requires an administrator, manager, or a custom role with the moodle/user:create capability.
How do I add many students to a Moodle course at once?
For a fixed list, upload a CSV containing the required account fields plus a numbered course column such as course1. Use the course short name and make sure manual enrolment is enabled. For membership that changes over time, add users to a cohort and use cohort sync.
Is Moodle self-enrolment secure?
It can be appropriate when configured for the audience. Use an enrolment key for restricted access, limit its distribution, review dates and capacity, and change the key if it leaks. For higher-control environments, use managed identities and rules tied to an authoritative system.
Why does Moodle show an enrolment as “Not current”?
Common reasons are that the enrolment has not started, it has expired, or its enrolment method is disabled. Moodle 5.3 can show the specific reason on the Participants page.
Can guests complete activities in Moodle?
No. Guest access is view-only; guests cannot participate in activities. Create and enrol a normal user account when progress, submissions, grades, or completion records are required.
Final advice
Use the smallest enrolment method that can remain accurate over time. Manual enrolment is excellent for a handful of learners. CSV upload works for controlled batches. Self-enrolment reduces administration for open courses. Cohort sync or an external system is more dependable when membership changes frequently.
Whichever method you choose, test it as a learner and document who owns account creation, course access, and offboarding. That separation turns enrolment from a recurring support problem into a predictable process.
Sources and verification
This article was checked against the official Moodle 5.3 documentation on 21 October 2026:
- Add new users
- Manual accounts
- Upload users
- Enrolment methods
- Manual enrolment
- Enrolled users and the Participants page
- Enrolment key
- Manage enrolment plugins
Moodle permissions, contributed themes, authentication services, and local plugins can change the available controls. Verify the workflow on a staging site or with a test learner before applying it to a live class.