Skip to main content

Integrating Setup with Schooloy

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

Schoology Integration

Supported Functionality

Perfection Next's integration with Schoology enables seamless data synchronization and Single Sign-On (SSO) functionality for educational platforms. This document outlines the supported features, limitations, and use cases for integrating Schoology with Edlink.

Single Sign-On (SSO)

Edlink supports full Single Sign-On (SSO) integration (both LTI and OAuth) with schoology, enabling users to access platforms using their schoology login credentials.

Rostering

Edlink synchronizes core rostering data from Schoology, including people, classes, and enrollments. Schoology sections are automatically converted to classes within Edlink, this makes interacting with them seamless for developers.

Extended Rostering

The Schoology API does not support the extended rostering models provided by Edlink like attendance and incidents.

Coursework and Grade Management

Edlink's integration with Schoology fully supports the management of coursework and grades. This includes the ability to sync assignments, track submissions, and manage grading.

Enrichment with Schoology

Schoology can be configured as either a primary or secondary data source:

  • Primary Source: Use Schoology as the main source for rostering, assignments, and grading when it serves as the central system for classroom management.

  • Secondary Source: Schoology can supplement data from other systems (e.g., SIS), by adding extra information that maybe only be found in Schoology. In this configuration, it's important to note that while Schoology can supplement data, assignments and grades are governed by the primary source and cannot be adjusted through Schoology. Schoology can handle SSO whether it serves as the primary or secondary source, but if the primary system also supports SSO, it takes precedence over Schoology.

Primary vs. Secondary Configuration

  • Primary Configuration: Schoology should be the primary source if the objective is to manage coursework and evaluate grades directly within Schoology.

  • Secondary Configuration: Configure Schoology as a secondary if you are working with another connected system from the school that contains more complete data and only need to supplement it with SSO.


Implementation Details

How the Integration Works

Edlink's integration with Schoology facilitates synchronization of key rostering data via periodic "syncs". The integration leverages the Schoology API endpoints to pull data and transform it into Edlink's unified data model. Schoology objects are mapped to Edlink objects through a standardized transformation process.

Data Mapping

Schoology Model

Edlink Model

Root School

District

Buildings

School

Grading Period

Session

User

Person

User

Agent

Course

Course

Course.subject_area

Subject

Section

Class

Enrollment

Enrollment

Documents

File

Assignment

Assignment

Grade

Submission

Submissions

Submission

Grading Rubrics

Rubric

Rostering Details

  • Limited Historical Data: Schoology's API may restrict access to historical data, limiting roster imports to the current academic year. This is common amongst LMS providers.

  • On-Demand Assignments+Grades: As opposed to our rostering data, we interface with the Schoology API on demand when Assignment or Submissions related endpoints are used. As such, those endpoints may be slower, but also closer to "real-time" since there is no sync process to wait on.

  • User Token Submissions Only: While Edlink provides both a Graph API and a User API, due to rules enforced by the Schoology API, only students are allowed to submit work, which requires using the Edlink User API for that use case.

  • Linked Sections: In Schoology, "sections" are organized under a "course." Teachers have the option to link these sections together for ease of assigning all the same coursework to the students in their various sections. To handle this, we have a specific process you should follow when creating assignments. This process should only be followed if the sections are linked. If you follow the parent_id process on sections that are not linked, you will encounter strange and unpleasant behavior. Thus, Edlink exposes a special property on schoology-based Classes: properties.schoology.linked. This will tell you if the underlying section is "linked" and requires the parent_id process, or if you should just create assignments on a per-class basis as normal.

Custom Field Mapping

The following fields can be custom-mapped in the Edlink dashboard UI:

  • Roles


Connecting Schoology

Heads Up!

You must be a Schoology Administrator to complete the integration process.

Schoology admins will have a Tools tab on their top navigation bar, with options like User Management and School Management.

Step 1: 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/00000000-0000-0000-0000-000000000000

Helpful Hint

If you've connected an app to Edlink before, log in, head to your District Team, and click Connect Data Source in the top right corner of the Sources tab.

If you don't have the link, let us know by reaching out to support@perfectionlearning.com, and we'll help you get it.

