Migrate from Blackboard to self-hosted Canvas LMS: what the work involves
A team that must keep learning on its own infrastructure and has chosen Canvas will find that the Course Import Tool moves Blackboard 6 to 9 and Ultra exports into Canvas, but a full cutover is still a project. The importer carries course content across, and the rest of the work sits with the people who run the platform and the courses. Plan for content review, gradebook and integration rebuilding, a test cycle with faculty, and a production launch, not a single import run. Canvas's source code is released under the AGPLv3 license, and Instructure created and maintains it, so the code you run in your own environment is the same product family Instructure hosts, with the installation, upgrades and support left to you.
Most of this work falls to internal learning technology staff, usually a small group that owns the LMS, with an implementation partner for installation, hardening and migration scripting. Ask each partner to split its quote into the platform build, the import rounds, the content rebuild you expect your own staff to do, and the post-launch support. Import is typically the smallest line. The effort and risk drivers are how many Blackboard courses are active, how many use Ultra-specific features, how many LTI tools and SIS connections must be reconnected, and whether the institution has a records retention rule for archives that contain student data. Read the import guidance in the Instructure Community article on importing Blackboard content before scoping, and confirm the current support boundaries with Instructure and your own environment. Note that self-hosted Canvas has community support only, so the operating model must cover patching, backups and upgrades in-house or with a partner.
DeployOpen plans, implements, integrates, hardens and documents self-hosted platforms in your own cloud accounts, data centers or air-gapped networks, and it can run the import rounds and testing as part of a fixed-scope engagement with written deliverables. It prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications, so any accreditation or records-compliance requirement still needs an independent auditor or certification body. Before engaging anyone, confirm which Blackboard courses must move, which of them must be archived instead, and who signs off on each course after import.
Which Blackboard capabilities map cleanly to Canvas and which need rework
This table maps the main Blackboard course components to their Canvas equivalents and marks each as clean, needs rework, or gap. Read the status as a planning estimate: the Canvas import guides define what transfers, and exact coverage differs between Blackboard 6 to 9 exports and Ultra exports, so confirm each row against the Instructure import guide for your export type before you commit to a migration plan.
| Blackboard capability | Canvas equivalent and status | What to confirm or rebuild |
|---|---|---|
| Course content and files | Clean to needs rework: content from Blackboard exports is imported into Canvas modules and files; confirm placement against the import guide | Check folder structure, embedded links and media references after import, and fix any that break |
| Assessments and quizzes | Needs rework: quiz content and question types may not carry over in full | Test a sample of each question type and rebuild any items that do not import cleanly |
| Gradebook and grade history | Gap to needs rework: confirm whether grade columns and scores come across from the archive | Plan to rebuild grading schemes, weighting and any manual grades in Canvas |
| Groups | Needs rework: group sets may need to be recreated in the Canvas course | Rebuild group membership and group-specific assignments after import |
| Announcements | Needs rework: confirm whether announcements import or must be reposted | Repost critical announcements and archive the originals for records |
| Discussions | Gap: discussion threads and replies are not a reliable import target | Export threads for records and recreate active discussions as Canvas discussions |
| LTI tools and external links | Gap: tool registrations are tied to the source platform and must be reconfigured | Register each LTI tool in your Canvas instance and relaunch links in each course |
| SIS rosters and enrollments | Gap: enrollments come from your identity and SIS integration, not from the course export | Connect your SIS and identity provider to Canvas and re-enroll users before go-live |
| Archives with student data | Gap: archives hold submissions and records that the course import does not rebuild in Canvas | Store archives under your records retention policy and confirm access controls for them |
How Canvas's Course Import Tool reads Blackboard exports
The Course Import Tool in Canvas accepts Blackboard 6, 7, 8, 9 and Ultra exports, and it also reads Common Cartridge ZIP or IMSCC files and Thin Common Cartridge files, which it brings in as module content. Before you plan the migration, confirm which Blackboard version produced each export, because the import path you choose depends on it. The Instructure Community guide on importing Blackboard content sets out the steps for each source type, and it is the document to check against your own exports before you run a test import.
The practical difference is what comes across. A full course import from a Blackboard export carries course structure and content items into a new Canvas course. A Common Cartridge import carries a packaged set of resources and their structure, which suits moving content between systems that both support the standard, but it does not carry everything a Blackboard course contains. Treat the importer as a way to bring in content, not as a finished course. Gradebook setup, assignment settings, quizzes, discussion behavior, group membership and enrollments need to be checked item by item in the imported course.
Plan a test course for each course type you need to move, and compare the imported result against the original Blackboard course before any faculty member relies on it. Ask your Canvas administrator to confirm which content types and settings the importer handled in your Canvas version, and record what did not come across. Those gaps become your rebuild list, and they should be scoped and owned before cutover, not discovered by students in the first week of term.
What data and integrations to export, move and rebuild
A Blackboard-to-Canvas move splits into four kinds of material: course content, learner records, identity data and connected tools. Canvas's Course Import Tool handles the course content from Blackboard 6 to 9 and Ultra exports, while the rest needs its own export path, owner and rebuild plan.
Course content packages
Course exports carry the materials, modules and content structure that Canvas's Course Import Tool reads from Blackboard 6, 7, 8, 9 and Ultra exports. Run a test import of one representative course first and compare the result with the original, checking module order, file links and embedded media. Confirm with your Blackboard administrator which export format your version produces, since the import path depends on it.
Archives with submissions and grades
Full course archives can hold student submissions, grades and attendance, which matter for records retention but do not map cleanly into a Canvas course import. Treat archives as a separate records store: keep them in read-only form under your retention policy and confirm with your registrar which grade data must stay queryable. Note that Blackboard export packages expire, so pull each archive before the window closes.
User and enrollment data from the SIS
Canvas needs accounts, sections and enrollments that match your student information system, and these are usually fed from the SIS rather than copied from Blackboard. Map Blackboard user identifiers to the SIS keys you will use in Canvas before the first import, so grades and enrollments do not attach to duplicate accounts. Confirm the SIS integration path and its rebuild effort with your SIS vendor and Instructure's documentation.
LTI tool registrations
Blackboard tools such as plagiarism checkers, publishers' content platforms and proctoring services connect through LTI registrations that must be created again in Canvas with new keys and endpoints. Inventory every tool, its owner and whether the vendor supports your Canvas version. Confirm each tool's rebuild path with its vendor before cutover, because some require new contracts or configuration on their side.
External content and video links
Links to external websites, library resources and video platforms often survive import as URLs, but they can break when courses move or when access depends on Blackboard-specific authentication. Run a link check on imported courses and list every embedded video with its host. Confirm with each video platform and library whether the content remains accessible from your Canvas domain and under your identity provider.
Rebuild and verification checklist
Each category above needs a named owner, an export date, a test import and a sign-off before the cutover date. Keep a log of what was moved, what was rebuilt by hand and what was archived only. Ask a implementation partner or your internal team to produce this checklist from your own course inventory, so the scope can be agreed in writing before the work begins.
Migration sequence from inventory to decommission
This sequence moves Blackboard courses into a self-hosted Canvas LMS in controlled stages, so each course is inventoried, tested, reconciled and frozen before Blackboard is retired. Each step closes with a named record that the next step depends on.
Inventory courses and content types
Export a list of every course, term and enrollment count from Blackboard, then classify each course by content type: files, embedded media, assessments, question banks, discussion boards, gradebook columns, LTI tools and course archives. Owners of the teaching units confirm which courses are active, which must be kept for records, and which can be dropped. The output is a course inventory with one row per course, a content-type tag and a disposition (migrate, archive or retire). The step is done when registrars and department leads have signed off the list.
Build a test Canvas instance
Install Canvas LMS in a non-production environment in your own infrastructure, following the Quick Start and Production Start guides in the canvas-lms repository wiki. Configure authentication, storage and a test account, then confirm that the Course Import Tool accepts a Blackboard export. The output is a documented test build with a version record, the install configuration and a list of setup gaps. The step is done when a sample course imports without errors at the platform level.
Pilot with a small set of courses
Select a small, representative set of courses that covers each content type from the inventory, such as one with heavy media, one with question banks and one with an LTI tool. Import each through the Blackboard 6 to 9 or Ultra importer, then have instructors and a sample of students check pages, files, quizzes, rubrics and gradebook columns against the Blackboard original. The output is a pilot defect list that records each problem, its content type, its severity and an owner. The step is done when every high-severity defect has a fix or a documented workaround.
Rebuild manual items and fix the pilot defects
Rebuild what the importer does not carry across, such as grading schemes, random question blocks, discussion threads, group sets, and LTI tool placements and their launch settings. Apply the fixes from the pilot defect list to the import mapping and to the rebuild checklist so the same problems do not recur in later batches. The output is a revised rebuild checklist and a re-tested pilot course set. The step is done when the pilot instructors confirm their courses are usable.
Run a parallel period with reconciled gradebooks
Import the remaining courses in batches while Blackboard stays available for reference. For each batch, compare enrollments, assignment counts, scores and posted feedback between the two systems, and record any mismatch. Reconcile gradebooks with the registrar and instructors before any grades are treated as final. The output is a reconciled gradebook sign-off per course and a batch log of open discrepancies. The step is done when no discrepancy is open in a course that is scheduled for cutover.
Cut over with a dated freeze on Blackboard edits
Set a dated freeze after which instructors can no longer edit courses in Blackboard, and communicate the date to all faculty and students in advance. Run a final import for any course that changed after its batch, confirm enrollments and LTI launches, and switch students to Canvas. The output is a cutover record listing each course, its final import time and its freeze confirmation. The step is done when the registrar and course owners confirm that Canvas is the system of record.
Decommission Blackboard with archive retention
Keep the Blackboard course archive packages and their student data under the institution's records retention policy, storing them in a location that the records office can access. Build an archive index that maps each course to its archive file, term, owner and retention end point, then remove Blackboard access for users. Confirm the retention arrangement with legal and records staff before shutting down. The output is an archive index and a decommission record. The step is done when the records office accepts the index and the archive files are verified as readable.
How the migration differs by starting point and size
Institutions on Blackboard Learn Ultra usually have the most direct path into Canvas, because the Course Import Tool accepts Ultra exports alongside Blackboard 6 through 9. The export scope is the course package itself, and the main work is checking what arrived in Canvas against the source course and treating the import as a starting point for review.
- Export scope: Export each Ultra course and confirm the package format against the Blackboard import guide before you start a batch.
- Content review: Import a sample of courses from different departments, then compare modules, pages, files and links with the originals.
- Assessments: Verify quizzes, assignments and gradebook setup in a test course, since these items need the closest check after import.
- Pilot group: Ask a small set of instructors to teach from the imported courses for a trial period before the full batch moves.
- Test coverage: Record which course types passed review so the remaining batches follow a repeatable checklist.
Before you commit to a batch order, confirm with your Canvas administrators which Ultra course types you plan to move and how each one will be verified.
Courses still in Original Course View need the same import path but a different preparation step. The importer supports Blackboard 6 through 9 and Ultra exports, so the first task is confirming which export format your Original courses produce and whether that format matches the supported list. The layout of Original courses also differs from Ultra, so expect more restructuring of content areas when you rebuild them as Canvas modules.
- Format check: Export one course from each Blackboard version still in use and import each one into a test Canvas instance before running any batch.
- Scope decision: List the Original courses that must move and the ones that can stay as archives, so the export effort stays bounded.
- Layout rebuild: Plan time for reorganizing content areas into Canvas modules and for fixing links that point to old locations.
- Archive handling: Decide where archived course data lives and who can access it, because archives are a separate records question from active teaching content.
- Timing: Review the Blackboard import guide and the Original Course View end-of-life page on this site to set your own internal deadlines.
Set the batch order against your own term calendar, and confirm the export format for each course before scheduling its import.
Course import moves course content, but it does not rebuild the connections around the course. LTI tool placements, SIS feeds, enrollment sync and grade return all have to be configured in Canvas and tested separately. For institutions with many integrations, this integration work often takes more effort than the content import itself.
- Integration inventory: List every LTI tool, SIS feed, single sign-on setup and grade return path that touches Blackboard today.
- Tool registration: Register each LTI tool in Canvas and test launches from representative courses, including any deep linking your tools use.
- SIS mapping: Map course, section and enrollment identifiers to the Canvas data model, then test enrollment sync in a sandbox before any live term.
- Grade return: Send test grades from a dummy course to confirm that the gradebook receives them correctly.
- Identity: Confirm that users sign in to Canvas and to each tool with the expected identities.
Ask your SIS vendor and each LTI tool provider which integrations they support on self-hosted Canvas, and get those answers in writing before you set the cutover date.
An institution with a small set of courses can often review every imported course by hand, which reduces the risk that a rebuild item is missed. The testing standard does not get lower because the volume is small. The larger issue is the platform itself, since a self-hosted Canvas installation carries the same patching, backup and availability duties whether it serves a few courses or thousands.
- Manual review: Open each imported course, check the content, assessments and links, and record the result in a simple checklist.
- Trial users: Use a few instructors and students to test each course type before the courses go live.
- Operating load: Estimate the ongoing admin work of running Canvas yourself, since that work does not shrink with course count.
- Hosting choice: Compare self-hosting with Instructure's hosted service using written quotes that show what each option includes.
- Support model: Confirm what support is available for a self-hosted install, since community support is the baseline for the self-hosted option.
Before you choose self-hosting for a small course set, ask for a written breakdown of the ongoing administration work and the support you would rely on after go-live.
Running Blackboard and Canvas in parallel without double entry
A parallel run should be a short, bounded overlap used for testing and reconciliation, not a period in which both systems stay open for editing. The aim is to prove that imported courses, grades and enrollments match the source before anyone relies on Canvas. Decide the record of truth for each data type before the overlap begins: for example, Blackboard may remain authoritative for grades for past terms while Canvas becomes authoritative for courses that start after cutover. Write that decision down per data type, including course content, gradebook, enrollments, submissions and attendance, and assign an owner to each. Without this, staff will update both systems and the two will drift apart.
Freeze content edits per course rather than across the whole institution. Once a course has been exported and imported into Canvas, instructors should make changes only in the system that holds the record for that course, and the freeze date should be communicated in the course announcement and in the instructor guidance. Check the Canvas import report and the course's module, file and quiz structure against the Blackboard source, because the Instructure Community import guide for Blackboard lists what carries over and what needs review. Reconcile grades and enrollments in a fixed order: confirm the enrollment roster against the student information system feed, then compare gradebook totals for a sample of courses, then resolve differences before any grade is released from Canvas.
Learner records are a separate workstream and should not be assumed to move with course content. Blackboard course packages and Canvas imports carry course materials, while completion history, transcripts and archived submissions need their own export and verification step that your records office signs off on. Confirm with your Blackboard administrator which archive types you hold and how long they remain retrievable, and confirm with your registrar what retention rules apply to grade history. Plan the parallel window around your academic calendar so that no term is split across two systems at the point grades are due.
What drives migration cost and duration, and how to hold each down
This table lists the main drivers of a Blackboard to self-hosted Canvas migration, why each one moves the total, and how to reduce it. Read it as a checklist for scoping and for comparing written quotes, since none of the drivers carries a supplied price or duration.
| Driver | Why it moves cost or effort | How to hold it down |
|---|---|---|
| Course volume and content complexity | Every course, archive and embedded media file adds import checks, cleanup and QA. Heavy use of Ultra features or custom HTML raises rework. | Inventory active versus legacy courses, retire dormant ones, and migrate in waves by term. |
| Assessment and gradebook rebuild | Common Cartridge exports do not carry grading structures, so gradebooks, rubrics and weighting must be rebuilt and checked against historic results. | Agree a grade-parity test per course type and freeze grading schemes before cutover. |
| Integration count | Each LTI tool, plug-in, library or publisher link needs a new registration, credentials and a test launch in the self-hosted Canvas instance. | List every integration with its owner and vendor support status, and retire unused ones first. |
| SIS and identity work | Enrollment feeds, term codes and single sign-on must be reconnected and tested with real roster data before any course opens to learners. | Confirm the SIS integration method and identity provider early, and test with a sample term. |
| Hosting and infrastructure preparation | Self-hosting means provisioning servers, database, file storage, job processing and networking, then hardening and documenting them before use. | Size against the expected user count and storage from the inventory, and ask the quote to name each component and who operates it. |
| Archive handling for records retention | Archives with student submissions, grades and attendance carry retention and privacy obligations, and they need a separate, controlled store. | Confirm retention rules with the registrar and legal team, then export archives to controlled storage with access logs. |
| Testing and training | Instructors and administrators must test imports, quizzes, grading and accessibility, and staff need training on the new admin tools. | Use a small pilot course set with named faculty sign-off, and schedule short training before each wave. |
| Ongoing support with community support only | Self-hosted Canvas has community support only, so upgrades, patches, incident response and troubleshooting fall to your team or a contracted partner. | Decide who owns upgrades and on-call duties, and ask any partner for a written support scope and response commitments. |
What usually goes wrong in a Blackboard to Canvas move
Most failed LMS moves fail on preparation, not on the import itself. The risks below share one root cause: the export, the mapping and the cutover date were not checked against the target Canvas instance before term started. Each card names the check that prevents it.
Expired export packages
Blackboard course export and archive packages are not kept indefinitely, so a package generated months earlier may no longer be downloadable when the import is scheduled. Generate fresh packages for every course in the migration scope, record the export date, and confirm each file is complete before deleting anything in the source system. Keep the source instance readable until every import has been verified.
Grades that do not reconcile
Gradebook data does not carry across a course import in the same form it had in Blackboard, so totals, weighting and grade schemes can drift. Compare a sample of student totals in each course between the source gradebook and the imported Canvas gradebook before publishing. Record any course where the numbers differ and rebuild its grading scheme by hand before instructors rely on it.
Lost or unmapped LTI links
External tools such as publishers' content, plagiarism checkers and video services are connected to courses by their registration, not by the content file. After import these links can point to nothing or to a tool that has not been registered in the new Canvas instance. Inventory every external tool used in each course, register each one in Canvas with the vendor's current configuration, and test one launch per tool before cutover.
Broken SIS feeds
Enrollment, section and term data often arrives from a student information system. If the SIS feed is not repointed or its identifiers do not match Canvas, rosters can be empty or duplicated on the first day of term. Agree the identifier format with the SIS team, run a test feed into a sandbox course set, and confirm that a sample of rosters matches the registrar's list.
Accessibility gaps in imported content
Imported pages, files and embedded media keep their original markup, and some of it may not meet your accessibility standard once it is in a new template. Images without alternative text, tables built for layout, and uncaptioned video are common findings. Run Canvas's accessibility checker on imported courses, prioritize courses in use this term, and assign instructors to correct flagged items before students arrive.
Unplanned cutover during term
Switching platforms in the middle of a term splits course activity across two systems and confuses students and instructors. Set the cutover at a term boundary, freeze content changes in Blackboard for each course a set number of days before the import, and publish a single support route for both systems during the overlap. Agree the cutover calendar with academic leadership in writing before any course is imported.
Questions buyers ask before moving from Blackboard to self-hosted Canvas
How much does a migration from Blackboard to self-hosted Canvas cost?
The cost is driven by the work around the import, not by the Canvas software itself, which is released under the AGPLv3 license with no license fee. The main cost components are the infrastructure to run Canvas, the one-time migration of courses and archives, rebuilding items the import does not carry over, reconnecting integrations such as the SIS and LTI tools, and the staff or partner time to operate the platform afterward. Infrastructure and operations recur every year, while migration and rebuilding are one-time costs. Ask any provider for a written scope that separates these lines, lists the number of courses and archives in scope, and states which integrations are included. The quote follows from that scope.
How long does a Blackboard to Canvas migration take?
The timeline depends on how much content and how many integrations the institution has, and on how much of the platform must be installed and tested before courses move. The import itself runs per course, but it is only one step. Teams also need to stand up and harden the self-hosted environment, test a sample of imported courses, rebuild gradebooks and assessments, and confirm that LTI tools and the SIS work. Those steps run in sequence with academic calendar constraints, so the start date matters as much as the work itself. Ask for a timeline with milestones and a test cutover plan in the written scope, and confirm the academic term that the migration must not disrupt.
What does our internal team need to provide for the migration?
Your team needs to supply the Blackboard course exports or archives, a list of courses in scope, access to the Blackboard data needed for records, and the decisions only the institution can make, such as which terms and courses to keep and who signs off on imported content. On the technical side, you need infrastructure access, a named owner for the Canvas environment, and contacts for the SIS, identity provider and each LTI tool. Faculty and instructional designers should review sample courses after import. Confirm these responsibilities in the written scope so that waiting on inputs does not extend the timeline.
Can our own team migrate from Blackboard to Canvas without a partner?
Yes, a team with Linux, database and web application operations experience can install Canvas and use the Course Import Tool, which supports Blackboard 6, 7, 8, 9 and Ultra exports. The harder work is operating the platform afterward: patching, backups, upgrades, availability and security hardening. Self-hosted Canvas support comes from the community, so your team must be able to diagnose issues without a vendor support contract. Many institutions split the work, keeping day-to-day operations in-house and bringing in a partner for the migration, hardening or upgrades. Weigh the staff skills you have against the operational load before deciding.
Does Canvas support self-hosted installs, and where does support come from?
Canvas LMS is created and maintained by Instructure, and its source code is available on GitHub under the AGPLv3 license. The repository wiki includes Quick Start and Production Start guides for self-hosted installs. Instructure's hosted service is a separate commercial offering, so self-hosted operators should not expect the same support model. Support for self-hosted Canvas typically comes from the community, from your own staff, or from a implementation partner under a written support agreement. Confirm with Instructure which support options apply to your deployment before you commit, because the answer affects your operating model.
What happens to student records and archived courses during the move?
Course content moves through Common Cartridge-style exports and the Blackboard import path, but archives that contain submissions, grades and attendance need separate handling. Records retention rules often require the original archive to be kept, so plan for a read-only copy of the Blackboard data alongside the Canvas environment. Grades and submissions may not map one to one, so verify gradebook totals against the source for each course before the cutover. Ask your provider to document which data is migrated, which is archived, who can access each store, and how long each is retained, and to confirm this against your records policy and any applicable regulation.
What still needs manual rebuilding after the Canvas import?
Imported content is the starting point, not a finished course. Expect to check module structure, assignment settings, rubrics, quizzes and question banks, discussion threads, and links that point to Blackboard resources. LTI tool connections, single sign-on and SIS feeds must be reconfigured in the new environment and tested with real accounts. Gradebook setup, grading schemes and any Blackboard-specific features with no direct Canvas equivalent also require review. Confirm the list of items each course needs rebuilt during the test migration, and ask for that list in the written scope so the rebuild effort is visible before the timeline is agreed.
What does DeployOpen cover in a Blackboard to Canvas migration?
DeployOpen plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside your own infrastructure. For a Canvas migration, that can include the self-hosted installation, the course import work, integration with your identity provider and SIS, security testing, and documentation of the environment. Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. Ongoing support and upgrades are available as retainers. DeployOpen does not publish a price list, so a quote follows from the written scope you agree on.
How DeployOpen scopes and runs a Canvas migration
DeployOpen is a Chainscore Labs company that plans, implements, customizes, hardens, backs up and documents self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For a move from Blackboard to self-hosted Canvas LMS, we start with a written scope that separates what Canvas imports from what your teams must rebuild by hand.
How we scope
- We inventory which Blackboard 6 to 9 or Ultra course exports your team needs, and which courses stay in archive.
- We list the items the import will not carry over, such as gradebook settings, LTI tool connections and the SIS link, so they appear in the scope.
- Engagements are fixed-scope: deliverables and timelines are agreed in writing before work starts, and a quote follows from that scope.
How we build
- We install the AGPLv3 Canvas code in your environment, following the project's self-hosted installation guides, with your hosting and identity choices.
- We run test imports on copies of representative courses and record which content, quizzes and grading items need manual rebuilding.
- We configure integrations, authentication and storage in your environment and test them with your sample courses before go-live.
How we hand over
- You receive documentation covering the installed configuration, the import procedure, and the checklist of rebuilt course elements.
- We document backup and restore procedures so your team can run and recover the instance without us.
- Knowledge transfer sessions cover administration tasks, upgrade steps and the records you must keep from the Blackboard archives.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers after handover.
- We can plan Canvas upgrades and retest integrations and imports against each new release before your teams adopt it.
- Support scope, response expectations and any service levels are defined in the retainer agreement, so you should confirm them in writing.

