> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uflo.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage Roster

> Review who is enrolled and match students to your class roster.

**Enrollments** lists everyone in your course. Upload your class roster so paper exams and LMS imports give each score to the right student.

## Open Enrollments

In **Courses**, right-click your course and select **Enrollments**.

<img className="mx-auto block dark:hidden" src="https://mintcdn.com/uflo/VQy9pgOmYta557zz/images/illustrations/screenshot/course-menu-enrollments/light.webp?fit=max&auto=format&n=VQy9pgOmYta557zz&q=85&s=d8ecde43bda4883badae80965a6903a2" alt="Introduction to Biology course card with its menu open and Enrollments highlighted between Update and Download Grades." style={{ maxWidth: "520px" }} width="2399" height="1251" data-path="images/illustrations/screenshot/course-menu-enrollments/light.webp" />

<img className="mx-auto hidden dark:block" src="https://mintcdn.com/uflo/VQy9pgOmYta557zz/images/illustrations/screenshot/course-menu-enrollments/dark.webp?fit=max&auto=format&n=VQy9pgOmYta557zz&q=85&s=a5ca1f4321a51d639f83c8f2fed10ee1" alt="Introduction to Biology course card with its menu open and Enrollments highlighted between Update and Download Grades." style={{ maxWidth: "520px" }} width="2399" height="1251" data-path="images/illustrations/screenshot/course-menu-enrollments/dark.webp" />

## Read the Enrollment List

Teachers appear first, followed by students in alphabetical order.

| Column     | What it shows                                                                   |
| ---------- | ------------------------------------------------------------------------------- |
| Name       | The person's name.                                                              |
| Role       | Teacher or student.                                                             |
| Student ID | The ID from the student's profile, or from your roster if the profile has none. |
| Email      | Their email address. Select it to write to them.                                |
| Sync       | Whether the student is matched to a row in your roster.                         |
| Active     | Whether the person can open the course.                                         |
| Source     | **Uflo** for an enrolled account, or **Roster** for an unmatched roster row.    |

Teachers always show as synced.
Until you upload a roster, every student does too.

Use the filters above the list to narrow it down.

<img className="mx-auto block dark:hidden" src="https://mintcdn.com/uflo/mc8jedJa_T3_qK9F/images/illustrations/screenshot/roster-enrollments-list/light.webp?fit=max&auto=format&n=mc8jedJa_T3_qK9F&q=85&s=392f6f12313bb0b2512b2b54ac5ae469" alt="Course Enrollments list with filters and six rows, including two unsynced Chloe Park rows, one from Uflo and one from the roster." width="2400" height="1356" data-path="images/illustrations/screenshot/roster-enrollments-list/light.webp" />

<img className="mx-auto hidden dark:block" src="https://mintcdn.com/uflo/mc8jedJa_T3_qK9F/images/illustrations/screenshot/roster-enrollments-list/dark.webp?fit=max&auto=format&n=mc8jedJa_T3_qK9F&q=85&s=4685d497b0715c824c91337eaff207a5" alt="Course Enrollments list with filters and six rows, including two unsynced Chloe Park rows, one from Uflo and one from the roster." width="2400" height="1356" data-path="images/illustrations/screenshot/roster-enrollments-list/dark.webp" />

<p className="text-center text-sm text-gray-600 dark:text-gray-400">Unsynced rows are students Uflo couldn't match to your roster.</p>

<Note>
  Every teacher has full course access. Uflo has no teaching assistant or co-teacher roles.
</Note>

## Upload a Roster

Paper exams and LMS imports identify students by student ID, so upload a roster before you process them.
Assessments taken in Uflo don't need one.

