The Situation:

Districts need applications to integrate with their school data systems. As a result, product managers need to find an integration solution for their app.

  • You, the product manager, narrowed down to build an integration with Google Classroom (an LMS) or Edlink (a unified API). Either of these solutions solve the problem today. But it isn’t clear which one is best for the app and developer team.
  • The team only has time to build one integration before this back-to-school season.

Here’s what to consider to make a decision.

Why Consider Google Classroom?

Google Classroom is one of many Google products. In a 2021 press release, Google Classroom notes the 150+ million users the LMS has grown to.

  • Google Classroom already has single sign-on capabilities. Integrating for just SSO makes sense for apps that don’t need deep linking features (rostering, grade passback, or content creation).
  • Using Google Classroom also creates Google accounts, which allows access to other Google Workspace products (e.g. Docs, Spreadsheets, Slides, etc.). This access is a selling point for the LMS. And your product’s future development can leverage Google Workspace.
  • Google Classroom lets users authorize third-party applications. And your development team and administrators both have access to the Classroom API. With the authorization and access to the API, implementation to a classroom (and not a district) is possible.

Common Google Classroom Error Codes

There are three common error codes we see when building an integration with Google Classroom (documentation):  

  • @ProjectPermissionDenied | The Developer Console project is not permitted to make this request.

This error shows up when you try to modify an assignment in the Google Classroom API that you didn’t create. I.e., if a teacher uses the Classroom API to create an assignment, your company can’t update it.

  • INVALID_ARGUMENT | You cannot modify the attachment(s) for an assignment.

The API throws that error if you try to modify attachments for a submitted assignment.

  • There isn’t a concept of “global roles” or “schools”.

You won’t be able to identify common roles like you normally could in an LMS. Roles like “teacher” or “student” don’t exist. They’re determined individually on a class-by-class basis. If you need to define a school in a particular district, the district’s information will lump together.


A unified API acts as a single point of integration for multiple data sources. Edlink gives product managers an integration with Google Classroom and other edtech systems (Clever, Schoology, Moodle, Blackboard, etc…). Edlink has 16+ million users and gives sales teams the ability to just say “yes” to integrations. Here are other reasons to consider Edlink, too:

  • Save your team time and product development money with one connection to Edlink. Don’t spend time discovering quirks that come with LMS integrations.
  • Edlink supports LTI 1.1 launch and 1.3 launch along with an API for integrations. This flexibility lets apps integrate the way they need. Google Classroom doesn’t support any version of LTI.
  • Stay focused on your product by only building one integration to Edlink. With that connection, your ability to scale opens new revenue doors.  

Like any building process, there’re common blocks that people face. These are some of those:

  • Understanding Edlink’s data model and labeling organization. Example: an LMS labels a piece of data as a course, but Edlink calls it a class.

As a unified API, Edlink must use clearer terminology to connect with multiple educational data systems. Edlink organized and set terms to display proper relationships to different types of data across these systems. Not all systems will use the same terminology or have the same relationships. So, if an app were to integrate with several educational data systems, the app’s labels and structure would have to adapt for each new integration. Instead, when a new app connects to Edlink, they receive data in a clear and organized way each time. Edlink created this guide to help product managers understand the data model and labeling organization.

  • Learning the differences of Edlink’s Graph API and User API. Example: your token only works for User API but not the Graph API.

To have the full range of interoperability, functionality, and control over data that apps gain from Edlink, it’s important to architecturally separate functionality across APIs. This spread reduces the request load to a single API and specializes it, making the results of a request fast and efficient. These differences between the APIs are already organized through this Edlink guide.

Check out Edlink’s documentation here. These guides are all in Edlink’s documentation.

Which One Should You Choose?

Making the right choice for your product depends on some of these questions.

  • Will your app only need a Google Classroom integration ever?
  • Are full integration features and LTI important for your app?
  • Does your team have extensive experience in managing integrations?
  • Can your product take a pause in its roadmap to focus on this one integration?

Learn More on Integrations

If you’re interested to learn more about integrations and Edlink’s Unified API, here’re other articles we’ve written:

Set Up a Meeting

Ready to see if Edlink can help you on your integration journey? Email us at support@ed.link to set up a call.