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

# Add students to a class

> Get students onto the class list whichever way suits you: sync, import, paste, type, a join code or an invite link.

export const updated_0 = "19 September 2026"

export const page_0 = "/teachers/classes/add-students"

export const label_0 = "Open your dashboard in GradingPal, then pick the class"

export const href_0 = "https://app.gradingpal.ai/teacher"

export const who_0 = "Teachers and co-teachers"

export const plans_0 = "All plans"

export const where_0 = "The class's Students tab, under Add student"

<Card title="Who can use this?" icon="user-check">
  * **Who:** {who_0}
  * **Plans:** {plans_0}
  * **Where:** {where_0}
</Card>

### Limits and notes

* The join code and the invite link are the class's. There is one per class, never per assignment.
* A student added without an email can be graded, but can't receive feedback or an invitation until an email is added.
* On a class imported from Google Classroom, adding students by hand is off by default. Turn on **Allow manual student enrollment** under **Settings > Integrations** first.

## The six ways in

Open the class, select the **Students** tab, then **Add student**.

| Menu item                      | When to use it                                                                                            |
| ------------------------------ | --------------------------------------------------------------------------------------------------------- |
| **Sync from Google Classroom** | The class is linked to Classroom. Pulls in new students; only those whose email Google shares come across |
| **Enroll manually**            | A few students, typed one per row: first name, last name, email optional                                  |
| **Import CSV / Excel**         | A roster file from your school system. Names and emails are read automatically                            |
| **Copy invite link**           | Students join themselves with one link                                                                    |
| **Invite via email**           | Paste names and emails, and each gets an invitation                                                       |
| **Show join code** \[1]        | Students type the six-character code at the join page                                                     |

## Import a roster

<Steps>
  <Step title="Open Import students">
    Select **Import CSV / Excel**. The **Import students** dialog has three tabs: **Upload file**, **Paste roster** and **Manual**.
  </Step>

  <Step title="Add the students">
    Drop a CSV or Excel file, or paste names and emails one per line and select **Parse roster**. The review table shows **First**, **Last** and **Email** for each row; fix anything the reader got wrong.
  </Step>

  <Step title="Add, and invite">
    Select **Add N students**. To send each student with an email an invitation at the same time, tick **Send invite to students with an email** first.
  </Step>
</Steps>

## What a student receives

An invitation email from [hello@mail.gradingpal.ai](mailto:hello@mail.gradingpal.ai) with a link to join the class. The row shows **Invited** until they sign in, then **Active**. Students who join by code or link appear as **Active** at once. A student with no email shows **Add email** in amber; the tab's banner offers **Invite all** once emails are in.

## Students, on their side

Students join at the join page with the code, or by opening the invite link, and sign in with Google or an emailed link. Send them [Join a class](/students/join-a-class), which is written for them.

## How to tell it worked

The **Students** tab lists them with a status: **Active**, **Invited**, **Not invited**, **Invite expired**, or **Not joined** for Classroom students who haven't signed in yet. The class **Overview** checklist ticks **Add your students**.

## If something goes wrong

<AccordionGroup>
  <Accordion title="Every Add student option is greyed out">
    The class came from Google Classroom and manual enrolment is off. Turn on **Allow manual student enrollment** under **Settings > Integrations**.
  </Accordion>

  <Accordion title="Sync skipped some students">
    "Google doesn't share their email with us." Add those students by hand.
  </Accordion>

  <Accordion title="A student's code doesn't work">
    The code may have been reset; **Reset code** stops old codes and links working. Show them the current one from **Show join code**.
  </Accordion>

  <Accordion title="I typed an email wrong">
    Open the row's menu, select **Edit info**, fix it, and tick **Send a new invitation**. Once a student has signed in, their email is managed by their own account.
  </Accordion>
</AccordionGroup>

## Related tasks

* [Invite a co-teacher](/teachers/classes/co-teachers)
* [Class settings](/teachers/classes/class-settings)
* [Join a class](/students/join-a-class), the student version of this page
* [Import classes and rosters](/teachers/google-classroom/import-classes)

<Card title={label_0} icon="arrow-up-right-from-square" href={href_0} horizontal>
  Opens GradingPal on the screen this page describes.
</Card>

<hr />

<p style={{ fontSize: "0.875rem", opacity: 0.75 }}>Last updated {updated_0}</p>

<p>
  <strong>Was this page helpful?</strong>{" "}
  <a href={"mailto:support@gradingpal.com?subject=" + encodeURIComponent("Help page feedback (helped): " + page_0)}>Yes, this helped</a>

  {" · "}

  <a href={"mailto:support@gradingpal.com?subject=" + encodeURIComponent("Help page feedback (problem): " + page_0) + "&body=" + encodeURIComponent("Which of these fits? Couldn't find the step / Didn't match what I see / Missing information / Out of date / Other\n\nTell us more:\n")}>No, something's wrong</a>
</p>

<p style={{ fontSize: "0.875rem" }}>
  <a href={"mailto:support@gradingpal.com?subject=" + encodeURIComponent("Problem with help page: " + page_0)}>Report a problem with this page</a>
</p>
