Learners can move between Panoramas, individually or in bulk, with full control over what happens to their enrollments and progress along the way. This FAQ covers the questions that come up most once you've got the basics down: how to choose the right enrollment decision with confidence, how to confirm what a change actually did after the fact, and how to control that same behavior through the REST API or SSO.
Choosing the Right Enrollment Decision
Which enrollment option should I choose?
Use this shorthand: to keep the learner fully enrolled, choose Keep access as direct enrollment. If they're leaving but may return, choose Remove access, preserve progress. If they're starting over or going through compliance re-training, choose Remove access and reset progress (irreversible). When in doubt, preserve progress — it's the reversible choice.
Does my decision apply to each course separately, including learning paths?
No. One decision is applied uniformly to all of the content a learner (or, in a bulk move, every learner in the batch) is leaving behind, including every learning path and its enrolled milestone courses. If different courses need different outcomes, provision the ones you want to keep into the destination first so they show as overlap, then apply a single decision to the rest.
Auditing Panorama Changes
Where can I confirm what actually happened during a change?
The Management Actions Log records a per-learner entry for each successful Panorama or license change: actor, learner, source and destination Panorama, sublicenses added or removed, the enrollment decision, timestamp, and a source value showing how the change was made — ui, api, sso, or bulk_api. Bulk changes create a separate log entry for each learner who is successfully updated.
API & SSO
How do I control this through the REST API?
The Create/Update Users and Bulk Client/License Assignment APIs each accept an enrollment options object, giving you the same enrollment-decision control available in the admin UI.
We used to reset progress with replaceLicenseAccess — is that still supported?
The legacy replaceLicenseAccess parameter still works but does not support the enrollment-decision options. Use panoramaEnrollmentOptions instead for deterministic control over enrollments and progress.
How does this behave over SSO?
You can map preserveEnrollments and preserveProgress as attributes for SAML, OpenID Connect, or JWT. If they aren't configured or sent, the system preserves everything (backward compatible). The invalid combination of preserveEnrollments: true and preserveProgress: false does not error the login — instead the Panorama move is skipped (the learner stays in their current Panorama), a [learner_panorama_change_skipped] entry is logged, and the login continues. To reset progress via SSO, send both preserveEnrollments: false and preserveProgress: false.
Related Articles
- Managing Panorama and Sublicense Access for an Individual Learner — the full step-by-step wizard walkthrough, the complete enrollment decision options table, and how each content type (learning paths, direct enrollments, access expirations, discussions) is affected.
- Managing Panorama and Sublicense Access in Bulk — the four bulk actions, who has access to each, the 750-learner batch limit, and how background bulk jobs run and report success or failure.
-
Single Sign-On (SSO) Product Documentation — the full attribute mapping reference for
preserveEnrollmentsandpreserveProgressacross SAML, OpenID Connect, and JWT.