Moving Learners Between Panoramas: FAQs

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

Was this article helpful?
0 out of 0 found this helpful

More resources

  • Academy

    Go from beginner to expert with hands-on training

  • Community

    Ask questions, swap ideas, and learn from people like you

  • Developer Docs

    Reference guides and code samples for developers