Getting Connected

  1. Select Your Data Source:
    After creating your account, you'll be prompted to create a district and select your data source. Either create a new district or choose an existing one from the list. Then, select Schoology from the list of LMSs, choose your preferred data storage location, and click Confirm.

  2. Enter Your Schoology URL:
    If (and only if) you have a custom Schoology URL, enter it in one of these formats:

    • https://myschool.schoology.com

    • https://schoology.myschool.edu


    Be sure to include https:// at the beginning of the URL. If you do not have a custom URL, select the No Custom URL checkbox or leave the box blank if you use https://app.schoology.com/login.

  3. Connect Your Account:
    Once all fields are completed, click Connect. You will be prompted by Schoology to authorize Edlink to access your account. Selecting Authorize will bring you back to Edlink.

  4. Validate Your Configuration:
    Click Validate Your Configuration to confirm the integration has been configured correctly.

  5. Finalize the Setup:
    After validating, select Continue Setup.

  6. Finish Integration:
    You'll see a screen with confetti, indicating that your integration has been completed successfully!

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 Issues

Missing Data/Scopes

  • Issue: Data is not syncing between Edlink and Schoology.

  • Potential Resolution: Make sure that the connected account is an administrator in Schoology and has the necessary permissions to access the data you are trying to sync.

SCHOOLOGY_INVALID_SESSION

Schoology requires an active, non-parent session to be specified to create an assignment. This means you need to pass a session_id when creating an Assignment. We do have a feature flag which can be enabled for your integration, which causes us to attempt to choose an active session for you, but we recommend just using our Sessions List endpoints to find the session you actually want when creating Assignments.

I Connected My Schoology Environment to EdLink, But I'm Not Seeing Any Data

Verify That Your Integration Was Setup Properly

Check out this guide, which walks through how to verify that your integration was created successfully.

Are You a Schoology Admin?

Only Schoology admins can properly connect their Schoology environments to Edlink.

To check if you're a Schoology admin, log into your Schoology administrator account.
Admins will see a Tools tab in the top navigation bar with options like User Management and School Management.

If you don't see the Tools tab, you're not a Schoology admin.

Why do Some Schoology Users Not Have a Role in Edlink?

Roles in Edlink

Schoology assigns four standard roles to users: student, teacher, parent, and system administrator. Edlink syncs these roles with your application.

Custom Roles in Schoology

Schoology gives admins the ability to create custom roles.
As a result, if a user in the Edlink dashboard doesn't have an assigned role, it's likely because they have a custom role in Schoology.

In this example, "Curriculum Coordinator" is a custom role that Edlink can't map without more information.

Next Steps

If a user doesn't have a role in the Edlink dashboard, please reach out to your Perfection Learning Support Team and provide the following:

  • The full name of the custom Schoology role

  • The name of the associated school or district

We can then assign this user to one of the supported roles.

Once this process is complete, the user will have an assigned role that will appear in the dashboard and be synced with your application.

Any Questions?

If you still have questions, please contact our Support Team and we'll get back to you within 24 business hours.


LTI 1.3 Setup

This guide explains how to connect your learning application to Edlink through Schoology. The recommended approach is to install the app directly from the Schoology App Center, if it’s available there. If the app isn’t listed, you can set it up manually using either Edlink’s hybrid API + LTI 1.3 integration or an LTI Advantage–only configuration. Be sure to confirm with the learning app that an LTI-only source is supported before proceeding.

Choosing your Setup Method

Option 1 – Schoology App Center Installation (Recommended)

If your learning application is available in the Schoology App Center, install it from there. This is the recommended setup, as it automatically handles much of the configuration for you.

To check:

  1. In Schoology, click the icon with the three boxes in the top-right corner.

  2. Select App Center.

  3. Find the name of the learning application.

If the app appears in the App Center, follow the steps in the App Center Installation section.

Option 2 - Manual Setup in Schoology

