CoursePlan Import
There are two ways to get a fully-structured course into ZəkaHouse: describe it to the AI Course Creator and refine what comes back, or hand ZəkaHouse a finished plan as a JSON file and skip the AI step entirely. This page covers the second path — CoursePlan Import.
The AI-assisted path, for contrast
Normally, creating a course with AI is a conversation: an admin or teacher describes what they want in the AI Course Creator, gets back a streamed, AI-drafted plan — chapters, activities, assignments — refines it back and forth in chat, and only then finalizes it into a real course. Every draft passes through a model, and every finalize call turns whatever the conversation ended with into the course, chapters, and activities that get created.
The CoursePlan Import path
CoursePlan Import takes the same underlying course structure — name, description, chapters containing activities, activities containing assignments and tasks — but supplies it directly as a .json file instead of drafting it through chat. No AI call happens anywhere in this path:
Because there is no model in the loop, there is nothing for a model to truncate, paraphrase, or quietly alter. Whatever is in the file is exactly what gets created.
How it works
- From Courses → Import, choose Structured Plan (as opposed to ZəkaHouse Courses, the other option there — that one re-imports a
.zippackage previously exported from ZəkaHouse, a separate mechanism from this one). - Upload one or more
.jsonfiles matching the CoursePlan structure. Each file is parsed and checked immediately: valid files show their chapter and activity counts; anything that isn’t a CoursePlan at all (missingnameorchapters) is flagged and excluded up front. - On the review screen, each file gets its own row with a checkbox, its chapter/activity counts, and a warning if its course name collides with a course that already exists in the organization — collisions are unchecked by default so you don’t create an accidental duplicate, but you can check the box to import it anyway.
- Click import. Each selected file is finalized independently and immediately as a new, unpublished course — no batching them into one request, and no partial courses left behind if one fails.
While it’s running
A batch import of many files runs as a sequence, one file at a time, with controls that act between files rather than mid-file:
- Pause / Resume — stop after the file in progress finishes, and pick back up later.
- Cancel — stop after the current file; every course already created stays created, and nothing after the cancel point is attempted.
- Automatic retry — a file that fails on what looks like a dropped connection is retried a couple of times with backoff before it’s ever reported as failed.
- Manual retry — on the results screen, any file that still failed gets its own Retry button, so one bad file doesn’t mean re-running the whole batch.
The result screen lists every file with its outcome — created, or failed with the actual error — never a single pass/fail for the whole batch.
If a CoursePlan’s assignment tasks reference media files by name (an audio prompt, a reference image), ZəkaHouse asks for those files during review and after import, and matches them by filename. A source .json file is also kept in the organization’s media library after a successful import, the same as any other upload.
When to reach for this instead of the AI Course Creator
CoursePlan Import is for anywhere exact, reproducible output matters more than a conversational draft:
- Migrating a known curriculum you’ve already got structured elsewhere.
- Scripted or bulk content generation — generate CoursePlan JSON with your own tooling (or your own call to a model, if you want AI involved on your terms) and import the result deterministically.
- Re-importing a course plan you exported, generated, or hand-authored previously, and want recreated exactly as written.
If you’d rather describe a course in plain language and iterate on an AI-drafted outline, use the AI Course Creator instead — see AI for Teachers.
Who can do this
Uploading and finalizing a CoursePlan import requires the same course-creation permission the AI Course Creator’s finalize step requires — Instructors, Maintainers, and Admins by default, or any custom role granted courses create access.