Skip to main content

Courses Native Integration: Canvas LMS

Michael Stephenson avatar
Written by Michael Stephenson
Updated yesterday

Courses is available in Element Success. See our packages overview for details.


Overview

The Canvas LMS integration seamlessly syncs real-time academic and enrollment data from Canvas into Element451. This guide will walk you through the setup process, from configuring Canvas settings to completing the integration within Element451.

📌 Note: This is a one-way integration. Element451 reads data from Canvas but does not write back any data.

Overview of the Setup Process

To get started, you’ll work through the following four steps. We outline each in detail in the subsequent sections of this article.


Step 1: Create a Developer Key in Canvas

To allow secure communication between Canvas and Element451, you’ll first need to create a Developer Key in Canvas. This generates a Client ID and Client Secret you'll use later in the setup.

  1. Log in to your Canvas account as an Admin.

  2. Navigate to the Developer Keys section in your Canvas admin settings.

  3. Click + Developer Key and select API Key.

  4. Configure the key with the following:

    • Key Name: Element451

    • Redirect URL:

      https://api.451.io/clients/integrations/canvas/oauth2

  5. Save the key, then toggle it to On to enable it (new developer keys default to off).

  6. Copy the Client ID and Client Secret—you’ll need these in Step 3.

🔗 For more detailed instructions, see Canvas’s guide on creating developer keys.

The Element451 ⇄ Canvas integration is designed to operate without scopes on the Developer Key. The Developer Key creates the OAuth client. Subsequent API access is determined by the Canvas user (ideally a dedicated service account) who completes OAuth, with the permissions listed in Step 3.

If your institution requires scoped Developer Keys, apply read-only scopes and ensure the OAuth User has those same scopes.


Step 2: Enable Live Events in Canvas

Element451 uses Canvas Live Events to receive real-time LMS activity from Canvas, including course, section, enrollment, and grade updates.

During this step, Canvas is configured to publish Live Events directly to an Element451-managed SQS queue. Element451 restricts publishing to approved partner Canvas instances and consumes these events to keep Courses data in Element451 up to date.

With this in mind, you:

  • Do not need to create or manage a new SQS Queue in AWS

  • Do not grant Element451 AWS IAM access to any of your AWS resources

  • Do not reuse this setup for any other Canvas integrations

Canvas Data Services is built into your Canvas instance and does not require a separate installation. To configure a new stream, navigate to Admin → [Your Account Name] → Data Services in your Canvas account navigation and click Add Stream.

Configure the stream with the following settings:

Name/Title

Your choice (e.g., "Element451 Live Events")

Delivery Method

Amazon SQS

URL

AWS Region

us-east-1

Authentication

Leave blank

AWS Credentials

Leave blank

About the SQS Queue: The SQS queue used for this integration is hosted & managed by Element451 and is configured to allow only Canvas instances from our partners to publish Live Events. Element451 consumes and processes these events to keep Courses data in Element451 up to date.

Event Category

Events

Assignment

While assignment events are not required right now, we recommend enabling them to support future expansion.

Course

Created, Updated, Completed, Progress, Deleted

Course Section

Created, Updated, Deleted

User

Created, Updated, Deleted

Enrollment

Created, Updated, Deleted

Grade

Course Grade Change


Step 3: Authenticate the Integration in Element451 via OAuth

Once you have registered your application in Canvas, and setup live events, you'll need to authorize Element451 to access your Canvas data using OAuth via Canvas Account.

🚨 Important: The user performing the authentication must be a Canvas Administrator and have read access to: Courses, Course Sections, Users, Enrollments, Assignments, and Grades. You can read more about Canvas permissions here.

  1. Create a Canvas service account (recommended). Avoid using an account used for other integration or tied to a named user.

    1. In Canvas, add a user to act as the integration’s service account. Do not use a personal account.

    2. Make the account an Account Administrator or assign an account-level role that includes read access to Courses, Course Sections, Users, Grades, Assignments and Enrollments. This account’s permissions will be the permissions Element451 runs with.

  2. Authenticate in Element451

    1. Click on your avatar/profile picture in the top right corner of the orange navigation menu.

    2. Navigate to Settings > Integrations

    3. From the left-hand menu, select Native Course Integrations

    4. Select Canvas

    5. Enter your Connection Details

    6. Click the Connect button; you'll be redirected to Canvas

    7. Authenticate using the service account you created above (or other account you wish to use) and approve the authorization.

You'll need your Client ID and Client Secret to complete this process.


Step 4: Configure Preferences

