Skip to main content

Integration Setup with Canvas

Outlines the steps need to configure an integration between Canvas and Perfection Next.

Updated today

Canvas Integration

Supported Functionality

Perfection Learning's integration with Canvas offers smooth data synchronization and Single Sign-On (SSO) capabilities, streamlining the connection between educational platforms. This document highlights the integration's features, limitations, and applicable scenarios for connecting Canvas to Perfection Next.

Single Sign-On (SSO)

Canvas supports full SSO integration with Edlink, enabling users to access platforms using their Canvas login credentials.


Rostering

Edlink imports essential rostering data from Canvas, including people, courses, and enrollments. Canvas sections are automatically interpreted as classes in Edlink, removing the complexity of handling sections for developers.

Extended Rostering

For advanced needs, Edlink provides extended rostering models like attendance and incidents. However, Canvas does not support these additional models.

Coursework and Grade Management

The integration fully supports coursework and grading functionalities. Assignments, submissions, and grades can be synced and managed directly within Edlink, maintaining alignment with Canvas' grading system.

Enhancing Data with Canvas

Canvas can function as a primary or supplementary data source. When connected as a secondary, Canvas enriches data from other systems, such as an SIS, by filling in gaps that may exist in those platforms. It's important to note that while Canvas can supplement data, assignments and grades are governed by the primary source and cannot be adjusted through Canvas when connected this way. Canvas can handle SSO whether it serves as the primary or secondary source, but if the primary system also supports SSO, it takes precedence over Canvas.

Primary vs. Secondary Configuration

Canvas should be set as the primary source if your goal is to manage and evaluate coursework directly within the platform. Conversely, if another school system contains the primary data and Canvas is needed to provide supplementary SSO or additional information, it should serve as the secondary source.

Implementation Details

Data Mapping

All sections in Canvas become classes in Perfection Next. The courses become courses in Perfection Next.

Canvas Scopes

Perfection Next uses the Canvas GraphQL API to sync efficiently with Canvas. However if scopes are enabled the GraphQL becomes inaccessible. This can result in long delays when syncing data. It is recommended not to enabled scopes for the Perfection Next integration.

Accept the EdLink Invitation

If you integrate with Canvas, your school will be connecting to our Perfection Next platform via a third-party integration service called Edlink.

When you start a Canvas integration, we will first email your school’s LMS administrator an invitation to connect with us via EdLink. Your LMS administrator will need to accept this invitation and follow the setup instructions to get started with EdLink.

Connecting Canvas

Step 1: Creating Canvas Developer Keys

Log into your Canvas admin account and navigate to the +Developer Key button in your Admin tab.


Select +API Key and insert the following details:

  • Key Name: Edlink

  • Owner Email: support@ed.link

  • Redirect URIs: (Please note: These URIs should be on separate lines in this field.):

https://ed.link/api/authentication/canvas
https://ed.link/sso/administrator

All other fields should be left blank. Hit Save, and switch the State toggle next to the developer key to ON.

Step 2: Completing the Integration

The learning app you want to connect to should have sent you an integration link that looks like this: https://ed.link/integrate/abc456789-efg456-123456

If you don't have the link, reach out to support@perfectionlearning.com, and we will proivde assistance.

The link will direct you to create an EdLink account.

If you have connected an app to EdLink before, please log in with that account.

