Skip to main content

Importing and Exporting Curriculum Data

Written by Medtrics

What it does

Curriculum data moves in and out of the platform through the Data Exchange hub's guided import wizard, plus one quick paste-in CSV dialog that still lives on the Sessions page for fast one-off loads. On Courses, Import Courses no longer opens an on-page dialog — it hands you off to the same guided wizard, pre-scoped to your selected program and academic period. This article covers both entry points; see the Data Exchange article for the full hub (exports, health checks, mapping).

Who it's for

Program administrators loading or rolling over curriculum data, and institution administrators running larger institution-level exchanges through the Data Exchange hub.

How it works

Course import. From the Courses page, select an academic period, then click Import Courses. A period must be selected first; without one, you get a prompt to pick one. Import Courses then opens the Data Exchange import wizard (/admin/data-exchange/import). It arrives pre-scoped with your institution, program, and academic period, already set to the Courses & Rotation Templates import type. On the wizard, paste rows or upload a file, map columns, review the preview, and commit. Course and rotation-template rows share this one import; a Type column in the data tells the wizard which is which. Choose Create new records, Update existing records, or Create or update before you commit — courses are no longer insert-only.

Session import. The Sessions page still has its own Import Sessions dialog with a Paste Data/Template pattern, plus a Preview step showing how many rows validated before you commit. Sessions are matched to their course by course name or code. This dialog creates new session records only; it does not update or merge into existing sessions.

Bigger jobs. Use the Data Exchange hub under Curriculum (/curriculum/data-exchange/imports) for institution-wide imports, ordered dependency-aware imports, background export jobs, and a curriculum data health check. Its import center offers cards for every curriculum data type, including Courses & Rotation Templates and Sessions, and hands off into the same guided wizard. See the Data Exchange article for that workflow.

Before you start

  • Select the program and academic period the rows belong to before you start — the wizard is pre-scoped from whichever period you had selected on Courses, and won't create period-less courses.

  • Keep course codes unique within that program and period if you plan to update existing rows — matching for Update existing records and Create or update uses the course code in the selected program and period.

  • Header names are matched flexibly (for example, "Course Name" and "courseName" both work), but check the template first if you're unsure.

Do this

  1. Open the Courses page (/curriculum/courses) and choose the academic period → you should see the course catalog and the period selector.

  2. Select Import Courses in the toolbar → you should see the Courses & Rotation Templates import wizard at /admin/data-exchange/import, not a dialog on the Courses page.

  3. In the wizard, paste rows or upload a CSV, map the columns, and choose Create new records, Update existing records, or Create or update → confirm the mapping and mode before you continue.

  4. Review the preview on the wizard's review screen, then commit → confirm a result reports how many rows succeeded and how many failed, with per-row messages for failures.

  5. For sessions, open the Sessions page and select Import Sessions in the toolbar, paste your rows on the Paste Data tab, and select Preview → confirm a count of valid rows before you commit.

  6. On the preview screen, select Import → confirm the new sessions appear in the session list, matched to their courses by name or code.

You're done when

  • ✓ The wizard (or, for sessions, the result message) reports the number of rows imported, with any failed rows listed by line number.

  • ✓ New or updated courses appear in the catalog for the program and period you selected; new sessions appear in the session list.

  • ✓ A row that failed validation is reported individually, not silently dropped.

Boundaries and limits

  • Data Exchange CSV files are capped at 10,000 rows per run; larger files must be split.

  • Imports validate the same rules as manual entry — required name, code length limits, valid dates — and failed rows are reported individually, never silently skipped.

  • The Sessions page quick CSV dialog is additive only: pasted rows create new records. It does not update or merge into existing sessions.

  • Courses and rotation templates share one import type — a Type column in the data distinguishes them.

  • For background export jobs, expiring download links, and a full import center with dependency tracking, use the Data Exchange hub — those capabilities live there, not on the Sessions page dialog.

Common questions

Q: My CSV headers don't exactly match the template. Will the import fail? A: Not by itself. The Courses & Rotation Templates wizard maps columns automatically; review the mapping before you commit. The Sessions page quick CSV dialog is also tolerant of common header spelling differences.

Q: What happens to rows that fail validation? A: They are skipped and reported with a line number and message; the valid rows still import. Nothing fails silently.

Q: Can I re-import a file to update existing courses? A: Yes, in the Courses & Rotation Templates wizard — choose Update existing records or Create or update before you commit. Matching uses the course code in the selected program and period. The Sessions page quick CSV dialog still creates new records only.

Q: Where do I go for a bigger import, or to export curriculum data as a file? A: Use the Data Exchange hub under Curriculum. It runs guided imports for many curriculum data types and queues background export jobs you download when they finish.

Related articles

Did this answer your question?