If the app does not appear in the App Center, you can manually create and configure it as a custom LTI 1.3 app.

  • Hybrid (API + LTI 1.3: The most common and generally recommended method for manually connecting a learning application to Schoology.

  • LTI Advantage–only: For apps that connect solely through LTI 1.3.
    Confirm with the learning app that an LTI-only source is supported before proceeding.


App Center Installation

Step 1 - Find the Application

  1. In Schoology, click the icon with the three boxes in the top-right corner.

  2. Select App Center.

  3. Find the name of the learning application and select it

Step 2

Select Install App → I Agree → Add to Organization.


Step 3

Find the LTI App you created from the list and select Configure then copy the Deployment ID

Step 4

From the Deployment ID you copied in the previous step, note that the first part of the value (before the dash) is the Client ID.

For example:

  • Deployment ID: 9345826612-1749208473

  • Client ID: 9345826612

Heads Up!

The Deployment ID and Client ID above are sample values. Be sure to use the ones from your own Schoology setup in the dashboard.

  1. Paste the Client ID into the Client ID field.

  2. Paste the Deployment ID into the Deployment ID field.

  3. Select Update to save your changes.

Any Questions?

If you still have questions, please contact our Support Team and we'll get back to you within 24 business hours.


Hybrid Method

Heads Up!

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

Step 1

In Schoology, click the icon with the three boxes in the top right corner, then click App Center.

Step 2

Click My Developer Apps+ Add App.

Step 3

Enter an app name and description.

Step 4

Select a category.

Step 5

Select LTI 1.3 App in the Type of App dropdown.

Step 6

Uncheck the Launch app in Schoology checkbox if you would like the app to open in a new window.

Step 7

Check Left Navigation.

Step 8

Fill out the following fields:

  • LTI Advantage Extensions:
    Enable deep linking if your learning application supports grades and assignments passing back to Schoology.

  • JWKS URL: This is found in the Edlink dashboard and labeled Keyset URL.

Heads Up!

The JWKS URL field is only visible and required when the Deep Linking option is enabled.

  • Domain URL, OIDC Login Init URL, and Redirect URLs:
    These are found in the Edlink dashboard and labeled Configuration JSON.
    For help finding your Configuration JSON, and JWK url, check out this guide:

  • Custom Parameters:
    Enter the following values:

person_external_id=$User.id assignment_external_id=$com.schoology.Assignment.id

Step 9

Check the box labeled This application meets the Schoology Terms of Use, then click Submit.

Step 10

Click OptionsAPI Info.

Step 11

Copy the Client ID and paste it into the Client ID field within the Edlink dashboard, then click Update.

Step 12

Click Install LTI 1.3 AppI agreeAdd to Organization.

Step 13

Find the LTI App you created from the Organization Apps list and select Configure then copy the Deployment ID

Step 14

Paste the deployment ID in the Edlink dashboard under the Deployment ID field, and select Update.

Step 15

Select Cancel in Schoology, then Select Install/Remove, then click Submit

Any Questions?

If you still have questions, please contact our Support Team and we'll get back to you within 24 business hours.


LTI Advantage Only

Step 1

In Schoology, click the icon with the three boxes in the top right corner, then click App Center.

Step 2

Click My Developer Apps+ Add App.

Step 3

Enter an app name and description.

Step 4

Select a category.

Step 5

Select LTI 1.3 App in the Type of App dropdown.

Step 6

Uncheck the Launch app in Schoology checkbox if you would like the app to open in a new window.

Step 7

Check Left Navigation.

Step 8

Next, you’ll switch over to the Edlink onboarding flow to get the URLs needed to continue your Schoology setup.

  1. Click the integration link provided by your learning application to open the Edlink onboarding flow.

  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.

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

  3. Go to the SSO tab and select LTI Advantage from the list of available data sources.

  4. Choose your preferred data storage region.

  5. Select Schoology from the list of available LMSs.

  6. Enter Your Schoology URL in the Schoology URL field


  7. Copy the LTI Configuration JSON Value and the Keyset URL Value. You will need these values in the next step, then select Mark as Complete.

Step 9

Back in Schoology, fill out the following fields:

  • LTI Advantage Extensions:
    Enable Deep Linking if your learning application supports grades and assignments passing back to Schoology.

  • Names and Roles Services: Enable this option. (Required to prevent errors in the Edlink onboarding flow, but not necessary for LTI functionality.)

  • JWKS URL:
    Enter the Keyset URL value you copied in the previous step.

Heads Up!

The JWKS URL field only appears and is required when the Deep Linking option is enabled.

  • Domain URL:
    Use the Domain URL from the previous step.

  • OIDC Login Init URL and Redirect URLs:
    Use the URLs from the previous step, but append /launch to the end.
    For example:
    https://ed.link/api/authentication/lti/{integrationID}https://ed.link/api/authentication/lti/{integrationID}/launch

  • Custom Parameters:
    Enter the following values:

person_external_id=$User.id assignment_external_id=$com.schoology.Assignment.id

Step 10

Check the box labeled This application meets the Schoology Terms of Use, then click Submit.

Step 11
Click OptionsAPI Info.

Step 12

Copy the Client ID and paste it into the Client ID field within the Edlink onboarding flow from step 8.

Step 13

Click Install LTI 1.3 AppI agreeAdd to Organization.

Step 14

Find the LTI App you created from the Organization Apps list and select Configure then copy the Deployment ID

Step 15

Paste the Deployment ID into the Deployment ID field within the Edlink onboarding flow from step 8, then click Validate Configuration at the bottom of the page.

Step 16

Select Cancel in Schoology, then Select Install/Remove, then click Submit

Well Done!

Great job — your new LTI learning application is now installed in Schoology!

Any Questions?

If you still have questions, please contact our Support Team and we'll get back to you within 24 business hours.

Did this answer your question?