Migration Tool
Seamlessly migrate courses, enrollments, orders, reviews, and more from LearnPress, Tutor LMS, MasterStudy, LifterLMS, and LearnDash into Masteriyo.
The Migration Tool lets you transfer your existing LMS data — courses, lessons, quizzes, enrollments, orders, reviews, and more — directly into Masteriyo. Migration runs entirely in the background using WordPress's Action Scheduler, so large sites with thousands of courses and students can migrate safely without hitting PHP time limits or blocking your WordPress admin.
Requirements
- Masteriyo LMS (installed and activated)
- Migration Tool add-on activated — go to Masteriyo > Addons and enable it (how to activate addons)
- Your source LMS plugin (installed and activated on the same WordPress site)
Setup
Open the migration interface at Masteriyo > Tools > Migration.

The page shows a card for each supported source LMS. Cards for plugins that are not installed or active on your site are grayed out.
Both the source LMS plugin and Masteriyo must be active on the same WordPress site before you begin. No data leaves or enters your site through external servers — everything migrates locally.
How Migration Works
Migration uses Action Scheduler (the same background job library used by WooCommerce) to process data in batches of 100 items at a time. Each migration step — Courses, Enrollments, Orders, etc. — runs as its own background job, so no single PHP process handles the full dataset.
- If a job hits PHP's memory or time limit, it automatically re-queues itself from the last saved position and continues on the next cron cycle — no data is lost and no items are duplicated.
- You can close the migration modal or navigate away at any time. Background jobs continue running and you can check progress by returning to Masteriyo > Tools > Migration.
- Any required Masteriyo Pro addon (e.g. Assignment, Zoom, Course Bundle) is automatically activated when its corresponding migration step begins [Pro] — no need to activate them manually beforehand.
Starting a Migration
-
On the Migration page, click the card for your source LMS to select it.
-
Click Migrate. A confirmation dialog appears.

-
Type confirm (lowercase, exact match) in the input field to enable the Confirm & Start button. This prevents accidental migrations.
-
Click Confirm & Start. The migration modal opens and processing begins immediately in the background.

The modal shows each migration step with its own progress indicator, item count, and status. An overall progress percentage is shown at the top. Steps with zero items on your site are skipped automatically.
Monitoring Progress
You can close the migration modal at any time — background jobs keep running. A banner appears at the top of the Migration page showing the current percentage and a View Progress button to reopen the modal.

If your browser tab is closed or the page is refreshed mid-migration, the banner reappears the next time you visit Masteriyo > Tools > Migration, letting you pick up exactly where you left off.
To stop a running migration, click Cancel inside the migration modal. Cancellation takes effect between batches, so it may take a moment to stop.
Reviewing Migration Logs
The Logs link and log file are only available when the Masteriyo logger is enabled. To enable it, go to Masteriyo > Settings > Advanced > Debug and turn on Enable Logger.
When the logger is enabled, every migration step is recorded in the migration-tool log. The log captures:
- Step started — how many items were found for that step.
- Item failures — the item ID and exact error message for any item that failed to migrate. Failed items are skipped on resume so they do not block the rest of the migration.
- Step completed — how many items succeeded and how many failed.
- Skipped steps — steps with no source data.
- Auto-activated addons — which Pro addons were activated automatically.
- Re-queued jobs — if a background job timed out and was automatically restarted.
A Logs link appears inside the migration modal and in completion notices only when the logger is enabled and the log file exists. Clicking it takes you straight to that log.

To browse logs manually, go to Masteriyo > Tools > Logs and open the file named migration-tool.

