Welcome!

Bulk Enroll With CSV

TL;DR; For adding more than a handful of people to a course at once, download the CSV template from the course's People tab, fill it in with email addresses and optional passwords, and upload it. Lupo creates accounts for anyone who doesn't have one yet and enrolls everyone in one go.

Bulk CSV enrollment is the fastest way to populate a course when you're rolling it out to a whole team or department.

When to use bulk enrollment

Use it when you have more than around ten people to enroll at once, or when you already have a list of emails in a spreadsheet or HR system and want to avoid clicking through the individual form for each person. For smaller enrollments, just add people one at a time from the People tab — the CSV is overkill for three learners.

The CSV format

From the course's People tab, click Bulk Upload and download the CSV template. The template has the exact column headers Lupo expects, so start from the template rather than building your own.

The columns are:

  • email — the person's email address. Required. This is the unique identifier Lupo uses to look up existing accounts.
  • password — optional. If you leave this blank, Lupo automatically generates a secure password for any new accounts and shows it once after the import. Existing users keep their current passwords regardless of what you put in this column.

A minimal CSV looks like this:

email,password
alice@example.com,
bob@example.com,
carol@example.com,

If you want to set passwords for new accounts:

email,password
alice@example.com,Welcome2024!
bob@example.com,Welcome2024!
carol@example.com,

Use a plain CSV file, not an Excel .xlsx. UTF-8 encoding. Make sure the header row is present and there are no empty trailing rows.

Bulk enrollment upload page with a CSV selected

Selecting a role

After uploading the CSV, you select the role you want to assign to all the users in the file — Student or Observer. The same role applies to everyone in that batch. If you need to enroll some people as Students and others as Observers, do two separate uploads.

Click Import CSV to run the enrollment.

What Lupo does with new users

If a row has an email that doesn't match any existing user in the company, Lupo creates a new account automatically. The new user is added to the company, enrolled in the course at the role you selected, and — if no password was set — receives a generated password shown once after the import. Make note of generated passwords before closing the confirmation screen; they won't be shown again.

Re-running a CSV

If you re-upload a CSV that contains people who are already enrolled, Lupo treats their rows as no-ops — no duplicate enrollments, no errors. This makes it safe to fix a row or two and re-submit the whole file rather than trying to upload only the corrected rows.

Common CSV problems

"File couldn't be parsed as CSV." Make sure you're uploading a CSV file and not an Excel file. The header row must be present and the column names must match exactly what's in the template.

"Invalid email format." Check for stray spaces, a missing @, or typos. The parser is strict about email formatting.

"Too many rows." Very large files (several thousand rows) can time out. Split them into smaller batches of a few hundred rows each.

Where to go next