Tracking learner progress is the entire reason learning standards exist. Without tracking, e-learning content is just a website. With tracking, it becomes a measurable training program that can prove compliance, identify skill gaps, and justify training budgets. This guide covers exactly what data you can capture with SCORM and xAPI, and the practical methods for accessing that data in Allure Connect.
What SCORM Tracks
SCORM uses a structured data model called CMI (Computer Managed Instruction). SCORM-compliant LMSs and hosting platforms implement these core data elements:
| CMI element | What it records | Example value |
|---|---|---|
cmi.completion_status | Whether the learner finished the content | completed, incomplete, not attempted |
cmi.success_status | Whether the learner passed or failed | passed, failed, unknown |
cmi.score.raw | The raw numeric score | 85 |
cmi.score.scaled | Normalized score between -1 and 1 | 0.85 |
cmi.score.min / cmi.score.max | Score range boundaries | 0 / 100 |
cmi.total_time | Cumulative time spent across all sessions | PT1H23M45S |
cmi.suspend_data | Content-defined bookmark/state data | Arbitrary string (up to 4096 chars in SCORM 2004) |
cmi.progress_measure | How far through the content the learner is (SCORM 2004) | 0.6 (60% complete) |
These elements give you the essentials: did they finish, did they pass, what was their score, and how long did it take. For most compliance training and certification programs, this data is sufficient.
What xAPI Adds
xAPI (Experience API, also known as Tin Can API) uses a fundamentally different approach. Instead of writing to a fixed data model, content sends statements to a Learning Record Store (LRS). Each statement follows the structure:
{
"actor": {
"mbox": "mailto:jane.doe@example.com",
"name": "Jane Doe"
},
"verb": {
"id": "http://adlnet.gov/expapi/verbs/completed",
"display": { "en-US": "completed" }
},
"object": {
"id": "https://allureconnect.com/content/data-privacy-101",
"definition": {
"name": { "en-US": "Data Privacy 101" },
"type": "http://adlnet.gov/expapi/activities/course"
}
},
"result": {
"completion": true,
"success": true,
"score": { "scaled": 0.92, "raw": 92, "min": 0, "max": 100 },
"duration": "PT45M12S"
},
"timestamp": "2026-04-18T14:30:00Z"
}The power of xAPI is that you can define your own verbs and objects. Beyond completion and scoring, you can track:
- Video interactions: played, paused, seeked, completed (with duration watched)
- Question-level data: each question answered, with the learner’s response and whether it was correct
- Simulation events: steps performed in a virtual lab or scenario
- Social learning: comments posted, resources shared, discussions joined
- Context: which device was used, which team the learner belongs to, which instructor assigned the course
Three Ways to Access Learner Data in Allure Connect
Allure Connect provides three methods for accessing learner progress data, each suited to different use cases.
1. Dashboard — Visual Analytics
The Allure Connect dashboard provides a visual interface for exploring learner data. You can filter by package, learner, date range, and completion status. The dashboard shows:
- Per-package completion rates and average scores
- Individual learner timelines showing every session
- Time-on-task distributions and trends
- Export to CSV for spreadsheet analysis
The dashboard is ideal for training managers who need periodic reports, compliance auditors who need proof of completion, and content developers who want to see how learners interact with their courses.
2. API — Programmatic Access
For integrating learner data into your own systems, use the REST API. Key endpoints include:
GET /api/v1/sessions— retrieve session records usingpackage_idanduser_idfilters, withlimitandoffsetpagination.- The dashboard learner-progress report provides aggregated completion, score, and time metrics. Its
/api/customer/endpoint requires a signed-in customer session and is not an API-key endpoint. GET /api/v1/xapi/statements— raw xAPI statements from the built-in LRS, filterable by actor, verb, activity, and time range.
Partner session endpoints return JSON. Check each endpoint reference for supported filters and pagination; CSV export is available through reporting surfaces. Use these records to build custom dashboards or reconcile completions.
3. Webhooks — Event-Driven Push
Webhooks queue signed event deliveries to your systems, eliminating the need to poll the API. Allure Connect supports webhook events for:
- session.completed — fired when a learner reaches
completedstatus - session.failed — emitted when the recorded completion or success state transitions to failed
- session.suspended — emitted when a session transitions into a suspended state
- package.launched — a package launch event in the separate
packagesscope
Each webhook payload is signed with HMAC-SHA256, so you can verify it matches the registered signing secret. Retryable failures have up to five delivery attempts, normally separated by 1 minute, 5 minutes, 15 minutes, and 1 hour. Retry-After responses and queue scheduling can change timing; terminal HTTP or configuration failures go directly to the dead-letter queue. Scores are included when available; use session API reads to reconcile the current state.
Comparison: Dashboard vs API vs Webhooks
| Capability | Dashboard | API | Webhooks |
|---|---|---|---|
| Access model | Polling (refresh) | On-demand | Signed queued delivery |
| Historical data | Full history | Full history | Current events only |
| Custom filters | UI filters | Query parameters | Event family scope |
| Integration effort | None (browser) | API client code | HTTP endpoint + signature verification |
| Best for | Manual reporting, audits | BI tools, custom dashboards | Slack alerts, CRM sync, automation |
Practical Use Cases
Compliance Reporting
Export completion records as CSV from the dashboard, or use the API to pull completions for a specific date range and generate audit-ready reports. Filter by course, department, or learner to produce exactly the evidence your compliance team needs.
Performance Dashboards
Use the API to feed learner progress data into tools like Tableau, Looker, or a custom React dashboard. Track average scores over time, identify courses with high failure rates, and measure training effectiveness across teams.
Webhook-Based Alerts
Configure webhooks to post to a Slack channel when a learner completes a required certification. Send completion events to your CRM to update customer training records. Trigger follow-up emails when a learner fails an assessment.
Best Practices
- Track at both SCORM and xAPI levels when possible. SCORM gives you standardized completion and score data that every system understands. xAPI gives you the granular interaction data that drives deeper insights.
- Use webhooks for time-sensitive workflows and the API for historical reporting. Do not poll the API on a short interval when an event-driven, queued webhook delivery meets the workflow need.
- Normalize learner identifiers across systems. Use email addresses or employee IDs consistently so you can correlate data across your LMS, HR system, and Allure Connect.
- Plan your retention and exports. Export authorized records according to your retention policy, and apply deletion and access requirements to downstream copies as well.