In order to import content into a course you need to have an owner or collaborator role.
Import behavior will vary depending on course type and course state:
In non-bank course behavior is determined by the course state. When a course is in Conversion state, importing content completely replaces any previously existing lessons & lesson categories. When a course is Published state, imported content will be added to the existing lessons and lesson categories.
In bank courses, imports will always add to existing content.
Importing Lessons into a Course Without Existing Lessons or Lesson Categories
The following steps outline the process for importing content into a course that does not yet contain any lessons or lesson categories.
- View the Breakdown of Spreadsheet section below, and download the Lesson Import Template. The order of column headers must match the exact order below. Ensure all headers are included, even if you will not supply content under all of them.
- View the CSV example section below to download a filled out csv file and review the structure of the upload in the Learning Application.
- Follow the information under “Breakdown of Spreadsheet” to add values to your template.
- Any formatting within your content will need to be written as HTML (e.g. bold, italics, lists, line breaks, links, etc.).
- Any special characters should be amp-encoded with their corresponding HTML entities. You can use an online tool like this one to encode special characters appropriately.
- Export the spreadsheet as a CSV with UTF-8 encoding.
- Compile and compress content files directly referenced in the spreadsheet.
- Import your lessons in BluePrint:
- Navigate to your course in BluePrint, and click on Other Tools. Select Import Content.
NOTE: More about the Import Tool can be found here. - Under "Lessons," click on Choose File, and select your CSV.
- If your spreadsheet contains references to other files for images or HTML content:
- Under "HTML Content," choose the zipped file of all HTML files referenced under reading_html_file in the CSV.
- If not completed at the start of importing process: under "Image" and/or "Multimedia Content," choose the zipped files associated with the CSV.
- Click on Import at the bottom of the screen. Wait for the page to reload.
- Navigate to the course's Activity Log. Once the import is complete, the activity will update to “successful.”
- All lesson categories must be deleted at time of import.
- Navigate to your course in BluePrint, and click on Other Tools. Select Import Content.
- Once import completes everything will be imported as a lesson, to generate Lesson Categories:
- Click on Other Tools.
- Click on Generate lesson categories.
- Navigate to the course's Activity Log. Once complete, the activity will update to “successful."
- All lesson categories and lessons will now appear under Lesson Categories on the left-hand nav.
Breakdown of Spreadsheet
Below is information on what column headers to include in your spreadsheet (*=value required) and how to input content under each column.
Lesson Import Template can be downloaded here.
Note: The order of lessons and categories in your CSV will affect the end order. If necessary, the order for categories, subcategories, and individual lessons is changeable after importing.
- First column: id
- What: represents ID for category and subcategories
- Can be anything
- Best Practice: Input consecutive whole numbers for categories
- Best Practice: Input consecutive letters for subcategories
- Second column: name*
- What: name of lesson category, subcategory, or title
- Can be any plain text
- Lesson names can only be formatted in BluePrint
- Blank value will cause import to fail silently and break course
- Third column: parent_section_id
- What: represents ID of category or subcategory specified under first column
- Must match a value found in first column
- Required for subcategory names and lesson names
Example of ID, name and parent_section_id columns

- Required for subcategory names and lesson names
- Fourth column: lesson_category_id
- Fifth column: lesson_category_name
- Sixth column: sub_lesson_category_name
- Seventh column: reading_html_file
- What: lesson content
- Required for rows of lesson names, NOT required for category and subcategory names
- Options:
- Name of an HTML file uploaded separately in a .zip
- Plain text with no HTML (becomes <p>)
- A block of HTML
- Does not need <html>, <body>, or even <div> or <p>
- Content will become wrapped in <p> if not wrapped in anything else
- Special characters should be amp-encoded
- To upload formulas or equations, include the MathML or HTML
- To upload images, structure tag as <img src="filename.png" /> and compress all images in a separate archive.
- Src value is case sensitive!
- Does not undergo validation, so please ensure all tags are closed
- Note: If you want to create a lesson but do not have content for it yet, include any placeholder content. Otherwise, you will not be able to edit the lesson in BluePrint.
- Eight column: voiceover_file
- What: voiceover of lesson content
- Can be name of .wav or .mp3 file zipped and uploaded separately
Helpful tips:
- The lesson import will not automatically create lesson categories. Remember to Generate Lesson Categories (step 7) to appropriately nest lesson categories.
- We recommend utilizing Lesson import to import both Lessons & Lesson Categories at once. If doing so, leave lesson_category_id, lesson_category_name and sub_lesson_category_name blank.
CSV Example:
A filled out Lesson Import Template sample can be downloaded here.
The sample results in the following lesson and lesson categories structure:

Importing Lessons into Existing Lesson Categories
If your course already contains lesson categories and sub-lesson categories, you can import lessons and assign them directly to those existing categories using the lesson CSV.
Unlike the process above, you do not need to include rows to define lesson categories or hierarchy. Instead, you only need to include a row for each lesson you want to import. Keep in mind that import behavior is still dependent on course type and course state. Refer to the section above to confirm whether your import will replace or add to existing content.
- Include only one row per lesson you want to import.
Do not include additional rows for lesson categories or subcategories. - Leave the Third column: parent_section_id blank.
- Enter a numerical value in the Fourth column: lesson_category_id.
This can be any numerical value (for example, 1) and does not need to match an existing ID in the course. A value is required and can be the same for all rows. - Enter the exact name of the existing lesson category in the Fifth column: lesson_category_name.
The name must match exactly as it appears in the course. - Enter the exact name of the existing sub-lesson category in the Sixth column: sub_lesson_category_name.
The name must match exactly as it appears in the course.
Upon import, lessons will be assigned to the existing lesson categories and sub-lesson categories specified in the CSV.
