Courses is available in Element Success. See our packages overview for details.
📌 Note: This feature is currently in Beta. For access, reach out to your account manager or live support.
Overview
The OpenLMS integration seamlessly syncs real-time academic and enrollment data from OpenLMS into Element451. This guide will walk you through the setup process, from configuring OpenLMS settings to completing the integration within Element451.
📌 Note: This is a one-way integration. Element451 reads data from OpenLMS but does not write back any data.
Step 1: Add Element451 as External Service in OpenLMS
To allow secure communication between OpenLMS and Element451, you’ll need to add Element451 as an External Service in OpenLMS. This will allow you to generate a token that you'll use later in the setup.
🚨 Important: The instructions below are illustrative and may not reflect the latest OpenLMS interface or workflow. We recommend referring to the OpenLMS documentation for authoritative steps on setting up external services and generating access tokens.
1) Enabling Web Services
1) Enabling Web Services
Access Administration > Site Administration > Advanced Features
Check Enable Web Services
Click "Save Changes"
2) Enabling REST Protocol
2) Enabling REST Protocol
Access Administration > Site Administration > Server > Web Services > Manage Protocols
Enable the "REST Protocol"
3) Creating a Custom External Service
3) Creating a Custom External Service
Access Administration > Site Administration > Server > Web Services > External Services
Click "Add New Custom Service"
"Authorized Users Only" - If enabled, you will need to select the authorized users manually. Otherwise all users with appropriate permissions are allowed
"Required Capability" - If enabled, any user accessing the web service will be checked against this selected capability. (This is just an additional optional security layer.)
Enter a name (“Element451 Integration”) and check "Enabled"
Click 'Add Service'
4) Adding Functions to the Service
4) Adding Functions to the Service
Once the external service as been created, you will need to add web service functions. Your choice will be dictated by what you allow the external application to do.
Select Add Functions (or Create Group, depending on your OpenLMS version)
The following are required functions for the integration to function properly:
core_course_get_categoriescore_course_get_courses_by_fieldcore_enrol_get_enrolled_usersgradereport_user_get_grade_items
5) Enabling Required Capabilities
5) Enabling Required Capabilities
The final step on the OpenLMS side is to grant the appropriate permissions to the role or user that will access the web service.
Ensure the following capabilities are allowed:
moodle/webservice:createtokenAllows users to generate a web service security token
webservice/rest:useAllows use of the REST web service protocol
Additionally, review the Required Capability setting on the web service itself:
Navigate to Site administration > Server > Web Services > Manage Services > Edit.
If a Required Capability is defined, users must have that capability in addition to the ones above.
Individual web service functions may also require specific capabilities, which are shown when adding functions to the service.
6) Generate a Web Service Token
6) Generate a Web Service Token
After the external service and required permissions are configured, you’ll need to generate a web service token for the user that Element451 will authenticate as.
Navigate to Administration > Site Administration > Server > Web Services > Manage Tokens
Click Add
Select the authorized user
Select the Element451 Integration service
Ensure the REST protocol is selected
Click Save
Copy the generated token and store it securely. You’ll use this token when completing the Element451 setup (explained in the next section).
Step 2: Authenticate the Integration in Element451
Once you have registered Element451 in OpenLMS, you'll need to authorize Element451 to access your OpenLMS data using OAuth.
🚨 Important: The user performing the authentication must be an OpenLMS Administrator and have the necessary permissions/access.
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 Open LMS.
Fill in the required details:
Token
The Token is an access token for your OpenLMS LMS account.
Instance URL
The Instance URL is the URL of your OpenLMS LMS account.
Click Connect.
Step 4: Configure Preferences
Once you've authenticated your integration, you can access the LMS integration settings.
To review and adjust your preferences:
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 Open LMS.
Click Settings to the right of your Instance URL.
Details Tab
Details Tab
The details tab shows you:
General Details
Active status
Instance URL
Created date
Updated date
Created by user
Permissions
Instance URL
Overall status
Last status check timestamp
Endpoints checked and their status
Option to run a "check" by clicking the "Check" button in the top right corner
Sync Preferences Tab
Sync Preferences Tab
Sync Settings
📌 Note: OpenLMS does not support realtime syncs. Instead, Element451 will sync with your OpenLMS data approximately every 12 hours.
These settings determine how data in OpenLMS maps into Element451. Read more in our help center.
Import Engagement
Import engagement data from OpenLMS for the student enrollments imported by your integration.
Import Grades
Import grades from OpenLMS for the student enrollments imported by your integration.
Import Attendance
Import attendance data from OpenLMS for the student enrollments imported by your integration.
Student Roles
OpenLMS does not allow us to get a list of roles using their API, so they need to be inputted manually. Click the "+ Add Student Role" and add the relevant student role ID(s).
Teacher Roles
OpenLMS does not allow us to get a list of roles using their API, so they need to be inputted manually. Click the "+ Add Teacher Role" and add the relevant teacher role ID(s).
Imported Semesters
Click the "+" button to import a semester of data from OpenLMS.
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.
Next Steps
Once authentication is complete, Element451 will begin syncing data from OpenLMS based on your configuration. 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 | OpenLMS Object | OpenLMS Field |
Institution ID | course | id |
Name | course | name |
Description | Not available | Not available |
Code | Not available | shortname |
Total Students | Not available | Not available |
Departments | Not available | Not available |
Status | Not available | Not available |
Type | Not available | Not available |
Term² | course | From shortname if available courseCode.termCode |
Timezone | Not available | Not available |
Subject | Not available | Not available |
Number | Not available | Not available |
Credits | Not available | Not available |
Version | Not available | Not available |
Grading | Not available | Not available |
Section
Section
Element451 Field | OpenLMS Object | OpenLMS Field |
Institution ID | course | id |
Code | course | shortname |
Status | Not available | Not available |
Instruction Mode | Not available | Not available |
Term² | course | From shortname if available courseCode.termCode |
School | Not available | Not available |
Instructor¹ | user | first_name + last_name |
Instructor Email | user | |
Current Enrollments | Not available | Not available |
Timezone | Not available | Not available |
Start Date | course | startdate |
End Date | course | enddate |
Section Type | Not available | Not available |
Version | Not available | Not available |
Campus | Not available | Not available |
Total Meetings | Not available | Not available |
Max Enrollment | Not available | Not available |
Times | Not available | Not available |
Enrollment
Enrollment
Element451 Field | OpenLMS Object | OpenLMS Field |
Institution ID | enrollment | id |
Enrollment Status | Not available | Not available |
Current Grade (Text) | Not available | Not available |
Current Grade (Number) | Not available | Not available |
Final Grade (Text) | Not available | Not available |
Final Grade (Number) | Not available | Not available |
Last LMS Activity | enrollment | lastaccess |
Last Attended Date | Not available | Not available |
Total Active Time | Not available | Not available |
Total Absences | Not available | 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.
From the left-hand menu, select Open LMS.
Click Settings to the right of your Instance URL.
Click the "Sync Preferences" tab.
On the Imported Semesters card, you'll see:
Semester
Status
Added At
Started At
Last Sync Completed At