<Steps>
  <Step title="Export Your Class List">
    Export your class list as a CSV from your school's student system or LMS.
    The first row must hold column names.
    Include student ID, name, and email columns.

    Use the student IDs that appear on paper exams and in LMS exports.
  </Step>

  <Step title="Select Upload">
    In **Enrollments**, find **Upload Roster** under **Enrollment Info**.
    Select **Upload** and choose the CSV file you exported.
  </Step>

  <Step title="Map Your Columns">
    Uflo reads your file and preselects the columns whose names look like a student ID, name, or email.
    Check each choice before you continue.

    | Field                               | What to choose                                            |
    | ----------------------------------- | --------------------------------------------------------- |
    | Student ID Column                   | The column with student IDs.                              |
    | Name Format                         | **Last First**, **First Last**, or **First & Last Name**. |
    | Full Name Column                    | The name column, for **Last First** or **First Last**.    |
    | First Name Column, Last Name Column | The two name columns, for **First & Last Name**.          |
    | Email Column                        | School email addresses or usernames.                      |

    **Roster Preview** shows the first five rows and the number of students Uflo read.
    Check that the number matches your class.

    <img className="mx-auto block dark:hidden" src="https://mintcdn.com/uflo/mc8jedJa_T3_qK9F/images/illustrations/screenshot/roster-upload-mapping/light.webp?fit=max&auto=format&n=mc8jedJa_T3_qK9F&q=85&s=858125365bbc036863091b988db01141" alt="Upload Roster dialog mapping Student ID, a Last First name column, and Email, with a preview of four students." style={{ maxWidth: "600px" }} width="2400" height="2707" data-path="images/illustrations/screenshot/roster-upload-mapping/light.webp" />

    <img className="mx-auto hidden dark:block" src="https://mintcdn.com/uflo/mc8jedJa_T3_qK9F/images/illustrations/screenshot/roster-upload-mapping/dark.webp?fit=max&auto=format&n=mc8jedJa_T3_qK9F&q=85&s=4e168c60b0109472b2628065368faded" alt="Upload Roster dialog mapping Student ID, a Last First name column, and Email, with a preview of four students." style={{ maxWidth: "600px" }} width="2400" height="2707" data-path="images/illustrations/screenshot/roster-upload-mapping/dark.webp" />

    Select **Match**. Uflo saves the roster and matches students automatically; anyone it can't match shows as unsynced.
  </Step>
</Steps>

## How Automatic Matching Works

Uflo compares each roster row with your enrolled students in this order:

1. **Email:** the roster email matches the student's Uflo email. If your roster lists usernames, Uflo compares them with the part of each email before the @.
2. **Student ID:** otherwise, the roster ID matches the ID in the student's Uflo profile.

Capitalization and extra spaces don't matter.

Each time you open **Enrollments**, Uflo retries unsynced rows, so students who join later or add their ID match without another upload.

## Match Students by Hand

Match a student yourself when neither their email nor their student ID matches the roster.
For example, Chloe Park joined with **[chloe.park@example.edu](mailto:chloe.park@example.edu)**, but your roster lists **[cpark@example.edu](mailto:cpark@example.edu)** and Chloe's profile has no student ID.

