Our team has worked with a variety of clients, both large and small, to help integrate their applications with all of the major learning management systems for education. Due to the breadth of our experience, we know what it takes to develop good LMS integrations. Here are five tips to keep in mind the next time you need to write a new integration for your own app with a school's LMS.

1. Understand the data architecture of each LMS that you want to integrate with.

Each LMS structures its data differently. You might find that the way you're handling data from one LMS doesn't make sense if you apply the same integration strategy to another LMS.

For example, Google Classroom itself has no native understanding of what a school hierarchy looks like. Users in Google Workspace are grouped by Organizational Units that the school creates. These units are not hierarchical and are often times arbitrary. Thus, if you need to know which school in a specific district a user belongs to, it can be challenging to do so if that user is coming from Google Classroom.

2. Make sure you avoid common pitfalls of LMS integration.

There are several ways to find yourself in a serious bind if you aren't aware of the common issues of LMS integration before you begin development.

For example, Schoology does not require teachers or students to verify their email address. The Schoology administrator can go into the User Management portal of Schoology and create dummy or fake addresses for any user. This isn't a problem for Schoology, itself, as users typically have to identify which school they are coming from when they sign in. However, this is a problem for apps that solely rely on email addresses from Schoology to identify users.

What happens when a malicious user creates an account in their own Schoology environment that has the same email address as a teacher on your platform? Well if your platform only identifies users by email address, the malicious user can log into app through Schoology and get access to the teacher's profile in your app (which is bad). There are certainly ways to avoid this issue - but if you don't prepare for this ahead of time, you could find yourself struggling to reorganize your own user architecture.

This is just one of the several issues that you have to take into account when creating an LMS integration.

3. Be aware of edge cases.

Each LMS for K12 and higher education has quirks that aren't well-documented or well-known.

For example, Schoology only supports OAuth 1.0 for third-party authentication. Something like that can throw a wrench into your integration if you're not prepared to handle OAuth 1.0 logins.

Another example is how Canvas requires administrators to manually create developer keys for any app they connect to. If you don't have secure ways to transfer these keys from your client to your platform, it could cause a serious security breach for that Canvas environment.

There are many other examples of these kinds of LMS-specific issues, but the important piece to note is that not properly researching these in advance can cause roadblocks in development later on.

4. You can't always reuse an integration.

There are two main ways to integrate a third-party app with an LMS: through the LMS's proprietary API or through the LTI® standard.

Each LMS uses a different API. So if you'd like to develop an API integration with multiple LMSs, you have to write unique API functions for each platform (though Edlink can vastly simplify this).

LTI, however, was designed to be compatible across different platform. In theory, an application that uses the LTI standard can integrate with any platform that supports the app's version of LTI. While is generally true, there are some differences between how each LMS treats the standard.

More importantly, many popular LMSs only support earlier versions of the LTI standard (such as Schoology) and some don't support the standard at all (e.g. Google Classroom and Microsoft Teams). So, while you may have a app that is compatible with one version of LTI, it doesn't mean you can automatically reuse that LTI integration for another LMS.

The moral here is to make sure that you understand how each LMS supports integration and to be prepared to write multiple integrations between your app and different learning management systems...unless you use Edlink.

5. Make onboarding as easy as possible.

No matter which LMS you're integrating with, you will need a teacher or administrator to make the connection. This can be challenging for the connecting user if the onboarding process isn't straightforward. Depending on the type of integrated functions that your app supports, you may need the user to perform some complex tasks.

For example, a Brightspace admin needs to know how to register a new application in their Brightspace portal and then transfer the client ID and secret key securely to your application. If you don't provide proper instruction or a method that allows the admin to securely send you keys, you can run into some friction when trying to make the connection to their learning management system.

When the onboarding process isn't simple, it can certainly get your partnership with your own clients off to a rocky start.


If you'd like to learn more about what makes a successful integration, we'd love to chat with you! Our team works with numerous developers and companies in edtech to get their LMS integrations up and running. If you'd like help integrating with various LMSs, such as Blackboard, Microsoft Teams, Moodle, and more, please feel free to reach out to us at accounts@ed.link or at our support page. We'll get back to you shortly!

Learning Tools Interoperability® (LTI®) is a trademark of the IMS Global Learning Consortium, Inc. (www.imsglobal.org). Edlink LTI integrations are not certified by the IMS Global Learning Consortium, Inc.