Supported Platforms
Certificate auto-assignment: If a course in the source LMS had a certificate template, a default Masteriyo certificate template is automatically assigned during migration. Applies to Tutor LMS, MasterStudy, LifterLMS, and LearnDash. Customize assigned templates at Masteriyo > Certificates after migration.
| Source LMS | Free items | Additional items with Masteriyo Pro |
|---|---|---|
| LearnPress | Courses, Users, Enrollments, Orders, Reviews, Quiz Results, Course Progress | — |
| Tutor LMS | Courses, Users, Enrollments, Orders, Reviews, Q&A, Announcements, Course Progress, Quiz Attempts, Wishlists, Google Meet (requires Tutor LMS Pro) | Assignment Submissions, Course Bundles, Zoom, Gradebook (require Tutor LMS Pro) |
| MasterStudy | Courses, Users, Enrollments, Orders, Reviews, Course Progress, Quiz Attempts, Wishlists | Assignments, Assignment Submissions, Zoom, Course Bundles (require MasterStudy LMS Pro) |
| LifterLMS | Courses, Users, Enrollments, Orders, Reviews, Course Progress, Quiz Attempts | — |
| LearnDash | Courses, Users, Enrollments, Orders, Course Progress, Quiz Attempts, Assignments [Pro] | — |
Migrate from LearnPress
| Step | What is migrated |
|---|---|
| Users | Instructor user accounts |
| Courses | Courses with all sections, lessons, and quizzes |
| Enrollments | Student course enrollments with status |
| Orders | Purchase orders with correct status mapping |
| Reviews | Course reviews and ratings |
| Quiz Results | Quiz result records per student |
| Course Progress | Per-student lesson completion records |
Migrate from Tutor LMS
Free:
| Step | What is migrated |
|---|---|
| Users | Instructor user accounts |
| Courses | Courses with lessons, quizzes, and expanded question types (ordering, image matching, gap match) |
| Enrollments | Student course enrollments |
| Orders | Purchase orders |
| Reviews | Course reviews and ratings |
| Questions & Answers | Q&A posts and replies |
| Announcements | Course announcements |
| Course Progress | Per-student lesson and quiz progress |
| Quiz Attempts | Detailed quiz attempt records |
| Wishlists | Student wishlists |
| Google Meet (requires Tutor LMS Pro) | Google Meet virtual classroom sessions |
Pro [Pro] (requires Masteriyo Pro + Tutor LMS Pro):
| Step | What is migrated | Masteriyo Addon Auto-Activated |
|---|---|---|
| Assignment Submissions | Student assignment submission records | Assignment |
| Course Bundles | Course bundle products with included courses | Course Bundle |
| Zoom | Zoom virtual classroom sessions | Zoom |
| Gradebook | Student gradebook records | Gradebook |
Migrate from MasterStudy
Free:
| Step | What is migrated |
|---|---|
| Users | Instructor user accounts |
| Courses | Courses with all lessons and quizzes, including all statuses and accurate timestamps |
| Enrollments | Student course enrollments |
| Orders | Purchase orders |
| Reviews | Course reviews and ratings |
| Course Progress | Per-student lesson completion records |
| Quiz Attempts | Detailed quiz attempt records |
| Wishlists | Student course wishlists |
Pro [Pro] (requires Masteriyo Pro + MasterStudy LMS Pro):
| Step | What is migrated | Masteriyo Addon Auto-Activated |
|---|---|---|
| Assignments | Assignment posts | Assignment |
| Assignment Submissions | Student assignment submission records | Assignment |
| Zoom | Zoom virtual classroom sessions | Zoom |
| Course Bundles | Course bundle products with included courses | Course Bundle |
Migrate from LifterLMS
| Step | What is migrated |
|---|---|
| Users | Instructor user accounts |
| Courses | Courses with all lessons and quizzes |
| Enrollments | Student course enrollments with accurate status mapping |
| Orders | Purchase orders with correct status mapping |
| Reviews | Course reviews and ratings |
| Course Progress | Per-student lesson and quiz progress |
| Quiz Attempts | Detailed quiz attempt records |
Migrate from LearnDash
| Step | What is migrated |
|---|---|
| Users | Instructor user accounts |
| Courses | Courses with sections, lessons, and quizzes (section ordering preserved) |
| Enrollments | Student course enrollments |
| Orders | Purchase orders |
| Course Progress | Per-student lesson completion records |
| Quiz Attempts | Detailed quiz attempt records |
| Assignments [Pro] | LearnDash assignment posts and student submissions (Assignment addon auto-activated) |
After Migration
Once migration completes, the modal shows a success state with the total number of items migrated. A completion notice also appears the next time you visit the Migration page, including a Logs link when a log file exists.
Verify the migrated data in the corresponding sections:
- Masteriyo > Courses — courses, lessons, and quizzes
- Masteriyo > Students — enrolled students
- Masteriyo > Orders — purchase order history
- Masteriyo > Reviews — course reviews
If fewer items than expected were migrated, go to Masteriyo > Tools > Logs, open the migration-tool log file, and look for failed items — each is listed with its ID and the reason it was skipped.
Was this article helpful to you?
Give us Rating
Last edited on July 23, 2026.
Edit this page