Introduction
This guide provides a comprehensive overview of how to migrate data from a legacy Learning Management System (LMS) to the Docebo platform. Use it to ensure you cover all essential setup tasks.
If you need further assistance at any stage of the migration, please do not hesitate reach out to your assigned Docebo Solution Deployment Manager (SDM) to discuss data strategies and assistance on your data import.
Learn more on Docebo University
Want to learn more about migrating to Docebo? Have a look at the dedicated course, Docebo Ready! Preparing for Your Onboarding > Introduction to Data Migrations lesson (opens in a new tab) on Docebo University!
Migration steps
Through years of experience, Docebo has developed a step-by-step migration process that ensures a smooth and efficient transition.
Step 1: Data files preparation
Start by identifying the legacy data you wish to migrate from your previous platform and organizing them in one or more CSV files (with specific formatting requirements, as described later in this article). A CSV file is required for each of the types of data you are migrating (users, courses, enrollments etc.).
Download the data migration templates.
Step 2: Training material files upload to Docebo
If training material import is a part of your migration project, upload the content files taken from the previous LMS in the Docebo platform. Relevant files may include course cover images (thumbnails), SCORM packages, PDF documents, etc.
Docebo will set up a shared protected repository/folder (Amazon S3 bucket) where you can drop content files gathered from your legacy LMS to be imported to Docebo. At the beginning of this step, Docebo will send you a set of credentials to access this temporary storage, with any S3-compliant tool, such as Cyberduck (opens in a new tab). Materials will be imported to courses and can be manually pushed to the Central repository by Superadmins and Power Users as needed.
Step 3: CSV file consistency check
After receiving CSV files from Step 1 and content files from Step 2, Docebo will run consistency checks to ensure that the files will be correctly processed. Checks include a review of the CSV files to make sure they are properly formatted and contain the required columns. You may be asked to correct inconsistencies or missing data and return new versions of the CSV files.
Step 4: Sandbox migration
Before running the actual migration on the production platform, Docebo prepares a temporary sandbox platform (cloned from the production platform) and runs a migration pilot, so that you can have a preview/simulation of how the production migration will result.
If adjustments are needed, the migration pilot can be repeated to ensure full confidence in the result.
Step 5: Production migration
Once Step 4 is successfully completed, Docebo will agree with you on a date to run the entire migration in the production platform.
Please note. Sandbox and production environments are not synchronized automatically and the sandbox will not be synchronized to production. You need to duplicate every operation manually in both environments.
Step 6: Delta migration
If any additional enrollments have occurred between the initial import and after going live in Docebo, Docebo will run one file import to bring any remaining enrollments into production.
Data available for migration
Depending on the data you decide to migrate, the migration project can include one, any, or all of the following options. Details pertaining to each import are provided in this article.
- Branches
- Users
- E-learning course shells
- E-learning course enrollments
- Instructor-Led Training (ILT) course shells
- ILT sessions
- ILT events
- ILT session enrollments
- Training materials (see exceptions below)
- Training materials tracking data (some exceptions)
- Certification and retraining records
- Catalogs: Shells, items, and visibility
The following options are not currently available for migration from other LMSs:
- Learning plans
- Training material import into the Central repository
- Power User profiles
- Groups (automatic or manual)
- Subscription enrollment
- Channels
- Informal learning assets
- Surveys
- Assignments
- External training material (Elucidat, Google Drive)
- Certificates
- CMI repository in a SCORM
- LRS statements in an xAPI (formerly Tin Can API)
- Bookmark of actual completion for video training materials: if a user is in progress, the video will start from the beginning
- Tests
- Course categories (once created, data can be uploaded via course shell import)
- User and course additional field setup (once created, data can be uploaded via respective imports, user or course)
- Locations
- Course widgets or items in the file repository area widget
- Training material prerequisites or settings
Data order of import and prerequisites
Data must be imported according to the following order:
- Branches
- Users
- User additional fields need to be created in the platform if included in the import file
- Users must be active if importing enrollments and training material tracking
- Course shells (e-learning and ILT)
- Course additional fields need to be created in the platform, if included in the import file
- Course category codes must be created in the platform, if included in the import file
- ILT sessions
- ILT events
- Locations need to be created in the platform if included in the import file
- Enrollments (e-learning and ILT courses and sessions)
- Certification and retraining records
- Need to be created in the platform before importing certification records
- Training materials
- Catalog shells
- Catalog items
- Catalog visibility
- Training material tracking
- User must be enrolled in the course to import tracking
- Training material must exist in the course
Import types
Branch import
Docebo data fields | Description | Notes |
Branch Code | Alphanumeric code which will identify the branch. |
Codes must be unique. This field is mandatory. |
Branch Name | Name of the branch. |
Set the name in the default platform language. This field is mandatory. |
Branch Name (language) | Name of the branch in an alternative platform language. |
Example header: Branch Name (Italian). One column per language. |
Parent branch code | Branch code of the parent node. |
The parent branch must be defined before any child branches that fall under it. If not set, it defaults to the Docebo root node. |
User import
Users can be imported to the Docebo platform by using the Import > Manage users via CSV option within the platform from the Users management area. The maximum CSV import file size from the Users management area is 3MB, but your assigned Docebo SDM can manage files up to 50MB.
For more detailed information about the formatting of the user import CSV file, refer to the article in the knowledge base on importing and managing users via CSV files.
Please note. If enrollments will be imported, all users must be active for that import.
E-learning and ILT shell import
Course structure can be imported to the Docebo platform where a placeholder will be used as a container for course content. You must provide a CSV file template which is formatted as outlined below. The maximum CSV import file size is 50MB.
Docebo data fields | Description | Notes |
Course Code |
Unique alphanumeric code that will identify the course. |
Maximum 50 characters. Must be unique. The long hashmark (emdash) and ampersands are not supported. This field is mandatory. |
Course Name | Title of the course. |
Maximum 255 characters, special characters included. Names must be unique. This field is mandatory. |
Course Description | Extended description of the course. |
HTML formatting accepted. Maximum 65,535 characters. This field accepts limited HTML. It is strongly suggested to test the accepted code. This field is mandatory. |
Course Type |
Type of course. Accepted values:
|
This field is mandatory. |
Thumbnail |
Filename that points to a shared image file. |
Accepted formats: JPG and PNG. If you need to use JPEG, contact your SDM/TDM about options for importing that file type. Recommended file size: 800x400 pixels. Maximum file size: 4MB. The filename is case-sensitive. |
Course Language |
Language used to build the course (e.g., English, Italian, etc.). |
Check the list of supported languages. The course language value is case-sensitive. If a value is not provided, the default system language is used. |
Course Status |
Status of the imported course. Accepted values:
|
Defaults to |
Category Code |
Code of the category where the course will be placed. |
Course category values must already exist in the Docebo platform. Codes must be unique. This field is mandatory. |
Self-Enrollment |
Indicates whether to allow self-enrollment of the course. Accepted values:
|
Valid if the course is in a catalog. Defaults to Self-enrollments are not available. This field is mandatory. |
Self-Enrollment From |
Start date of the self-enrollment validity period. Format
|
|
Self-Enrollment Due |
End of the validity period for self-enrollment. Format
|
|
Average Time |
Estimated duration of the course. Format
|
Only available for e-learning courses. |
For Sale |
Indicates whether an e-learning or ILT course is for sale. Accepted values:
|
|
Price |
Cost of course in cents of its currency. |
Example: 100 means that the course price is $1. This field is mandatory if the course is marked for sale. |
Max Enrollment Quota |
The total number of enrollments allowed for the course. |
Only used if users can self-enroll in the course via catalog. |
Credits |
CEUs credits assigned to the course. |
Upon import, the value in the spreadsheet is divided by 100. For example, if a course should award 2.5 CEUs, then the value in the import spreadsheet should be 250 (2.5*100). Cannot be 0 or a negative value. |
Course Validity Begin (Valid From) |
Start date of the period during which the course is available. Format
|
|
Course Validity To (Valid To) |
End date of the period during which the course is available. Format
|
|
Course Additional Fields |
Additional information about the course. Multiple course additional fields may be added. |
If the field is a drop-down, the ID will be provided by the SDM/TDM. Each field needs to be in its own column Date field format is Mandatory course additional fields are required for the import. |
Notes on e-learning and ILT shell import
- For ILT courses, determine if you need to report enrollments at the course level or the session level. If you need session-level reporting, then you will need to create sessions.
- Course shells need to be created for enrollment record imports, they do not need to be published.
- Training material widgets are not configured via migration and must be manually added.
- File repository area widget files are not able to be imported.
- All course fields must be reviewed after the shell is imported as not all fields are included in the import.
- The course fields and properties not listed above need to be manually updated in the course shell. Examples include the navigation policies, the course player options, and assigned certificates and certifications.
- If certifications are going to be assigned during the enrollment import, take note that multiple occurrences (rows) of the same certification for the same user should be ordered from the oldest (top row) to the most recent (bottom row) occurrence. The system tracks the bottom occurrence as the most recent one, regardless of the date.
- It is possible to import up to two historical records for one user/per course (the earliest record can be attached to a certification built by you before enrollment and the latest record would be assigned to the course enrollment screen). If you need more historical records per user/ per course, you would need to look at using certification records import.
ILT session import
ILT courses have the actual dates tied to events. This import will create the sessions only. If you want to include dates, locations, or video conference tools, you must also import events.
Sessions can be imported to the Docebo platform as described in the Importing sessions via CSV chapter of the article Importing ILT and VILT sessions and events via CSV files. The maximum CSV import file size from the Course management area is 3MB, but your assigned Docebo SDM can manage files up to 50MB.
ILT event import
ILT courses have the actual dates tied to events. If you are importing course enrollment and completion history for ILT courses, then you may also want to import the dates that the training was held.
Events can be imported to the Docebo platform as described in the Importing events via CSV chapter of the article Importing ILT and VILT sessions and events via CSV files. The maximum CSV import file size from the Course management area is 3MB, but your assigned Docebo SDM can manage files up to 50MB.
E-learning course enrollments import
You can import e-learning course enrollments into the Docebo platform including the status of Completed for those historical course completions that may be needed. When importing course enrollments via the user interface and including the status of Completed, the completion date will be the date of import.
Enrollments of e-learning courses can be imported to the Docebo platform as described in the Enrolling users in courses and sessions using CSV article. The maximum CSV import file size from the Course management area is 3MB, but your assigned Docebo SDM can manage files up to 50MB.
Notes on importing e-learning course enrollments
- All users must be active at the time of the migration.
- Users must not be already enrolled in courses, otherwise the system will trigger an error.
- If no time is known, 12:00:00 PM should be used.
- Course shells need to be created to import enrollment history. They do not need to be published.
- Enrollments can be done at course level or session level with reporting options available for both. If you are only importing enrollment history, you may not need session enrollments.
- Certifications are not automatically triggered when completed enrollments are imported unless requested to do so. Please note that you have to create certification shells in the Certification and retraining app prior to the enrollment import.
- Docebo can import up to two historical records for one user/per course (the earliest record can be attached to a certification built by the Duperadmin prior to enrollment and the latest record would be assigned to the course enrollment screen). If you need an additional historical record per user/ per course, you would need to look at using Certification and retraining records import.
- If a certificate template is attached to the course prior to enrollments, users will be awarded the digital certificate upon import of completed status.
ILT course and session enrollments import
You can import ILT course and session enrollments into the Docebo platform including the status of Completed for those historical course completions that may be needed.
Please note. Users will be enrolled in all events associated with that session.
Enrollments of ILT courses and sessions can be imported to the Docebo platform as described in the Enrolling users in courses and sessions using CSV article. The maximum CSV import file size from the Course management area is 3MB, but your assigned Docebo SDM can manage files up to 50MB.
In addition to the import fields described in the Enrolling users in courses and sessions using CSV article, get in touch with your assigned Docebo SDM if you also need to import the following fields:
Docebo data fields | Description | Notes |
Course Status |
The user status of the course. Accepted values:
|
This field is mandatory. |
Enrollment Date |
The date when the user was enrolled. Format
|
This field is mandatory. |
Completion Date |
The date that the user completed the course. Format
|
If a date is not entered, the date of import for migration will be used for completion. |
Score |
The score given for the course. |
The score displayed at the course level. |
Evaluation Text |
Evaluation text and comments |
65524-character limit. HTML links accepted. |
Evaluation Date |
Date when the user was evaluated. Format
|
|
Evaluation Score |
The score earned on evaluation. |
Numeric value. |
Passed |
Indicates if the user passed or not the session. Accepted values:
|
Only available when the Evaluation type is set to Must be all lower, we suggest using a preceding Quote (‘) if using Excel. |
Present |
Indicates if the user was present in the session and events. Accepted values:
|
Marks all events in the session with imported value. Sets the duration equal to the event duration. Only available if session events are created. Must be all lower, we suggest using a preceding Quote (‘) if using Excel. |
Course Enrollment Fields |
Indicates the course enrollment fields. |
Multiple additional fields may be added. The database ID is needed for import if the field is a dropdown type. Your assigned SDM/TDM will provide the ID value. |
Enrollment Priority Attributes |
Available if the Show the Enrollment attributes option is enabled in the platform's advanced settings. Accepted values:
|
|
Notes on importing ILT course and session enrollments
- All users must be active at the time of the migration.
- Users must not be already enrolled in courses or sessions, otherwise the system will trigger an error.
- If no time is known, 12:00:00 PM should be used.
- Course shells need to be created to import enrollment history. They do not need to be published.
- Enrollments can be done at course level or session level with reporting options available for both. If you are only importing enrollment history, you may not need session enrollments.
- If only tracking enrollments at a course level, the following lists the impact of not enrolling in session:
- For reporting purposes, use the Users – Courses custom report instead of using the Users – ILT sessions custom report.
- ILT courses will not appear on the ILT (Instructor-Led Training) tab of the User personal summary if the user is not enrolled in a session. The ILT courses will appear on the Courses tab only.
- Users will receive the New ILT session created notification if not currently enrolled in a session.
- The ability to filter by users not enrolled in a session on the course management page will be diminished.
- In Course management under the Enrollments column, the orange icon identifying the users without a session assigned will always be displayed.
- If the course will be used for future sessions, it is recommended that you create a session titled Historical so that reporting will be more accurate.
- Certifications are not automatically triggered when completed enrollments are imported unless requested to do so. Please note that you have to create certification shells in the Certification and retraining app prior to the enrollment import.
- Docebo can import up to two historical records for one user/per course (the earliest record can be attached to a certification built by the Duperadmin prior to enrollment and the latest record would be assigned to the course enrollment screen). If you need an additional historical record per user/ per course, you would need to look at using the Certification and retraining records import.
Certification and retraining records import
Certification records can be imported to the Docebo platform as described in the Awarding certifications to users via CSV chapter of the article Managing the Certifications and retraining app. The maximum CSV import file size is 50MB.
Notes on importing certification records
- Certification with the specified code must already exist on the platform.
- Certifications and retraining records are in UTC which could affect the completion date when importing.
- Certifications are used for certification programs as well as to track enrollments for recurring training such as compliance training that needs to be retaken after a certain period of time.
- You can create or update certification records, but you cannot unassign them via migration. Unassigning needs to occur in the Certification and retraining app.
- Multiple occurrences of the same certification for the same user should be ordered from the oldest (top row) to the most recent (bottom row) occurrence. The system is tracking the bottom occurrence as the most recent one, regardless of the date.
- You can import multiple records per user per certification. We suggest you limit to 10 historical records for each user’s certification.
Training material import
Once course shells have been imported to the platform, training materials can be imported to each of the courses. The CSV file to import training materials should contain the columns in the table below. The maximum CSV import file size is 50MB.
Please note. Courses do not have to be published for the import.
Currently, the following types of training materials can be batch-imported:
- Downloadable files (such as DOC, XLS, GIF, PNG, TXT, DOCX, XLSX, PDF, PPT, ZIP)
- SCORM (1.2 and 2004 3rd edition)
- Videos
- xAPI (formerly Tin Can API)
- AICC
- HTML pages
- Slides converter
Docebo data fields | Description | Notes |
Course Code |
Course code identifying where to upload the training material. |
The code must match an existing course code. This field is mandatory. |
Training Material Title | Name of the training material. |
Maximum 100 characters. Must be unique. The long hashmark (emdash) and ampersands are not supported. This field is mandatory. |
Training Material Code |
Training material code. |
Not exposed in the UI, can be used in API calls. Maximum 50 characters. Must be unique. The long hashmark (emdash) and ampersands are not supported. |
Training Material Type |
Identifies the type of training material contained in the current row. Accepted values:
|
This field is mandatory. |
Training Material Filename |
The filename of the shared physical file that was uploaded to the S3 Bucket. |
Required for most training materials, not applicable to HTML types. The filename must include the extension, i.e. .pdf The long hashmark (emdash) and ampersands are not supported. Training material file names cannot be modified after the import. Only the |
Training Material URL |
Link to the training material. |
Required only if the filename is empty and the training material type is When the field is used, the See the table below for additional xAPI (formerly Tin Can API) settings. |
Training Material Description |
Description of training material |
HTML coding is allowed. Highly suggested to test the code prior to import. |
Training Material Thumbnail |
Training material thumbnail. |
The thumbnail is visible in the player’s List view mode. Enter the thumbnail filename with the extension. Allowed formats: JPG, PNG, GIF. Recommended size: 800 x 400 pixels. |
Training Material Content |
Content for HTML training materials. |
Only applicable to HTML training materials. |
Training Material Launch Mode |
Training material view mode. Accepted values:
|
The parameters can be applied only for specific training material types, as follows:
A launch mode cannot be applied for the following training material types:
|
The following columns are applicable to xAPI (formerly Tin Can API) training materials only, when the external Tin Can play is enabled in the platform, the Training Material Type is tincan
, and the Training Material URL is entered.
Docebo data fields | Description | Notes |
Mobile Use External Link |
Boolean (optional) Accepted values:
|
|
TM Tin Can SALT |
Define the SALT secret key for the external Tin Can. |
|
TM OAuth client |
Name of OAuth app used to access Tin Can training material. |
OAuth app name as defined in the platform. Example: Okta Auth |
TM Enable OAuth |
Enable the OAuth client to play the external Tin Can. Accepted values:
|
|
TM Track All Activities |
If checked, the platform will track all the activities, including activities and sub-activities. If the Track all activities option is not selected, only the main activities of the package will be tracked, and all modules have to be completed in order for the Tin Can to be marked as completed. Accepted values:
|
The default value is |
- Training materials cannot be imported to the Central repository. If items should be in the Central repository, a Superadmin or Power User with appropriate permissions will need to manually assign them at the course level.
- xAPI (formerly Tin Can API) training material must be imported as a zip package and cannot exceed 1024MB. Refer to the article on system requirements for training material limitations.
- SCORM, AICC and xAPI (formerly Tin Can API) files must be in the correct format and include the .zip extension. For example, the SCORM package must have all files at the root and include the proper manifest file.
- Training material prerequisites and settings cannot be imported therefore will need to manually set after import is complete.
- Training materials will be displayed in order of the CSV file import, including subsequent error file imports. Remember to check the order after the import is complete.
Catalog import
This import allows you to create the shell of catalogs. Catalog visibility and items will be imported separately, if part of the migration scope. The CSV file to import catalog shells must contain the columns in the table below. The maximum CSV import file size is 50MB.
Docebo data fields | Description | Notes |
Code |
Code of the catalog. |
Must be unique. The ampersands is not supported. This field is mandatory. |
Name | Name of the catalog. |
Must be unique. This field is mandatory. |
Description | Text describing the catalog. |
Accepts limited HTML coding. It is strongly suggested to test the accepted code. Also while this column is required for the import mapping, the description can be left blank if you do not want to provide a description. This field does not accept images. This field is mandatory. |
Catalog items import
This import allows you to add courses or learning plans to an existing catalog. The CSV file to import catalog items must contain the columns in the table below. The maximum CSV import file size is 50MB.
Please note. Catalogs, courses and learning plans must already exist in the platform and must have codes assigned prior to the catalog items import.
Docebo data fields | Description | Notes |
Catalog Code |
Code of the course catalog. | This field is mandatory. |
Item Code | Code of the learning plan/course to push inside the catalog. | This field is mandatory. |
Item Type |
Training type of the item imported. Accepted values:
|
This field is mandatory. |
Catalog visibility import
This import allows you to add courses or learning plans to an existing catalog. The CSV file to import catalog visibility must contain the columns in the table below. The maximum CSV import file size is 50MB.
Please note. Any catalogs, user, group, branch must already exist in the Docebo platform prior to the catalog visibility import.
Docebo data fields | Description | Notes |
Catalog Code |
Code of the course catalog. |
Catalog must already exist on the platform. This field is mandatory. |
Entity Code |
Unique identifier of the entity. Accepted values:
|
This field is mandatory. |
Entity Type |
Type of the item imported Accepted values: Accepted values:
|
This field is mandatory. |
Include Descendants |
Available only for Accepted values:
|
Training materials tracking data import
If you want to migrate tracking data for users at the level of each training material, you must prepare a CSV file with columns shown in table below. The maximum CSV import file size is 50MB.
Docebo data fields | Description | Notes |
Username |
Login name of an existing user. |
Enter the exact username. This field is case-sensitive. This field is mandatory. |
Course Code | Code of the course where training material exists. |
The course must already exist in the Docebo platform. This field is mandatory. |
Training Material Name | Title of the training material which this tracking refers to. |
The name should be a unique to the course. Training material names must match training material names already existing in the courses specified. This field is mandatory. |
Training Material Code | Code assigned to the training material. |
Code is required if the Training Material Name is not defined in the platform. |
User Status |
User’s status of training material. Accepted value:
|
Users must be active and enrolled in the course to import tracking status. This field is mandatory. |
Training Material Completion Date |
Training material completion date. Format
|
This field is mandatory if user status is Completed. |
Training Material Type |
Type of training material. Accepted values:
|
AICC and authoring tools cannot be tracked. This field is mandatory. |
Score |
Final score taken by the user for the current training. |
Applicable only to SCORMs, xAPI (formerly Tin Can API), assignments, and test training material types. Import of score tracking data for tests requires that the test exists and has at least one question. If uploading a score, all records must have a score. If you want a blank value for a score instead of a 0, then two import files are needed, one with scores and one without. |
Filename |
Filename uploaded by the user. |
Only applicable and required for assignment type training materials. The file name must contain extension, ie .pdf |
Time Zone |
Time zone of training material tracking expressed as Area/Location. |
Example: America/Chicago. Use Value shown in the Location column of the table in the article on supported time zones. The time zone value is case-sensitive. |
Notes on training materials tracking data import
- Courses do not have to be published for the import.
- If using the training material tracking to complete the course, then the course complete date will be the date of import, not the last training material completion date.