Thinkific to LifterLMS: A Step-by-Step Migration Guide

Move from Thinkific to LifterLMS in ten ordered steps: exports to run first, how chapters and lesson types map, importing students and completions, handling Thinkific Payments subscriptions, and a cut-over checklist.

  • Add as a preferred source on Google
Illustration for “Thinkific to LifterLMS: A Step-by-Step Migration Guide”

Moving from Thinkific to LifterLMS takes your school off a hosted platform and onto a WordPress site you control. The usual reasons are fees, design limits, wanting your own checkout and data, or needing integrations Thinkific does not offer.

This guide is the practical sequence: ten steps in the order we would run them, from the exports you should take on day one to the email you send students on launch day. It is written for Thinkific site owners and the developers helping them.

If you are still choosing a platform, our LifterLMS vs Teachable, Thinkific and Kajabi comparison will help. For the general principles behind any LMS move, see our LifterLMS migration guide.

How Thinkific concepts map to LifterLMS

ThinkificLifterLMSComment
CourseCourseRebuilt in the Course Builder
ChapterSectionSame role in the outline
Video, text and download lessonsLessonText pasted in, video embedded, files attached
Quiz lessonQuiz attached to a lessonCreate a short lesson to hold the quiz if needed
Survey lessonForm plugin or ungraded contentLifterLMS core has no survey type
Pricing optionsAccess plansOne-time, subscription, payment plan, free trial
Bundles and membershipsMembershipsAuto-enroll members into chosen courses
CouponsCouponsRecreate codes and limits
CertificatesCertificate templatesRedesign in the certificate editor
CommunitiesCommunity pluginbbPress, BuddyPress or BuddyBoss with LifterLMS

Two structural points matter. LifterLMS courses always use sections, so chapters translate directly. And a LifterLMS lesson holds at most one quiz, which suits Thinkific's model of quizzes as separate lessons.

Steps 1 to 3: Export and inventory everything first

Step 1: Export your users

Thinkific's User Table article explains the export: go to Users, then All Users, and choose Export. The CSV link is emailed to you. Two details from that article matter: exporting needs the Basic plan or higher, and only the columns visible in the table are included. Add every column you need, including custom sign-up fields, before you export.

Step 2: Export progress for each course

Thinkific's Progress Reports export one course at a time from Users, Student Progress. The report includes when each student started, completed and last signed in, and their completion rate. That tells you who finished, but not which lessons a partly finished student completed. For lesson-level detail you would need Thinkific's Admin API.

Step 3: Build the inventory

Create a spreadsheet with one row per lesson: course, chapter, lesson title, lesson type, video file and any quiz. Add a second sheet listing pricing options, coupons, bundles, active subscribers and every public URL. This becomes your checklist for the rest of the project.

Steps 4 to 6: Rebuild the school in LifterLMS

Step 4: Set up WordPress and LifterLMS on staging

Choose good hosting, install LifterLMS, and run the setup wizard. Build on a staging site so your Thinkific school keeps selling while you work.

Step 5: Move video and rebuild courses

Download your videos from Thinkific's video library and upload them to a dedicated video host, then embed them in lessons. Rebuild each course in the Course Builder: chapters become sections, lessons follow in order. Recreate quizzes from your inventory, because questions and answers need to be re-entered. LifterLMS core includes multiple choice, picture choice and true or false questions; other types need the paid Advanced Quizzes add-on.

Step 6: Recreate pricing and checkout

Turn each Thinkific pricing option into an access plan on the matching course or membership, with the same price, billing period and trial. Install a paid gateway add-on such as Stripe or PayPal, since the free core ships with only the manual gateway. Recreate coupons with the same codes so existing promotions keep working. Our article on payment plans and free trials in LifterLMS shows how each billing option is configured.

Steps 7 and 8: Import students and their completions

Step 7: Create accounts and enroll students

LifterLMS core does not import students from CSV, so create the WordPress accounts with a user import plugin or WP-CLI's wp user import-csv, using the student role. Then enroll each student in their courses and memberships with llms_enroll_student() in a script, or through the LifterLMS REST API.

Before you run it, pause enrollment emails under LifterLMS > Settings > Notifications and any engagements that fire on enrollment. Otherwise every imported student is emailed immediately.

Step 8: Carry over completions

With course-level progress exports, the practical approach is to mark finished courses as finished. Completing every lesson in the course lets LifterLMS calculate progress and course completion the normal way. This snippet, run with wp eval-file, does that for one student and course:

