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.
Log in to your Canvas account as an Admin.
Navigate to the Developer Keys section in your Canvas admin settings.
Click + Developer Key and select API Key.
Configure the key with the following:
Key Name: Element451
Redirect URL:
https://api.451.io/clients/integrations/canvas/oauth2
Save the key, then toggle it to On to enable it (new developer keys default to off).
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.
Create a Canvas service account (recommended). Avoid using an account used for other integration or tied to a named user.
In Canvas, add a user to act as the integration’s service account. Do not use a personal account.
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.
Authenticate in Element451
Click on your avatar/profile picture in the top right corner of the orange navigation menu.
Navigate to Settings > Integrations
From the left-hand menu, select Native Course Integrations
Select Canvas
Enter your Connection Details
Click the Connect button; you'll be redirected to Canvas
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
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.
Matching Student Contact Criteria
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
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
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¹ | 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
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 | |
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
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



