Enrollments
Grant access, then see every enrollment in one registry
Enrollment is the record that a student owns a course. Grant it four ways — online purchase, payment card, a manual staff grant, or a free course — then track every enrollment across every course and bundle in one bird's-eye registry you can filter, export and manage.
- Purchase · card · manual · free
- One registry across every course
- Extend, suspend or remove access
The access layer of your LMS
The join between a student and what they bought
Every course sale, payment-card redemption, bundle purchase and hand-picked grant becomes one clean enrollment — the small record that says who has access to which course, how they got it, when it started and when it ends. It is the enrollment system that powers your online courses, keeps a live enrolled count, and gives staff one place to manage student access across the whole academy.
Access control that keeps itself honest
Enrollment is a join between a student and a course — never metered, always tracked, and consistent no matter how the student got in.
Four ways to enroll
However a student gets in, it is one enrollment
Paid online, scratched a payment card, handed a free course or enrolled by an admin — every path writes the same consistent record through one seam, so counts, access and history always agree.
Online purchase
A student buys a course at checkout and is enrolled the moment payment is confirmed — with the order reference kept on the record.
Payment card
A student scratches a prepaid access card and is enrolled instantly — perfect for offline and classroom sales, with the card serial on the record.
Manual grant
Enroll an existing student by hand from the course roster — a comp, a support fix or an offline sale, with an optional expiry date.
Free course
Free courses enroll the learner with a single click — no payment, same record, same access, same live enrolled count.
Selling access offline? Prepaid access cards enroll students without a gateway. Explore payment cards
The bird's-eye registry
Every enrollment, across every course, in one place
The per-course roster is perfect for one course. But an academy with hundreds of courses needs the one big list — everyone enrolled in anything, newest first. The registry is that list: it leads with the student, then the course (and who owns it — the platform, a teacher, a school or a university), how they joined, when, and when their access ends.
- Student first, then course and owner
- How they joined and when access ends
- Live progress and completion in the row
- A read-only detail view for any record
Two surfaces, one ledger
Manage one course, or oversee them all
The same enrollment data, seen two ways — a focused roster inside each course, and a global registry that spans every course and bundle.
The Enrollees tab, inside each course
Open a course, click Enrollees, and manage that course's roster — enroll a student by hand, extend an expiry, suspend or remove access, all in context.
The cross-course & cross-bundle registry
Zoom out to every enrollment in the academy — filter by course, owner, status, source or date, view any record in full, and remove access from anywhere.
Bundle enrollment
One bundle buy fans out to every course inside
A bundle is a package — buy these ten courses together for one price. When a student buys it, the system records one bundle enrollment and quietly enrolls them in every member course at once, each tagged back to the bundle it came from. The Bundle Enrollees registry lists every package buyer beside how many courses it granted.
- One purchase, enrolled in every member course
- Each course tagged "via {bundle}"
- A "courses granted" count on every buyer
- A student's separate purchases stay independent
Manage & revoke access
Extend, suspend, or remove — cleanly
Access is not fire-and-forget. Extend an expiry when a student needs more time, suspend a learner temporarily, or remove them entirely. Removing does not erase history — it cancels the enrollment: access ends immediately, but the record stays for accounting. Cancelling a bundle cascades to the courses it granted, and leaves separately bought courses alone.
- Extend an expiry date, or set it to lifetime
- Suspend and resume access in one click
- Remove = cancel: access ends, record kept
- Cancel a bundle and it cascades to its courses
Filter, search & export
Find any enrollment, then take it with you
The registry is a full data table. Filter by course, course owner, status, source or date; search by student name, code or email; sort any column. Then export exactly what you are looking at to Excel or PDF — labels resolved, ready to share, always scoped to your own academy.
- Filter by course, owner, status, source & date
- Search by student name, code or email
- Export the current view to Excel
- Export the current view to PDF
The access lifecycle
Four states tell you exactly who has access
Every enrollment carries a status, so lists, counts and the player always agree on who can watch and who cannot.
Active
The student has access. This is the live "who is enrolled" picture and the count shown as social proof.
Has accessExpired
Time-limited access ran out. A daily sweep flips it automatically; the enrolled count is kept — they still took the course.
Time upCancelled
Removed or refunded. Access ends at once and the enrolled count drops, but the record stays for accounting.
RemovedSuspended
Access is temporarily blocked by staff — a hold you can lift in one click to restore the learner.
On holdThe enrolled count drops on a removal, never on a simple expiry — so your social proof stays honest.
More in every enrollment
The details that make access dependable
Small guarantees that keep enrollment correct no matter how many students, courses or payments flow through it.
Expiry or lifetime
Give access forever, or set an end date. A daily sweep keeps expiries honest and the player checks in real time.
How they paid
Every row shows the method — the card serial, the order reference, or "via {bundle}" when a bundle granted it.
Progress in the row
See each learner's progress and a completion check right beside their enrollment — no extra screen.
Live enrolled count
A denormalized count keeps "1,240 students enrolled" instant on your catalog — no slow live totals.
Never double-enrolled
One record per student and course. A retried payment or a double-click never enrolls, counts or charges twice.
Audited staff actions
Manual grants, extends and removals are logged — you always know who changed a student's access and when.
Private & permissioned
Your enrollments are yours alone
Enrollment records are the academy's financial history, so they are guarded like it. Every read and write is scoped to your own academy — another tenant's students can never appear, be queried or be touched. Roles decide who may view, enroll, edit or remove, and a payment card's full code is never exposed — only its serial.
- Strict per-academy data isolation
- Role-gated: view, enroll, edit, remove
- Records kept for accounting, never lost
- Card codes never shown — serial only
Academies trust it
Teams that stopped chasing who has access
Operations staff who run enrollment across hundreds of courses without a spreadsheet.
One list for every enrollment across every course changed how we work. I filter by course owner, export to Excel, and I am done in a minute.
Bundles used to be a nightmare to unwind. Now removing a bundle cancels exactly the courses it granted and leaves the rest — no manual cleanup.
Prepaid cards plus manual grants let us sell in the classroom and still see everyone in the same registry as the online buyers.
Works with
Enrollment sits at the center of everything
Access is the hinge between selling a course and delivering it. Here is what connects on either side.
Courses
The courses students enroll in — the thing access is granted to.
Explore coursesCourse bundles
Sell many courses as one package; a buy enrolls them in all.
Explore bundlesProgress tracking
Once enrolled, see how far each learner has gotten.
Explore progressCertificates
Reward completion with a branded, verifiable certificate.
Explore certificatesPayment cards
Sell prepaid access codes students redeem to enroll.
Explore cardsFor training centers
Enroll cohorts, sell offline, and manage access at scale.
See the solutionQuestions
What teams ask about enrollment
The per-course Enrollees tab lives inside a course and manages that one course's roster. The registry is the global, cross-course (and cross-bundle) list — everyone enrolled in anything, filterable by course, owner, status, source or date. Both read the same enrollment ledger.
Four ways: an online purchase at checkout, redeeming a prepaid payment card, a manual grant by staff, or a one-click self-enroll for a free course. Buying a bundle enrolls the student in every course inside it at once. Every path writes the same kind of record.
No. Removing sets the enrollment to cancelled — access ends immediately, but the record is kept for accounting and reporting. Enrollment is financial history, so it is never hard-deleted from a panel; only deleting the whole course purges it.
It cancels the bundle and cascades to the member-course enrollments that bundle granted — access to those courses ends. Any course the student also bought separately is a different record and stays untouched. The confirmation spells out exactly how many courses are affected.
Yes. Give an enrollment a lifetime (no expiry) or an end date. A daily sweep flips finished enrollments to expired so lists and counts stay accurate, and the player also checks expiry in real time as a second line of defense.
No. There is one record per student and course, written through a single seam. A retried payment webhook, a double-click or a re-redeemed card returns the existing enrollment rather than creating a second one — so the count and access never drift.
Ready when you are
Enroll your first student today
Grant access online, by card, by hand or for free — and manage every enrollment across every course from one registry. Start building free.
Free to start · No credit card required · Enrollment is never metered