<Steps>
  <Step title="Show Unsynced Rows">
    Select **Unsynced** in **Enrollments**.
    The student appears twice: once as a **Uflo** row for their account, and once as a **Roster** row.

    <img className="mx-auto block dark:hidden" src="https://mintcdn.com/uflo/mc8jedJa_T3_qK9F/images/illustrations/screenshot/roster-unsynced-filter/light.webp?fit=max&auto=format&n=mc8jedJa_T3_qK9F&q=85&s=59c8ed38c7d56aeb27b8194612c64f35" alt="Course Enrollments with the Unsynced filter selected, listing Chloe Park twice, once from Uflo without a student ID and once from the roster with ID 20481127, and Daniel Lee from the roster." width="2400" height="960" data-path="images/illustrations/screenshot/roster-unsynced-filter/light.webp" />

    <img className="mx-auto hidden dark:block" src="https://mintcdn.com/uflo/mc8jedJa_T3_qK9F/images/illustrations/screenshot/roster-unsynced-filter/dark.webp?fit=max&auto=format&n=mc8jedJa_T3_qK9F&q=85&s=7edf1fedf07cab9178a345c1c1af871c" alt="Course Enrollments with the Unsynced filter selected, listing Chloe Park twice, once from Uflo without a student ID and once from the roster with ID 20481127, and Daniel Lee from the roster." width="2400" height="960" data-path="images/illustrations/screenshot/roster-unsynced-filter/dark.webp" />

    <p className="text-center text-sm text-gray-600 dark:text-gray-400">Unsynced shows students Uflo couldn't match to your roster.</p>
  </Step>

  <Step title="Open Match Students">
    Right-click either row, then select **Match Students**.

    <img className="mx-auto block dark:hidden" src="https://mintcdn.com/uflo/mc8jedJa_T3_qK9F/images/illustrations/screenshot/roster-match-menu/light.webp?fit=max&auto=format&n=mc8jedJa_T3_qK9F&q=85&s=8274e5f6d5e8f90aa3842c7064ef9644" alt="Course Enrollments with Unsynced selected and the menu open on Chloe Park's Uflo row, showing Delete and Match Students, with Match Students highlighted." width="2400" height="960" data-path="images/illustrations/screenshot/roster-match-menu/light.webp" />

    <img className="mx-auto hidden dark:block" src="https://mintcdn.com/uflo/mc8jedJa_T3_qK9F/images/illustrations/screenshot/roster-match-menu/dark.webp?fit=max&auto=format&n=mc8jedJa_T3_qK9F&q=85&s=8ff7db996a8e4e4d881d33d8eb4b46a9" alt="Course Enrollments with Unsynced selected and the menu open on Chloe Park's Uflo row, showing Delete and Match Students, with Match Students highlighted." width="2400" height="960" data-path="images/illustrations/screenshot/roster-match-menu/dark.webp" />

    <p className="text-center text-sm text-gray-600 dark:text-gray-400">Right-click a row and select Match Students.</p>
  </Step>

  <Step title="Choose the Matching Row">
    In **Match Student**, pick the student's other row and select **Match**.
    The list shows unsynced roster rows for a Uflo row and unsynced accounts for a Roster row.

    <img className="mx-auto block dark:hidden" src="https://mintcdn.com/uflo/mc8jedJa_T3_qK9F/images/illustrations/screenshot/roster-match-student/light.webp?fit=max&auto=format&n=mc8jedJa_T3_qK9F&q=85&s=758684816649843687cb68e562f1d476" alt="Match Student dialog with Chloe Park (20481127) chosen and the Match button highlighted." style={{ maxWidth: "340px" }} width="1944" height="1662" data-path="images/illustrations/screenshot/roster-match-student/light.webp" />

    <img className="mx-auto hidden dark:block" src="https://mintcdn.com/uflo/mc8jedJa_T3_qK9F/images/illustrations/screenshot/roster-match-student/dark.webp?fit=max&auto=format&n=mc8jedJa_T3_qK9F&q=85&s=52e6dbcfec1fbf7956ebaa9e54f01a1a" alt="Match Student dialog with Chloe Park (20481127) chosen and the Match button highlighted." style={{ maxWidth: "340px" }} width="1944" height="1662" data-path="images/illustrations/screenshot/roster-match-student/dark.webp" />

    <p className="text-center text-sm text-gray-600 dark:text-gray-400">Pick the student's other row and select Match.</p>
  </Step>
</Steps>

After the match, the two rows become one synced row and leave the **Unsynced** view.

<Warning>
  You can match only roster rows that have a student ID.
</Warning>

## Student IDs

You can require every student to enter a student ID before your course opens. Contact Uflo Support to turn it on.

## Common Questions

<AccordionGroup>
  <Accordion title="Why does Enrollments ask me to request approval?">
    Uflo must approve your course before students can join it.
    Select **Request Approval** to ask Uflo. [Enroll Students](/instructors/courses/enroll-students) explains course approval.
  </Accordion>

  <Accordion title="Why is a student unsynced after joining?">
    Their Uflo email and student ID don't match any row in your roster.
    Ask them to add or correct their student ID in **Settings** → **Profile**, or [match them by hand](#match-students-by-hand).
    If they just fixed their ID and still show as unsynced, close and reopen **Enrollments**.
  </Accordion>

  <Accordion title="Why are some students inactive?">
    A **Roster** row is always inactive. It's a student on your class list without a matching Uflo account, usually because they haven't joined yet.
    Share your [enrollment link or code](/instructors/courses/enroll-students) with them.

    A **Uflo** row is inactive when that person can no longer open the course.
  </Accordion>

  <Accordion title="Why does the preview show fewer students than my file?">
    Uflo skips rows with more or fewer cells than the header row.
    Fix those rows in your spreadsheet, export the CSV again, and upload it.
  </Accordion>
</AccordionGroup>

## Related Pages

<Card title="Process Scanned Exams" icon="file-arrow-up" href="/instructors/grading/before-grading">
  Upload scanned paper exams and match each one to a student.
</Card>
