Supported Functionality
Perfection Next simplifies the integration process for schools and developers by connecting seamlessly with Google Classroom. This document outlines what functionality is supported, along with key considerations for implementation.
Single Sign-On (SSO)
Perfection Next supports Single Sign-On (SSO) via google using OAuth. This provides seamless access to connected platforms for schools by allowing user to login with their google credentials.
Rostering
Edlink synchronizes core rostering data from Google Classroom, including people (teachers & students), classes, and enrollments. Since Google Classroom does not support multiple schools within its platform, Edlink organizes all entities under a single placeholder school. This approach ensures that data remains consistent across providers simplifying interaction with the API. Parent accounts are not synced because they are usually personal Google Accounts which Edlink cannot sync via our connection to the school’s Google Classroom instance.
Extended Rostering
The Google Classroom API does not support the extended rostering models provided by Edlink like attendance and incidents.
Coursework and Grade Management
Edlink enables developers and schools to list and view assignments created in Google Classroom. However, assignments not created through Edlink cannot be modified, and their grades cannot be updated, due to a limitation of the Google Classroom API. On the other hand, assignments created through Edlink can be fully managed. This includes editing assignment details, updating grades, tracking submissions, and maintaining a complete workflow for managing coursework and related data.
Enrichment with Google Classroom
Google Classroom can be configured as either a primary or secondary data source:
Primary Source: Use Google Classroom as the main source for rostering, assignments, and grading when it serves as the central system for classroom management.
Secondary Source: Google Classroom can supplement data from other systems (e.g., SIS), enriching classroom and assignment information by adding extra information that may only be found in Google Classroom. In this configuration, it's important to note that while Google Classroom can supplement data, assignments and grades are governed by the primary source and cannot be adjusted through Google Classroom. Google Classroom can handle SSO whether it serves as the primary or secondary source, but if the primary system also supports SSO, it takes precedence over Google Classroom.
Primary vs. Secondary
Primary Configuration: Google Classroom should be the primary source if the objective is to manage coursework and evaluate grades directly within Google Classroom.
Secondary Configuration: Configure Google Classroom as a secondary source when other systems contain more comprehensive data, and Google Classroom's role is limited to SSO or supplementary information.
Special Features
Edlink provides support for Google Classroom Add-ons, including basic integrations that extend functionality such as quiz tools or content delivery enhancements. For example, Add-ons can facilitate importing third-party educational resources directly into classrooms and assignments. If you are a developer looking to implement Add-ons, please contact your Customer Success Manager for guidance on supported use cases and limitations.
Implementation Details
How the Integration Works
Edlink's integration with Google Classroom facilitates synchronization of key educational data, including users, courses, enrollments, assignments, and submissions. The integration leverages Google Classroom API endpoints to pull data and transform it into Edlink's unified data model. Google Classroom objects like CourseWork, Courses, and Users are mapped to Edlink objects through a standardized transformation process.
Data Mapping
Google Classroom Entity | Edlink Entity |
User | Person |
Enrollment | Enrollment |
Course | Class |
Guardian | Agent |
Coursework | Assignment |
StudentSubmission | Submission |
Notes
Parents/Observers: Special accounts, like parents and observers, are synchronized where applicable. However, for Google Classroom, parent accounts are often personal Google accounts and are not a part of the school’s Google organization meaning Edlink can not sync them.
Role Mapping: Roles don't exist at the person level in Google Classroom.
Assignment Updating: When updating Assignments, Google Classroom limits which fields can actually be updated to the following:
titledescriptionstatedueDatedueTimemaxPointsscheduledTimesubmissionModificationModetopicIdgradingPeriodId
Connecting Google Classroom
This guide is intended to help school IT administrators connect their Google environment to Edlink. You may need to connect your Google environment to Edlink for the following reasons:
To integrate your Google Classroom environment with an Edlink-connected application.
To enable Google SSO to allow your teachers and students to log into an Edlink-connected application.
Before Getting Started
You must be a Google Administrator to complete the integration process. If you are an admin, please make sure you have access to the App Access Control page in your Google Admin Console. If you cannot log into this link with your school-assigned Google credentials, you will need to have an administrator with additional privileges perform the integration.
Completing the Integration
The learning app that you want to connect to should have sent you an integration link that looks like this (the link below is only an example):
Access the link and follow the instructions to create an Edlink account if you have not done so already.
If you don't have the integration link, let us know by reaching out to Support Team or the learning platform that you need to integrate with.
Helpful Hint!
Since this is the Google Classroom onboarding, you can also connect your Google account to expedite the signup process.
After creating your account, choose Google on the Select Your Data Source screen.
Select the Google icon and then press continue. This will bring you to the following screen:
We highly recommend connecting to Google by creating a service account, but we will list the steps for each option below.
Option 1: Creating a Service Account
Helpful Hint!
This is the recommended method of integrating your service account with Edlink.
Click on the first option in the image above. This will bring up the following screen:
Click on the link “Open the Domain-Wide Delegation Settings Page”. You will need to sign-in or verify your administrator account before you are brought to this page.
Click on “Add New”, and enter Edlink’s Service Accounts Client ID in the pop-up, then enter the OAuth Scopes. (Bot will automatically copy to your clipboard when you click them on the Edlink onboarding page!) Leave the “Overwrite” option unchecked, then click “Authorize” and confirm parental consent.
On the Edlink onboarding page, mark this step as complete and proceed with the rest of the flow!
Option 2: Connect with Your Google Administrator Account
Click on the 2nd option on the image below.
Click the link to visit the App Access Control page in your Google Admin Console.
Next, click the Add app dropdown next to the Connected apps table name.
Select the option OAuth App Name Or Client ID from the dropdown. Paste the following Client ID into the search box and click Search. (You can also copy this from the Edlink onboarding page by just clicking on the ID)
563820043496-o65vgllud5rrstbf8tg0rltlm5pbg868.apps.googleusercontent.com
Edlink should appear as the only search result. Hover your cursor over the result and click Select on the right.
Highlight the box that contains the Client ID and click Select.
For configuring the scope, select your entire organization, unless absolutely necessary to select specific org units. The access can be filtered within Edlink itself and makes giving access to specific users easier down the road. Then click Continue.
On the following page, select Trusted. Your account may also have Allowlist for exemption from API access blocks in context-aware access, if so, also select it, and then click Continue. Click Finish and confirm parental consent.
Edlink will now appear in your list of whitelisted applications. Go back to the Edlink onboarding page and mark this step as complete, then proceed with the rest of the onboarding flow!
Click on the Connect button.You will be brought to an account picker page, select your administrator account and allow Edlink access.
You will then click Validate Your Configuration to confirm the integration has been configured correctly.
Once you've validated your integration (you’ll see a bunch of green check marks),
click Continue Setup. You'll see this final screen:
Well done!
You're now finished—well done! Your school's info will appear in the dashboard within 24 hours. This includes teacher and student names.
Any Questions?
If you still have questions, please contact our Support Team and we’ll get back to you within 24 business hours.
Troubleshooting
Missing Roles at User Level
Roles can be added via a custom transformation.
Why Do Google Classroom Users Not Have Roles?
Google Classroom doesn't assign roles such as teacher, student, or admin to their users. Due to this, we can't sync roles to your application using Google Classroom alone.
Take advantage of our data enrichment feature. This feature uses the school or district's SIS to provide user roles that we can then sync.
Having Trouble Connecting My Google Environment to Edlink
Are You a Google Admin?
Only Google Workspace Admins can successfully make the connection to Edlink.
Heads Up!
If you receive validation errors after connecting your administrator account, please confirm that you are a Google Workspace Super Admin.
Confirm that you're a Google Workspace Admin. To do this, try visiting the Google Admin Console.
If you're not an admin, you'll see the following error page:
If you're not a Google Workspace admin, you won't be able to make the connection to Edlink.
Have You Whitelisted Edlink?
You need to whitelist Edlink to successfully connect.
Once you've confirmed you're a Google Workspace admin, visit the App Access Control page in your Google Admin Console.
Search for Edlink in your whitelisted apps using the search bar.
If Edlink doesn't appear, follow these steps to whitelist Edlink.
Try Connecting to Edlink Again
Once you're confirmed as a Google Workspace admin and Edlink is whitelisted, try connecting again using the integration link provided by the learning app.
Specific Error Codes
GOOGLE_INVALID_ATTACHMENT_TYPE
What this error means: You provided an invalid type in your attachment object.
What this error means in plain English: When creating an assignment, you included an attachment. The type you provided for this attachment is not supported by Google.
How to fix it:
Set the
typeof yourattachmenttolink, or remove your attachment.
More details: Attachment objects documentation.
GOOGLE_INVALID_SUBMISSION_TYPE
What this error means: The submission_type you included is invalid.
What this error means in plain English: When creating your assignment, you included a value called submission_type that Google does not accept.
How to fix it:
Set your
submission_typetolink. Google rejects all othersubmission_types.
More details: Assignments documentation. Submission types enum.
GOOGLE_INVALID_ASSIGNEE_MODE
What this error means: You submitted an assignee_mode that is not supported by Google.
Why this happens: You set the assignee_mode to ` How to fix it:
Set the
assignee_modetoallorindividuals.
More details: Assignee mode enum documentation.
GOOGLE_PROJECT_PERMISSION_DENIEED
What this error means: Google Classroom does not allow modification of assignments or submissions created by other applications.
What this error means in plain English: Your application didn’t create this item, so it’s not allowed to modify it.
How to fix it:
Make a new assignment or submission using the API.
Suggest that the teacher or student modify the existing assignment or submission using the Google Classroom user interface.
GOOGLE_CATEGORY_NAME_TOO_LONG
What this error means: Your category name is too long. Google Classroom category titles have a 100-character limit.
How to fix it:
Shorten your category
titleto less than 100 characters.Add client-side validation to prevent submission of overly long titles.
More details: Category model documentation.
GOOGLE_CATEGORY_NAME_INVALID
What this error means: You must specify a valid name for your category.
Why this happens: You likely left the title field blank when creating a category.
How to fix it:
Resubmit your category with a valid
title.Add client-side validation to prevent submission of invalid categories.
More details: Category model documentation.
GOOGLE_ASSIGNMENT_ALREADY_SUBMITTED
What this error means: This assignment has already been submitted for teacher review.
What this error means in plain English: A student tried to resubmit an assignment that has already been submitted.
How to fix it:
Use the 'reclaim' option to allow the student to modify their submission.
More details: Submission page documentation.
Any Questions?
If you still have questions, please contact our Support Team and we’ll get back to you within 24 business hours.












