Skip to main content
Best Answer

Importing Training Material Records from another LMS

  • February 24, 2026
  • 10 replies
  • 177 views

Hello,

We are currently working with Docebo to migrate from our existing LMS to the Docebo platform. We need to transfer learner records from the old LMS and upload all training materials to the repository. Additionally, we want to mark certain learners as complete for specific items. Is there an admin tool that allows us to do this, or does Docebo need to handle it? If anyone has experience with this process, any insights would be appreciated.

Best answer by mzirnhelt

You can import records yourself as External Training or Certifications.  If you want actual courses marked complete, it’s possible but harder to do yourself so I’d talk with your implementation team about options.  

 

If you want to tackle if yourself, here’s a great starting point about using the API to import completion records.

 

10 replies

JEntis
Helper I
Forum|alt.badge.img+4
  • Helper I
  • February 24, 2026

Unfortunately to my knowledge there still is no admin tool for this to do on your own. For mass transfer of records from one LMS to another, you will need Docebo’s internal team to assist you and it’s an extra cost (that is what we had to do when we switched to Docebo 4 years ago). I would work with your onboarding manager assigned to you to get guidance on that process. Good luck!


Forum|alt.badge.img+4
  • Helper III
  • Answer
  • February 24, 2026

You can import records yourself as External Training or Certifications.  If you want actual courses marked complete, it’s possible but harder to do yourself so I’d talk with your implementation team about options.  

 

If you want to tackle if yourself, here’s a great starting point about using the API to import completion records.

 


Forum|alt.badge.img
  • Influencer II
  • February 24, 2026

Users you can import utilizing the Automation app 

Courses_ First you will need to create the course shells, and then determine whether you are loading as a CSV to the Course or importing into the Central Repository 

Completion Records _ if you want to mark the course complete you will need to import via API 

Additionally , in my experience nothing fits exactly from one system to another , you will need to typical convert dates if you want to load ILTs sessions and events are not a one for one.  

If you want to mark Learning plans complete, you will need to mark the courses complete first. 

There are nuances to this.  Docebo or a Certified Partner can assist if you need further best practices. 

A lot can depend on what you want to report on in the future. 


JZenker
Guide II
Forum|alt.badge.img+2
  • Guide II
  • February 24, 2026

Use this spreadsheet tool to add them all via API. 

https://docs.google.com/spreadsheets/d/1ROFSEqKcc9Tcm1Umg6Oo5Mla7owrAPmA_h4WXGpVloM/edit?gid=676810685#gid=676810685

Created by ​@Bfarkas.

Doing it with this via API will allow you to maintain the original enrollment date, rather than doing it through the UI which will instead use today’s date as the enrollment date.

 


We inputted all the records of completion form our old system to their External Training page, the username was the key identifier.  We also added some additional fields to this area also.  We advised colleagues if they wanted to check for CPD etc where to find their previous learning.  This was a straightforward process for us using their template.  

I must add that this was 5 years ago, there may be a better way of doing this now.  But this was the best option at the time. 


  • Author
  • Novice I
  • February 24, 2026

Unfortunately to my knowledge there still is no admin tool for this to do on your own. For mass transfer of records from one LMS to another, you will need Docebo’s internal team to assist you and it’s an extra cost (that is what we had to do when we switched to Docebo 4 years ago). I would work with your onboarding manager assigned to you to get guidance on that process. Good luck!

Thank you for your reply, we are currently working with them - however I was not sure if there was a way to do this on our own.


  • Author
  • Novice I
  • February 24, 2026

You can import records yourself as External Training or Certifications.  If you want actual courses marked complete, it’s possible but harder to do yourself so I’d talk with your implementation team about options.  

 

If you want to tackle if yourself, here’s a great starting point about using the API to import completion records.

 

Thank you for sharing this - we take a look over this. 


dklinger
Hero III
Forum|alt.badge.img+11
  • Hero III
  • February 24, 2026

@JT_Gunter - hi - a note and a word of caution. When you do API completion record loading - you can create yourself some havoc as you are hitting the database directly. Formats need to be perfect and exact. You aren’t going to get tons of feedback from the system to know where the issue is.

Where ​@Bfarkas is thorough in his approach - he would probably share? Looking to break up your file into smaller files has some wisdom to it. Bulk enrollments into e-learning is also ALOT more straight forward than loading into ILT records.

And you will want to cover three nuances -

  1. make sure the user is there
  2. and the course is there
  3. before trying to load something into it (I know captain obvious) or for them.

A completion is one thing, bringing over a score can be another.

And making sure that you have a certificate in the system can be another.

All of that and this is only moving the historical record, not necessarily the content for you.

Lastly - this may be the other captain obvious moment - there are consulting teams that support this as well as Docebo - all at cost? But at least you can yell at someone if there is an issue. 


  • Helper I
  • February 24, 2026

I did this when we migrated part of our organization from Lessonly to Docebo.   I actually wrote a Python Script to do this, but I’m still stuck going through the hoops to get it “open-sourced”.   Will follow-up if I can make it public, but it can be done if all the APIs are in place.  In the case of Lessonly, there were some instances that we had to do manual cleanup because of the way Lessonly handled some new type of “path” they were implementing (but didn’t yet have APIs for).   

@dklinger covered it well though, and the script I have may not cover all the nuance you need.   For example, in our case, we lucked out that the organization wanting the migration ONLY wanted the “completion” status saved (so they knew who completed) but were less concerned about in_progress enrollments.   They had planned to completely overhaul and create new courses, so they only wanted the history of who actually completed the old stuff (and didn’t want to worry about saving off an archive of everything from Lessonly).  We didn’t even migrate any of the course content because they didn’t want it.


Davefox
Helper III
Forum|alt.badge.img+3
  • Helper III
  • February 25, 2026

I will be repeating a LOT of what others have said. In my last Docebo impelmentation, we had training records for 15,000 learners to work through. We made a few governance decisions

  1. We sent a notice to all learners giving them 4 weeks to complete classes in the old system and informing them of the following
  2. If the user had not logged in for 36 months ( regardless of class progress), we did not move anything or add them to the new LMS. this cut approx 
  3. If the learner had enrolled in a class but had not completed it, we did not enroll them.
  4. If the learner had enrolled in the class and was in proogress, we enrolled them via CSV and reset progress. 
  5. If the learner had completed a class that we were not moving into Docebo, we added it as an external training via a CSV import. 
  6. If the learner had completed a course we marked them complete via CSV and API

This helped us both control active users vs. Looky loos, and gave us clear guidelines for hoow to handle classes.

 

API and CSV were our friends here to prevent manual entry.