> [!NOTE]
> **Note:** This guide is for SIS platforms that want to partner and integrate with Google Classroom. If you're a teacher or administrator that *uses* a SIS, you can check your [Student Information System's partnership status](https://support.google.com/edu/classroom/answer/9356588?sjid=5722900537949084202-NA#partnerships&zippy=%2Ccheck-sis-partnership-status).

Google Classroom supports roster import and gradebook sync for a number of
OneRoster-compliant Student Information Systems (SIS). Google partners with SIS
platforms that meet Google-specified OneRoster requirements.

![](https://developers.google.com/static/workspace/classroom/images/connect-your-SIS.png)

**Figure 1.** When Student Information Systems (SIS) partner with
Classroom, administrators can choose the SIS in the drop-down.

## SIS partner onboarding journey

The following is a quick overview of the SIS partner onboarding journey:

1. **Express interest** :
   If you are interested in partnering with Classroom, fill out
   the [interest form](https://docs.google.com/forms/d/e/1FAIpQLSfHEy9dkwuDpvWghYWaVmgrPS58CL5YXO5f6jB_5dOO-_eotg/viewform).

2. **Explore and run the conformance tests** :
   To understand if your SIS is ready to integrate with
   Classroom, you can review the [conformance tests](https://github.com/googleworkspace/oneroster-integration-conformance-tests) to
   familiarize yourself with Google's requirements. You have the option of
   running the conformance tests before expressing interest to the
   Google Classroom team to determine how closely your product meets Google's
   requirements.

3. **Connect with the Google Classroom team**:
   The Classroom team will reach out following your interest
   form submission if there is an opportunity to partner.

4. **Share your test results \& build the end-to-end integration**:
   Once the Classroom team has contacted you, share your
   conformance test results. Your team will work with Google to validate and
   complete the integration.

## Conformance tests

The Google-defined [conformance tests](https://github.com/googleworkspace/oneroster-integration-conformance-tests) exist to provide SIS partners
a way to determine whether their product meets Google's OneRoster consumption
requirements and to minimize errors that users might experience when utilizing
SIS integrations in Classroom. The tests are published on GitHub.

### Access and run the tests

In order to run the tests, you need the following:

- Token URL to retrieve OAuth 2.0 credentials
- One Roster URL ending in `/ims/oneroster/v1p2`
- Client ID
- Client secret
- A teacher email address

You can run the tests by using [Google Colab](https://colab.research.google.com/) or [Jupyter notebook](https://docs.jupyter.org/en/latest/running.html). Both Colab
and Jupyter notebook let you run all tests at once. This helps you generate the
test results to [share with the Google Classroom team](https://developers.google.com/workspace/classroom/sis-integrations/validate-your-SIS#share-test-results).

> [!IMPORTANT]
> **Important:** Successful conformance test results don't guarantee partnership approval or immediate inclusion in Google Classroom.

### Requirements and expected behavior

Read through the following pointers on the tests. In GitHub, each test has a
title that is referenced in the table. These pointers can help clarify
questions, but it's not a comprehensive list of the tests. Ensure you have run
all the tests provided in GitHub to ensure conformance.

> [!IMPORTANT]
> **Important:** The following table includes a few pointers to help you integrate with Classroom. Use the conformance test results to ensure the requirements have been met.

| Test | Pointers |
|---|---|
| Teachers: GetAllTeachers | The `GET /teachers` endpoint is called with a `limit` query parameter. In subsequent tests, this parameter is used to ensure that your product can support a page size of 10,000. |
| Teachers: GetAllTeachers with email filter | The `GET /teachers` endpoint is called with a `filter` query parameter used to filter based on a teacher email address. This will use the teacher email address you provided in the Credentials section of the tests. |
| Classes: GetClassesForTeacher | The `/teachers/{teacher_sourced_id}/classes` endpoint is called with a `filter` query parameter used to filter based on active classes. |
| Students: GetStudentsForClass | The `GET /classes/{class_sourced_id}/students` endpoint is called. The student email must be returned in the response. |
| GetGradingPeriodsForTerm | Grading periods support is tested using the `term_sourced_id`. This `term_sourced_id` is used to retrieve the grading periods in the term by calling the `GET /terms/{term_sourced_id}/gradingPeriods` endpoint. |
| LineItem: Create | Grading periods aren't required when calling `PUT /lineItems/{line_item_sourced_id}`. |
| LineItem: Edit | The API call shouldn't return an error if a long assignment title length is included. The test includes an assignment title length of 100+ characters. |
| Result: Edit | It should be possible to set the `score` to a value greater than the `resultValueMax` to represent extra credit. |
| Result: Delete | The `DELETE /results/{result_sourced_id}` endpoint is required. |
| LineItem (Optional / Cleanup): Delete and Get | The `DELETE /lineItems/{line_item_sourced_id}` endpoint is not required. It is optional and used for data clean-up. The subsequent `GET /classes/{class_sourced_id}/lineItems` endpoint is also optional, and tests that the line item was deleted. |

### Share the test results with the Google Classroom team

After you run the tests, a full report with the results of each test is
generated. The results are used to determine whether your product meets Google's
OneRoster 1.2 consumption requirements. Download or take a screenshot of the
generated report to share with your contacts on the Google Classroom team.

## Obtain a developer demo domain

Once your conformance test results are reviewed by the Google Classroom team,
a developer demo domain lets you validate your end-to-end integration. Keep in
mind that successfully passing the conformance tests doesn't guarantee
partnership or integration approval.

A developer demo domain is a live, test Google Classroom environment to help
you validate that your integration is working as you expect. Complete the steps
to [get a developer demo domain](https://developers.google.com/workspace/classroom/guides/onboarding/prerequisites#get-developer) and
[request a demo domain upgrade](https://developers.google.com/workspace/classroom/guides/onboarding/prerequisites#request-demo). The upgrade
provisions your domain with 10 Google Workspace for Education Plus licenses. These licenses need to be
assigned to test users in your developer domain so they can test the SIS
integration features in Classroom.

## Frequently asked questions

**1. What data model does Classroom expect from the SIS?**

Classroom adheres to the OneRoster 1.2 specification.
If your SIS uses a different data structure, you might encounter unexpected
behavior. For example, if your system supports a nested relationship
between grading periods and grading categories, this falls outside the
OneRoster 1.2 specification, and you should test your integration thoroughly
to ensure proper compatibility.

**2. Which grades and assignment statuses are exported to the SIS?**

Only returned grades or submissions marked as "missing" or "excused" are
exported to the SIS. Draft grades aren't exported.

**3. What happens to the line item in the SIS if an assignment is deleted in Classroom?**

Deleting an assignment in Classroom does not delete the
corresponding line item in the SIS. This prevents accidental data loss and
unintended cascade deletions.

## Links

- [Conformance tests on GitHub](https://github.com/googleworkspace/oneroster-integration-conformance-tests)
- [Export grades to your Student Information System (SIS) gradebook](https://support.google.com/edu/classroom/answer/9356369)