How to Integrate SCORM with Moodle, Canvas, and Blackboard
You have a SCORM package. You need it to work inside an LMS. The specifics depend on which LMS you are targeting and whether you want the LMS to host the content directly or use AllureConnect as an intermediary. This guide covers both approaches for the three most popular learning management systems: Moodle, Canvas, and Blackboard.
Two Integration Approaches
Before diving into platform-specific steps, understand the two fundamental ways to connect SCORM content to an LMS:
- LTI 1.3 (recommended) — Learning Tools Interoperability is a standard for connecting external tools to an LMS. AllureConnect acts as an LTI tool provider: the LMS launches content via a secure handshake, and grade data flows back automatically. LTI 1.3 is more secure, more flexible, and easier to maintain than direct SCORM import.
- Content Dispatch — AllureConnect generates a lightweight SCORM wrapper that you import into the LMS like any other SCORM package. When launched, the wrapper redirects to AllureConnect-hosted content. This works with any SCORM-compliant LMS, even those that do not support LTI.
LTI 1.3 is the preferred approach when the LMS supports it. Content dispatch is the fallback for older systems or organizations that cannot configure LTI.
Moodle Integration
Moodle has strong LTI 1.3 support starting from Moodle 3.10+. Here is how to configure AllureConnect as an external tool:
Step 1: Enable External Tool Plugin
In Moodle, navigate to Site administration → Plugins → Activity modules → External tool → Manage tools. Ensure the External tool plugin is enabled. In most Moodle installations, it is enabled by default.
Step 2: Configure LTI 1.3 Settings
Click Configure a tool manually and enter the following AllureConnect settings:
- Tool name: AllureConnect SCORM
- Tool URL:
https://api.allureconnect.com/lti/launch - LTI version: LTI 1.3
- Client ID: provided in your AllureConnect dashboard under Settings → LTI Configuration
- Public keyset URL:
https://api.allureconnect.com/lti/.well-known/jwks.json - Initiate login URL:
https://api.allureconnect.com/lti/login - Redirection URI:
https://api.allureconnect.com/lti/launch
After saving, Moodle generates a Platform ID, Client ID, Public keyset URL, Access token URL, and Authentication request URL. Copy these values into your AllureConnect LTI configuration page to complete the handshake.
Step 3: Add Content to a Course
In any Moodle course, click Add an activity or resource, select External tool, choose the AllureConnect tool you configured, and specify the SCORM package ID in the Custom parameters field (e.g., package_id=pkg_abc123). Save, and the content is now launchable from the Moodle course page. Grades flow back to the Moodle gradebook automatically via LTI Assignment and Grade Services.
Canvas Integration
Canvas by Instructure supports LTI 1.3 natively. The configuration process uses Developer Keys for secure registration.
Step 1: Create an LTI Developer Key
In the Canvas admin panel, navigate to Admin → Developer Keys → + Developer Key → LTI Key. This opens the LTI key configuration form.
Step 2: Configure the Tool
Enter the following settings:
- Key Name: AllureConnect SCORM
- Redirect URIs:
https://api.allureconnect.com/lti/launch - Method: Manual Entry
- Title: AllureConnect SCORM
- Target Link URI:
https://api.allureconnect.com/lti/launch - OpenID Connect Initiation URL:
https://api.allureconnect.com/lti/login - JWK Method: Public JWK URL
- Public JWK URL:
https://api.allureconnect.com/lti/.well-known/jwks.json
Save the key and set its state to ON. Copy the generated Client ID (a numeric string) and enter it in your AllureConnect LTI settings along with the Canvas-specific platform URLs.
Step 3: Add the External App
In the Canvas course, go to Settings → Apps → + App. Select By Client ID and enter the Client ID from the Developer Key. Canvas verifies the connection and adds AllureConnect as an available tool. You can now add it as a module item or an assignment with LTI launch.
Canvas-Specific Notes
- Canvas requires the Assignment and Grade Services (AGS) scope for grade passback. Enable this in the Developer Key under LTI Advantage Services.
- For course-level placement (rather than account-level), each instructor can add the tool from their own course settings.
- Canvas Deep Linking allows instructors to browse available SCORM packages from within the Canvas content picker.
Blackboard Integration
Blackboard (now part of Anthology) supports LTI 1.3 in both Blackboard Ultra and Blackboard Original experiences, though the configuration paths differ.
Step 1: Register the Tool Provider
In Blackboard, navigate to System Admin → Integrations → LTI Tool Providers → Register LTI 1.3/Advantage Tool. Enter the AllureConnect Client ID. Blackboard fetches the tool configuration automatically from AllureConnect’s well-known endpoint.
Step 2: Configure Placements
After registration, configure where the tool appears:
- Type: Course content tool
- Allow grade service: Yes
- Allow membership service: Optional (enables roster sync)
- Launch in new window: No (inline is preferred for SCORM)
Copy the Blackboard-generated values (deployment ID, platform issuer, JWKS URL) into your AllureConnect LTI configuration.
Step 3: Create Content Links
In a Blackboard course, use Content → Build Content → Web Link (Original) or the + button in a learning module (Ultra) to add AllureConnect as a content item. The LTI launch handles the rest.
Blackboard Ultra vs Original
Blackboard Ultra uses a modernized interface with different navigation paths. Key differences:
- Ultra: tool configuration is under Administrator Panel → Integrations → LTI Tool Providers. Content items are added via the module “+” button.
- Original: tool configuration is under System Admin → LTI Tool Providers. Content items are added via Build Content.
- Grade passback works the same way in both experiences, but Ultra has better native support for LTI Advantage services.
Alternative: Content Dispatch
If the target LMS does not support LTI 1.3 — or if organizational policy prevents configuring external tool providers — content dispatch is your fallback. AllureConnect generates a lightweight SCORM package (a dispatch ZIP) that you import into the LMS like any other SCORM course.
The dispatch package contains a thin HTML wrapper that, when launched, redirects to AllureConnect-hosted content. From the learner’s perspective, the experience is identical: the course opens inside the LMS. From your perspective, all tracking data flows through AllureConnect rather than being siloed in the client’s LMS.
This approach works with any LMS that supports SCORM 1.2 or SCORM 2004 imports, including Moodle, Canvas, Blackboard, Cornerstone, SAP SuccessFactors, Docebo, TalentLMS, and dozens of others.
Common Troubleshooting
| Issue | Cause | Fix |
|---|---|---|
| Content does not load (blank iframe) | CORS or X-Frame-Options blocking | Ensure AllureConnect domains are in your LMS’s allowed frame sources. Check the browser console for CSP errors. |
| Popup blocker prevents launch | LMS opens content in a new window | Configure the LTI placement to launch inline (not in a new window). If inline is not possible, instruct learners to allow popups for the LMS domain. |
| Grades not appearing in gradebook | LTI AGS scope not enabled | Verify that Assignment and Grade Services are enabled in both the LMS tool configuration and the AllureConnect LTI settings. Check that the content item is linked to a gradebook column. |
| LTI launch returns 401 | Mismatched client ID or JWKS URL | Double-check that the Client ID, JWKS URL, and auth endpoints match between the LMS and AllureConnect. Regenerate credentials if needed. |
| SCORM data not saving between sessions | Dispatch wrapper using wrong launch mode | Ensure the dispatch package is configured for normal launch mode (not review). Check that the LMS is not re-creating registrations on each launch. |
Next Steps
Once your LMS integration is working, consider these enhancements:
- Set up webhooks to receive real-time completion notifications instead of polling the AllureConnect API. See our webhook setup guide.
- Use content dispatch if you distribute content to multiple client LMSs. See our dispatch guide.
- Enable analytics in the AllureConnect dashboard to track learner engagement, completion rates, and score distributions across all your integrations.