Once you've authenticated your integration, you can access the LMS integration settings.

To review and adjust your preferences, click the pencil icon in the top right corner of your LMS integration card.

Data Sync Preferences

  • Courses¹: Import course information from Canvas, including course name, code, department, and other relevant details.

  • Sections¹: Import individual course section information from Canvas, including dates, instructor names, etc.

  • Enrollments: Import student enrollment records from Canvas, including student grades

    • Match Student Contacts²: Add enrollments for students already in the Element451 database

    • Insert Student Contacts: Create new contacts for students previously not found in Element451, and add their enrollments

    • Update Student Contacts: Overwrite existing contact data with data found in Canvas, such as name and email

¹Setting is required and cannot be disabled.

²Setting is required when Enrollments is enabled.

Settings

  • Target Semesters: Only data from courses with a section within the selected semesters will be imported.

  • Auto Import Semesters: When enabled, Element451 will automatically sync the selected resources (courses, sections, or enrollments) for new semesters that are added to the LMS.

Matching Student Contact Criteria

The Canvas LMS integration reads student data from Canvas and matches to Element records using the following fields:

  • user-identities-canvasid

  • user-identities-school-email

  • user-identities-email

If a match can not be determined, the integration will either insert a new student record in Element451 or not depending on the data sync preferences.

Inserting or Updating Student contacts

The following fields will be populated by the integration when inserting or updating contacts based on Canvas student data:

  • user-first-name

  • user-last-name

  • user-email-address

  • user-preferred-name

  • user-sources-source-type = "LMS"

  • user-sources-source-name = "Canvas"

  • user-sources-source-date


Next Steps

Once authentication is complete, Element451 will begin syncing data from Canvas based on the configured Live Events. This data lives in Courses (Data + Automation > Courses), where you can view course records from your LMS.

Now that your course data is flowing into Element, you can begin using it to:

  • Build targeted segments

  • Trigger workflows + communications

  • Assign tasks or academic support resources

  • Personalize student experiences in StudentHub

To explore how to make the most of your LMS data, check out our Getting Started with Courses article.


Field Mapping

Once your LMS integration is active, Element451 automatically syncs data from your system into organized, consistent fields. This eliminates manual data entry while ensuring all information flows seamlessly between platforms.

Element451 automatically creates data sources for your course data directly from your LMS. No manual setup required—everything is generated automatically during the integration process.

The tables below show exactly which LMS fields map to which Element451 fields:

Course

Element451 Field

Canvas Object

Canvas Field

Institution ID

course

id

Name

course

name

Description

course

public_description

Code

course

course_code

Total Students

course

total_students

Departments¹
-Institution ID
-Name

course
course
course

Multiple values supported

-account->id

-account->name

Status¹

course

workflow_state

Type¹

course

course_format

Term²

course

term->sis_term_id

Timezone

course

time_zone

Subject

-

Not available

Number

-

Not available

Credits

-

Not available

Version

-

Not available

Grading

-

Not available

Section

Element451 Field

Canvas Object

Canvas Field

Institution ID

section

id

Code

course

course_code

Status¹

course

workflow_state

Instruction Mode¹

course

course_format

Term²

course

term->sis_term_id

School

course

account->name

Instructor¹

user

first_name + last_name

Instructor Email

user

email

Current Enrollments

course

total_students

Timezone

course

time_zone

Start Date

course

start_at

End Date

course

end_at

Section Type

-

Not available

Version

-

Not available

Campus

-

Not available

Total Meetings

-

Not available

Max Enrollment

-

Not available

Times

-

Not available

Enrollment

Element451 Field

Canvas Object

Canvas Field

Institution ID

enrollment

id

Enrollment Status¹

enrollment

enrollment_state

Current Grade (Text)

enrollment

grades->current_grade

Current Grade (Number)

enrollment

grades->current_score

Final Grade (Text)

enrollment

grades->final_grade

Final Grade (Number)

enrollment

grades->final_score

Last LMS Activity

enrollment

last_activity_at

Last Attended Date

enrollment

last_attended_at

Total Active Time

enrollment

total_activity_time

Total Absences

-

Not available

¹ Automatically creates a data source in Element451
² Matched against existing terms in Element451 using term code


Reviewing Imported Semesters

To review your imported semester data, navigate to Settings > Integrations and click on your LMS from the left-hand menu.

On the Imported Semesters card, you'll see:

  • Semester

  • Status

  • Added At

  • Started At

  • Last Sync Completed At

Did this answer your question?