Overview
The Upload users area enables Admin users to be able to bulk add New users, bulk update user information, bulk suspend users or to bulk delete users.
Upload users Main Screen
The first screen you will access allows you to add your csv spreadsheet containing data in regards to a particular action you wish to perform using a Upload of users. The function does allow multiple uses at the same time, such as adding new users and updating existing on the same spreadsheet, we highly advise that all actions be preformed individually on a separate spreadsheet to ensure there is no confusion or mistakes. We also recommend that once you have added your csv that you set "Preview Rows" to the maximum to allow you to double check all information before commencing with your upload.
Once you have added your csv and have set the Preview Rows to maximum you may click "Upload Users" to proceed to the next Preview and Settings area.
Upload preview Area
Once you have clicked "Upload Users" on the first main screen you will then proceed to Preview your data and ensure there are no errors or issues reported by the system from your data contained within your csv spreadsheet. You will find the column headings along the top and the "CSV Line" (Spreadsheet row number) down the first column, this helps you identify and make amendments if errors are stated within the "Status" column for each row.
The example image shows the "Status" displaying "Duplicate Address", this means the system has identified that the "Username" and "email" data are already linked to a user account and that these users exist already on the system, this is what we would expect to see if we were just updating existing users. If we were adding new users to the system with new data not recognised within the "Username" and "Email" columns then the "Status" will be blank with no text contained for the row of user information.
The first 8 columns show field headings for the columns as just single words, these are default fields contained within the Moodle system that can be used or completely ignored, except from the "Uername", "Email", "firstname" & "lastname" fields that are the most important fields required to create a new user account on the system. The column fields containing "profile_field_" are custom Profile Fields created for use as "Optional Fields", "Hierarchy Fields" or "Permissions" attached to users accounts.
Different types of Profile Fields require different types of data, the example within the screenshot shows a column headed "profile_field_ismanager" and we can see this field contains zeros (0) for all users, this particular type of field that has been added is the "Reporting Access" checkbox located within the users profile field category "Permissions" and will show on a csv as ones (1) or zeros (0), to represent if the checkbox is check or not checked.
Another example of a Profile Field that will need attention to detail when completing a csv Upload of users is if you are using a Profile Fields created as a "Drop Down Text Field", this will mean if the data on our spreadsheet does not match the values added into this Profile Field for selection and use then you will have a error occur when performing your Bulk User Upload. Each Profile Field that is a Drop Down Text Field will require adding the values into that particular field to allow a user to have that data uploaded onto their account, so please be aware of this if you are using Drop Down Text Fields.

Error Examples
Other errors that can occur will need to be edited within the csv and then re-attempted until you have resolved all errors on your spreadsheet, below are some common issues that you may encounter:
Error Example 1
"username" values are not ALL Lower Case
Error Example 2
Column Headings are incorrect - All must be exact and lowercase, while all custom fields must have "profile_field_" and then your custom fields "shortname".
Error Example 3
Adding New Users - No "password" column added and no Password specified for new user creation.
Error Example 4
File Type not saved as "CSV (Comma Delimited)" format for spreadsheet being uploaded.
Error Example 5
Drop Down Fields used - Error displayed for values contained within the field, meaning the Drop-Down value has not been made available.
Error Example 6
Empty Fields - Some fields cannot exist without a value, this is typically checkbox and sometimes others, if you are not using a field then just remove from the spreadsheet prior to upload.
Useful Tips for Preparing your CSV Spreadsheet
Below are some useful tips for preparing your csv spreadsheet to minimise errors and other issues that can arise when uploading into the site.
Useful Tip 1
Only have fields on your csv spreadsheet that you are making changes to, simply remove the columns that are not relevant to simplify the task you are performing.
Useful Tip 2
Keep "New Users" separate from "Updating Existing Users" spreadsheets, New Users require a "Password" column and Existing do not, if you perform both at the same time you may update existing users passwords.
Useful Tip 3
Perform each task on a separate spreadsheet, this means Adding New Users, Updating Existing, Suspending Users and Deleting Users should ideally be managed on their own separate spreadsheets, this is because if a mistake has happened it is easier to then resolve, while also ensuring you have all updates onto the system filed in a organised way to make checks in the future if necessary.
Upload User Settings
Once you have uploaded your csv spreadsheet and have not been stopped by any errors initially or when checking the users "Status" column you will then be able to scroll to the bottom of your user list and find the "Settings" area, this area will not be visible if the system has found serious errors with the user data uploaded.
Upload Type
The Upload Type will allow you to specify what task you wish to perform with the data you have uploaded, these specific options will dictate the main function you are trying to perform.
We recommend keeping your uploads simple and only performing a single function at a time, such as "Add new only, skip existing users" and "Update existing users only", these 2 functions will do everything you need to use a upload for, while the other 2 are more unique for their use.