Enter your Canvas domain (including https://) into the provided field. Next, copy and paste the Developer Key ID and Developer Key Secret into the respective fields.

Once all fields are completed, select Connect to link your account. You will be prompted by Canvas to authorize Edlink to access your account. Selecting Authorize will bring you back to Edlink.

Next, click Validate Your Configuration to confirm the integration has been configured correctly.

Scoping Canvas Develer Keys {scopes}

Edlink does support the use of API scopes, but it is not recommended at this time due to constraints in the Canvas API. The following are the scopes that Edlink needs:

  • Select Allow include parameters

  • Select Read Only scopes

  • Select the following additional write scopes:

    • url:POST|/api/v1/courses/:course_id/assignments

    • url:PUT|/api/v1/courses/:course_id/assignments/:id

    • url:DELETE|/api/v1/courses/:course_id/assignments/:id

    • url:POST|/api/v1/courses/:course_id/assignments/:assignment_id/submissions

    • url:PUT|/api/v1/courses/:course_id/assignments/:assignment_id/submissions/:user_id

Once you create the scoped developer key, you'll follow the same Edlink onboarding guide, with one difference. Select Advanced Options and Enable Scopes in the onboarding flow

Note: Applying scopes can break integrated functionalities in apps. We recommend that you test your integration before fully releasing it to your school or district.

LTI 1.3 Setup

This guide focuses on Edlink's recommended hybrid integration (API + LTI 1.3). However, it is also possible to configure your app using an LTI Advantage–only setup.

Please confirm with the learning app that an LTI-only source is something they support before proceeding.

Check out the following guide to get your LTI Advantage source set up in Edlink:

Heads up!

This process should be completed once you have finished integrating with your learning application. To learn more about connecting your Canvas instance, check out this guide:

Step 1: Open Developer Keys in Canvas

  • In Canvas, go to:
    AdminYour School NameDeveloper Keys (left column)

  • Click + Developer Key+ LTI Key

Step 2: Enter Configuration Details

  • Choose the Enter URL method

  • Fill in the following fields:

    • Key Name: Enter the name of the learning application

    • Owner Email: support@ed.link

    • JSON URL: This is the Configuration JSON found in the Edlink dashboard.
      Refer to this guide for help:

  • Select Save


Step 3: Activate the Developer Key

  • Find the key you just created

  • Toggle the State switch to the "on" position

Step 4: Copy the Client ID to EdLink

  • Copy the Client ID from the Details section in Canvas

  • Go to the LTI 1.3 section of the EdLink dashboard

  • Paste it into the Client ID field and click Update

  • Save the Client ID for use in the next step

Step 5: Add the App in Canvas

  • In Canvas, go to:
    SettingsAppsView App Configurations

  • Click + App

Step 6: Complete the Installation

  • Choose By Client ID as the Configuration Type

  • Paste in the **Client ID you saved from Step 4

  • Click Submit

  • Then click Install when prompted

You have successfully installed your learning application as an LTI source!

Connecting LTI Advantage

You must be an Administrator in your Learning Management System (LMS) to complete the integration process.

Step 1: Start the Integration Flow in EdLink

  1. Click the integration link provided by your learning app.

  2. Create an Edlink account if you don’t already have one.

    If you’ve connected an app to Edlink before, log in with your existing account.

  3. Navigate to the SSO tab, then click LTI Advantage from the list of available data sources.

  4. Choose your preferred data storage region.

  5. Select the LMS you are using to set up LTI 1.3.

Note: The process for registering an LTI application varies between systems. Generally, you will need a Client ID to complete the integration successfully. If you need assistance finding certain information, please contact our support team. They’ll be happy to help!

Step 2: Complete the Integration

  1. Enter the required information from your LMS in the corresponding fields on the Edlink integration page.

  2. Click Validate Configuration, then click Continue Setup once your configuration is validated.

Your LTI source is now connected to Edlink. You may continue setting up your LTI app in your LMS!

LTI 1.1 Setup

How to Set Up Your Edlink-Connected LTI App in Canvas

Step 1

Make sure that your Canvas is connected to Edlink.

Step 2

Log in to Canvas. If you're an admin, select your school from the Admin menu.

Select Settings from the sidebar, then go to the Apps tab and add an external app.

If you're a teacher adding the app for a specific course, choose the course, then:

  • Select Settings from the sidebar

  • Go to the Apps tab

  • Add an external app

Step 3

Choose Paste XML from the drop-down menu.

Enter the following details:

  • App Name

  • Consumer Key [Link]

  • Shared Secret [Link}

  • XML Configuration (below)

Note: This XML will make your app open in a new tab.
If you'd like it to open inside Canvas, remove:
<lticm:property name="windowTarget">_blank</lticm:property>

<?xml version="1.0" encoding="UTF-8"?> 

<cartridge_basiclti_link

xmlns="http://www.imsglobal.org/xsd/imslticc_v1p0"

xmlns:blti="http://www.imsglobal.org/xsd/imsbasiclti_v1p0"

xmlns:lticm="http://www.imsglobal.org/xsd/imslticm_v1p0"

xmlns:lticp="http://www.imsglobal.org/xsd/imslticp_v1p0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.imsglobal.org/xsd/imslticc_v1p0

http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticc_v1p0.xsd

http://www.imsglobal.org/xsd/imsbasiclti_v1p0

http://www.imsglobal.org/xsd/lti/ltiv1p0/imsbasiclti_v1p0.xsd

http://www.imsglobal.org/xsd/imslticm_v1p0

http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticm_v1p0.xsd

http://www.imsglobal.org/xsd/imslticp_v1p0

http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticp_v1p0.xsd">

<blti:launch_url>YOUR EDLINK LAUNCH URL</blti:launch_url>

<blti:title>THE NAME OF YOUR APP</blti:title>

<blti:description>THE DESCRIPTION OF YOUR APP</blti:description>

<blti:extensions platform="canvas.instructure.com">

<lticm:property name="privacy_level">public</lticm:property>

<lticm:options name="course_navigation">

<lticm:property name="url">YOUR EDLINK LAUNCH URL</lticm:property>

<lticm:property name="enabled">true</lticm:property>

<lticm:property name="default">enabled</lticm:property>

<lticm:property name="windowTarget">_blank</lticm:property>

</lticm:options> </blti:extensions>

</cartridge_basiclti_link>

Make sure to change the launch_url, url, title, and description in the XML where labeled.

This XML will add the app to every course in the Canvas instance.

If you're an admin and would like teachers to manually add the app to a course before it appears:

Change this:

<lticm:property name="default">enabled</lticm:property>

to this:

<lticm:property name="default">disabled</lticm:property>

Teachers can add the app to their course by going to Settings in the Course sidebar, selecting Navigation, and dragging the app into the list of visible navigation items.


Step 4

Once the app is added, a teacher can launch it by selecting it from the Course sidebar in their Canvas course.

Seeing an Error?

EdLink Launch Error

You'll see this if you haven't filled in the XML field with your LTI launch link, which you can find in your Edlink dashboard.

To troubleshoot, scan through the XML field and replace the text in ALL CAPS with the appropriate values: the app's name, the app's description, and your Edlink LTI launch URL.

SSO Error When Attempting to SSO Using LTI

If you installed your LTI app within 24 hours of connecting to Edlink, your initial sync might not have completed yet.

Once the sync completes, the launch should start working.

Finding Your LTI Keys

To view your Edlink LTI keys in the dashboard:

  1. Log into Edlink

  2. Click on your school or district

  3. Click on the Integrations tab

  4. Select the integration you need LTI keys for

About halfway down the page, you’ll see the header LTI Configuration.

You will see options for LTI 1.1 and LTI 1.3. Select the version of LTI you are attempting to connect.

Recommendation:

Setup and use LTI 1.3 for assignment and grade passback.

Under LTI Configuration, you’ll these items:

Item

Description

LTI Version

The version of LTI supported by your LMS

Launch URL

The URL that will launch the app when added to your LMS (if it supports LTI)

Consumer Key

Required when adding the app to your LMS

Shared Secret

Also required when adding the app to your LMS

Client ID

Only needed for LTI 1.3. It is generated in your LMS when creating an LTI app.

Keyset URL

Only needed for LTI 1.3. It is used when setting inserting a JWKS URL in a supported LMS

Heads Up!

Your LTI Shared Secret shouldn't be shared with anyone and should be handled with care. Do NOT send it through insecure channels like email or chat. If you need to share it, use a secure method such as a password manager or an encrypted file.


Linked Courses

If your school uses linked courses in Canvas, you will need to let us know before we run your first sync. After the integration is set up, we will no longer be able to enable the feature and any linked courses will not appear correctly in Perfection Next.

Teacher and Course Names

You will need to provide our implementation team with the teacher and course names for all classes at your school that plan to use Perfection Next products. You will also need to update us whenever this information changes, such as between semesters or academic years.

We need this information to manually filter down the user data you are sharing with us. We cannot accept users not using Perfection Learning products and cannot accept more users than the number of licesnes purchased.

Syncing Schedule

Once your Canvas source is now connected to the Perfection Learning app through EdLink. Once validated, your organization's data will sync within 24 hours.

The Canvas sync will run once a day (midnight EDT). If you share any user with the app during the day, that user will not show up in Perfection Next until the daily sync runs.

Did this answer your question?