Distributing Dispatch Packages
Guide to distributing SCORM dispatch packages to third-party LMSs and managing distributions.
Table of Contents
- Overview
- Distribution Process
- LMS Integration
- Monitoring Distributions
- Managing Updates
- Troubleshooting
Overview
Once you've created a dispatch package, you need to distribute it to third-party LMSs. This guide covers the complete distribution workflow.
The downloadable ZIP is a Connect shell (imsmanifest.xml + index.html) that opens the hosted player at /player/dispatch/{dispatchId}. It is not a copy of the publisher’s Storyline package, so destination LMSs do not run launcher.html / window.open from the original SCO.
Distribution Process
Step 1: Download Dispatch Package
Download the dispatch ZIP file:
Via Dashboard:
- Navigate to Dashboard → Dispatch
- Find your dispatch package
- Click "Download ZIP"
ZIP export is a signed-in dashboard action. /api/customer/* routes use the
current Clerk browser session and are not partner API-key endpoints. Server-side
integrations should persist the durable dispatch_url returned when the
dispatch is created.
Step 2: Send to LMS Administrator
Provide the dispatch package to the LMS administrator:
Email Template:
Subject: SCORM Package for Import
Hi [LMS Admin],
Please find attached the SCORM package for [Course Name].
Instructions:
1. Import the attached ZIP file into your LMS
2. The package will work like any standard SCORM package
3. Content is hosted on our infrastructure and updates automatically
If you have any questions, please let me know.
Best regards,
[Your Name]
Step 3: LMS Administrator Imports
The LMS administrator:
- Logs into their LMS
- Navigates to course import/upload section
- Uploads the dispatch ZIP file
- LMS validates and imports the package
- Package appears in LMS course catalog
Step 4: Learners Launch
When learners launch:
- LMS launches the dispatch package
- Package redirects to SCORM API
- Content loads from SCORM API
- Progress is tracked in SCORM API
LMS Integration
Standard SCORM Import
Dispatch packages use standard SCORM import paths, but compatibility must be verified for each target LMS and version:
- Moodle: Import via Course → Import
- Canvas: Import via Course Settings → Import Course Content
- Blackboard: Import via Packages and Utilities → Import Package
- Cornerstone: Import via Learning → Import SCORM
- Other supported LMSs: Use that LMS's documented SCORM import process and complete a launch/completion test
No Special Configuration Required
- No API keys needed
- No special setup required
- Uses a SCORM package shell
- Standard SCORM launch process
Learner Identity Handling
The downloaded ZIP is a SCORM bridge. It reads the destination LMS runtime,
relays SCORM calls to the hosted player with postMessage, and preserves the
durable dispatch path. It also forwards query parameters supplied by the LMS.
The player prefers user_id, then external_registration_id; both are optional
for a browser launch, which otherwise receives a new dispatch-scoped fallback.
Configure one of those parameters when you need the same learner registration
to resume consistently. The partner launch API requires one of the two fields.
Monitoring Distributions
View Dispatch Activity
Via Dashboard:
- Navigate to Dashboard → Dispatch
- Click on a dispatch package
- View distribution metrics
The dispatch detail view shows registration counts, launch activity, status,
expiry, and destination information. There is no separate public
/distributions endpoint.
Track Usage Per Distribution
Monitor:
- Number of launches per LMS
- Unique users per LMS
- First and last launch times
- Registration counts
- Registration usage
For aggregate learner reporting, use Dashboard → Reports. Partner systems
can use the documented session, xAPI, and usage-pricing endpoints; there is no
dispatch-specific /reports endpoint.
Managing Updates
Update Source Package
When you update the source package:
- Upload new version to SCORM API
- Update package in your library
- Dispatch packages automatically load new version
Version Behavior
- All launches use latest version
- In-progress learners may see version change
- Recommended for minor updates
Per-dispatch version pinning is not available. Create a separate package and dispatch when a destination must remain on a fixed major version.
Handling In-Progress Learners
When updating content:
Scenario 1: Minor Updates
- Allow in-progress learners to continue
- New learners get updated version
- Gradual migration
Scenario 2: Major Updates
- Force restart for all learners
- All learners get new version
- Clean slate approach
Update Dispatch Package
Use the signed-in dispatch detail panel to update its label, destination,
registration limit, expiry (up to 8,760 hours), allowed domains, learner access
password, and signed postback. The dashboard sends a Clerk-authenticated
PATCH /api/customer/dispatches/{dispatchId} request.
Note: Updating dispatch doesn't require redistributing the ZIP file. Changes take effect immediately.
Troubleshooting
Issue: Package Not Launching
Symptoms:
- Package imports successfully
- Launch fails or redirects incorrectly
Solutions:
- Verify dispatch package is active
- Check dispatch hasn't expired
- Verify the registration limit has not been reached
- Check allowed domains configuration
- For consistent learner resume, verify the LMS supplies
user_idorexternal_registration_idas a launch query parameter
Issue: Content Not Loading
Symptoms:
- Package launches
- Content doesn't load
- Blank screen or error
Solutions:
- Check network connectivity
- Verify SCORM API is accessible from LMS
- Check CORS configuration
- Verify dispatch token is valid
- Check browser console for errors
Issue: User ID Not Passing
Symptoms:
- Package launches
- User ID is missing or incorrect
- Progress not tracked
Solutions:
- Verify the LMS supplies
user_idorexternal_registration_idwhen stable learner attribution is required - Check SCORM API configuration
- Verify dispatch package version
- Check browser console for errors
Issue: Registration Limit Exceeded
Symptoms:
- New launches blocked
- Error message about limit
Solutions:
- Increase registration limit
- Remove old registrations
- Create new dispatch package
Best Practices
1. Test Before Distribution
- Import into test LMS
- Launch and verify functionality
- Test with multiple users
- Verify progress tracking
2. Document Distribution
- Keep list of which LMSs received which dispatch
- Track distribution dates
- Note any special configurations
3. Monitor Usage
- Regularly check distribution metrics
- Monitor for errors or issues
- Track usage trends
4. Communicate Updates
- Notify LMS administrators of updates
- Provide update schedule
- Explain version changes
5. Handle Expirations
- Set appropriate expiration times
- Renew before expiration
- Notify before expiration
Related Documentation
- Dispatch Overview - Understanding dispatch packages
- Creating Dispatch Packages - Creation guide
- API Reference - Complete API docs