Add new only, skip existing users
This is the default upload type and will create a new user account for each row within the uploaded csv spreadsheet, this will skip all existing users found within the spreadsheet and not update the users information if this is different.
Add all, append number to usernames if needed
This creates new user accounts from the uploaded csv spreadsheet, the main differences for this function will automatically apply a number "jsmith1" to any username that has already been taken in the system, which will usually be ignored if there is duplication for the key account fields already used.
Add new and update existing users
This function adds new user accounts if not already existing on the site, while also updating the existing user account information. This can be a bad idea to use if you set a new user account password to each new account, meaning that you could easily accidentally update existing users passwords if running 2 functions simultaneously.
Update existing users only
This function will ignore any user account that does not exist on the system and only update those existing accounts.
New User Password
When adding new users to your site you can get the system to create password and send this to the new accounts email for initial login or use a password added into the csv spreadsheet.
Field required in file
This requires a "password" column to be added within the csv spreadsheet and the password to be added for each user row for creation and use by the user, we recommend using "changeme" as the default first password and this will automatically require the user to change upon their first login to the site.
Create password if needed
This creates a password if one is not provided within the csv spreadsheet and sends this to the new users email address to allow them to login.
Existing User Details
This particular function is only available when using either of the "Update existing users" functions within the "Upload type", it dictates how the user update of information should be handled in the system for the update itself.

No Changes
This function ignores the updating process and does not make any changes for the existing users.
Override with file
This overwrites the existing user data with that contained within the csv spreadsheet for the existing users contained on the spreadsheet itself.
Override with file and defaults
This overwrites the existing user data with that contained within the csv spreadsheet for the existing users contained on the spreadsheet itself, as well as populating any defaults added within the "Default" of the profile field itself or through the use of the "Default Values" area at the bottom of the settings.
Fill in missing from file and defaults
This allows the upload to fill in missing values held on a users account with data provided within the spreadsheet, while also filling in any blanks with "Default" values if created within the profile fields area or within the "Default Values" contained at the bottom of the upload settings.
Existing User Password
This functions controls how the upload will update existing users passwords when setting the "Existing user details" to "Override with file", this means you can mix your adding of new users and passwords, while leaving existing users passwords untouched.
No Changes
This ignores the password column and value for existing users and will not update existing users passwords
Update
This overwrites the existing users passwords to the value contained within the csv spreadsheet upload file.
Allow Renames
This function allows you to update usernames for user accounts currently existing on the site, this requires a special column titled "oldusername" for the currently existing username on the site and the new username to be within the column titled "username" for the changes to be successfully made to the users account.
No
This ignores the column "oldusername" and will not make any username changes to user accounts
Yes
This will allow the system to find the existing user through the "oldusername"column and make the changes to the user account for the new username added within the csv spreadsheet.
Allow Deletes
This function allows you to delete user accounts from the system if the special column "deleted" is added to your csv spreadsheet and each user row within the column is populated with "1" to enable this function to be carried out.
No
This will ignore the special column called "deleted" and not perform any deletes even if this is held on the upload csv spreadsheet.
Yes
This allows the system to completely remove the users account from the system if you are using the special column "deleted" with a "1" present for the user account.
Allow Suspending
This function allows you to suspend user accounts from the system if the special column "suspended" is added to your csv spreadsheet and each user row within the column is populated with "1" to enable this function to be carried out.
No
This will ignore the special column called "suspended" and not perform any suspending of user accounts even if this is held on the upload csv spreadsheet.
Yes
This allows the system to suspend the users account from the system if you are using the special column "suspended" with a "1" present for the user account. The suspending of user accounts can also be used to reinstate suspended accounts to non-suspended accounts through the same method of upload and using a "0" to reactivate the account.
Standardise Usernames
This function will make automatic changes to the user account information provided for usernames if it is not correct for use on the system, such as if a username is not all "Lower Case", the system will then make the username all lower case. This can cause confusion if enabled due to these changes being made automatically and then the users not being aware of the correct username required for login to be used.
No
This skips the use of the standardisation of user names and does not make any alterations to the data provided for account generation or updating.
Yes
This cleans the usernames and automatically corrects any username errors that may have occurred, Moodle itself recommends this use and it can be useful for not troubleshooting errors and cleaning the data yourself, but if you clean the data yourself the you will know exactly what usernames are added for your users.
Select for Bulk User Actions
This function allows the users on the spreadsheet to be linked to the functions held within the "Bulk user actions" area of the Site Administration > Users > Accounts area.
These functions are:
- Confirm user accounts created through email-based self registration which are not yet confirmed by the user.
- Send a message to users (Requires the messaging function to be enabled on your site)
- Delete user accounts.
- Display a list of users on a page.
- Download user data in text, ODS or Excel file format.
- Force users to change their passwords upon login.
- Add users to cohorts (We do not use cohorts on our sites due to using custom course distribution plugins)
No
No users will be selected for use in any bulk user actions
New Users
Only new created user accounts will be selected for bulk user actions
Updated Users
Only existing users being updated will be selected for bulk user actions
All Users
All users contained on the csv spreadsheet will be selected for bulk user actions