<?php
// Usage: wp eval-file llmsx-complete-course.php 123 456
// 123 = WordPress user ID, 456 = LifterLMS course ID.

// Do not send certificates or emails during the import.
add_filter( 'lifterlms_get_engagements', '__return_empty_array' );

$user_id   = absint( $args[0] );
$course_id = absint( $args[1] );
$course    = llms_get_post( $course_id );

if ( ! $course instanceof LLMS_Course ) {
	WP_CLI::error( 'Course not found.' );
}

foreach ( $course->get_lessons( 'ids' ) as $lesson_id ) {
	llms_mark_complete( $user_id, $lesson_id, 'lesson', 'llmsx_thinkific_import' );
}

WP_CLI::success( "Course {$course_id} completed for user {$user_id}." );

Wrap it in a loop over your progress CSV for bulk use. If you want students to receive their certificates on the new site, remove the filter for that run and let the certificate engagement fire, after warning students that a certificate email is coming. Partly finished students are usually told where they left off, or given lesson-level progress from the API if the course is long.

Step 9: Decide what happens to subscriptions

Thinkific's article on Thinkific Payments, Stripe and PayPal explains the three ways a school can take payments. Which one you used decides your options:

  • Thinkific Payments. It is powered by Stripe but managed from your Thinkific dashboard. Expect to ask subscribers to subscribe again on your new site. Give them a reason to: a locked-in price, a bonus, or a free first month.
  • Your own Stripe account. Customers and saved cards are already in your Stripe account, which you can connect to the LifterLMS Stripe add-on. Continuing those subscriptions without asking for card details again requires custom development to create matching LifterLMS orders. Budget for it and test it with real renewals.
  • PayPal. Thinkific's article notes PayPal does not support recurring payments on Thinkific, so there are usually no PayPal subscriptions to move.

Cancel each Thinkific subscription only once the student is active on LifterLMS, and keep a shared sheet of who has moved.

Step 10: Cut over, redirect and announce

  1. Freeze changes on Thinkific and take fresh user and progress exports.
  2. Re-run the student import against the fresh data on the production site.
  3. Point your domain at the WordPress site and add 301 redirects from each old Thinkific URL in your inventory to its new page.
  4. Re-enable notifications and engagements.
  5. Email students: what changed, the new login link, how to set a password, and where to get help.
  6. Watch support requests and failed logins daily for the first two weeks.
  7. Keep Thinkific open until subscribers have moved and you have downloaded the exports your accountant needs.

Common mistakes

  • Exporting with default columns. Thinkific exports only visible columns, so custom fields are easy to lose.
  • Importing on live with emails switched on. One script run can send thousands of welcome emails and certificates.
  • Treating video as an afterthought. Video migration is usually the longest task. Start it first.
  • No redirect map. Old sales page links in emails, ads and social posts break on launch day without one.

Frequently asked questions

Is there an automatic Thinkific to LifterLMS importer?

Not in LifterLMS. The core importer reads LifterLMS export files only. Content is rebuilt, and students are imported with scripts or tools.

Can I keep my Thinkific custom domain?

Yes. Point the domain at your WordPress site at cut-over and redirect the old paths.

What about my Thinkific community?

Discussions do not transfer. Set up a community on WordPress, such as bbPress forums or BuddyBoss, and invite members to it at launch. Our community options guide compares them.

What do I take on that Thinkific used to handle?

Hosting, updates, backups, security and email delivery. None of these is difficult, but each needs an owner. Choose managed WordPress hosting, use a transactional email service so receipts and password emails arrive, keep automatic backups, and schedule plugin updates on a staging copy first. Many schools hand this to a support plan so the course creator can stay focused on content and sales.

Should I change anything while I migrate?

Keep prices and course structure the same at launch so returning students recognise everything. Improve content, pricing and design after the move has settled, one change at a time.

Next steps

Run steps 1 to 3 this week. The inventory tells you how big the job really is and whether subscriptions need custom work.

If you would rather hand over the heavy lifting, our LifterLMS migration service covers rebuild, imports, subscription planning and redirects. Contact us with your inventory and we will scope it.

Add LifterLMS Expert to your preferred sources

Add lifterlmsexpert as a preferred source on Google, or open this article in your AI assistant to use it as a source.

  • Add as a preferred source on Google
Free consultation

Prefer expert help over DIY?

Skip the trial and error. Get specialist LifterLMS help and ship faster.

Talk to a LifterLMS Expert Explore our services

Replies within one business day