Docs
arrow_back Embeddables

Course Builder Build and above

The Course Builder is a full course authoring experience, embedded in your product. Use it when your customers, partners, or admins need to build their own training and that creation should happen inside your platform. The example below loads a sample course into the builder so you can see how the authoring experience looks in context.

It's common for partner enablement tools, platforms that let other companies create their own training, and any product where people are creating content. If course authoring needs to feel like a native feature of your product, this is the embeddable that gets you there quickly.

Classic

Classic is the original screen-by-screen editor. Everything else on this page is the course builder. The same POST /v1/headless/embed/course edit embed loads either one. options.legacy is the API switch. The live demo header toggles that same flag.

Course BuilderClassic
options.legacyfalseomit or true
Authoring UIBlock layouts and start/finish covers. flow: "ai" with no courseId opens the create-course agent over an empty Course Builder course.Original screen-by-screen course editor.
courseIdOmit it to lazy-create a blank Course Builder course. A supplied id with omitted legacy auto-routes by Course.legacy. Explicit legacy: false still requires a Builder 2 course.Omit it to lazy-create a Classic stub. A supplied id with omitted legacy auto-routes by Course.legacy. Explicit legacy: true still requires a Classic course.

On edit with a supplied courseId, omitted options.legacy routes to the builder that course was created for. An explicit legacy that does not match the course is still rejected. Lazy-create (no courseId) still uses the flag to stamp the new course. Player (view) embeds do not apply this gate.

API Endpoint

POST/v1/headless/embed/course

Body parameters

FieldTypeExampleDescriptionDemo Value
actionstringedit
identifierstringyour-user-id
clientIdentifierstringyour-tenant-id
themeIdnumberCustom theme ID to apply to the embeddable.
options.flowpreviewaigeneratetransformconvertaiInitial creation flow. "preview" locks preview-only chrome on whichever builder `legacy` selects. "ai" with legacy=false opens the create-course agent over an empty Course Builder course.
options.backeventhiddennativeeventBack button behaviour.
options.translationsbooleanfalseEnable translation features.
options.googleDrivebooleantrueEnable Google Drive import.
options.oneDrivebooleantrueEnable OneDrive import.
options.loombooleanfalseEnable Loom video recording.
options.feedbackbooleantrueEnable course feedback screen.
options.publishingbooleanfalseEnable publish controls.
options.narrationsbooleanfalseEnable AI narrations.
options.aibooleantrueEnable AI-powered features.
options.legacybooleantrueSelects Classic (omit or true) or the course builder (false) when lazy-creating. The live demo header is the same control. On edit with a supplied courseId, omit this flag to auto-route by Course.legacy; an explicit value must still match that course.
TypeEventDescriptionNotes
sessionreadyFires when the course builder is mounted and ready.
sessionerrorFires when an error occurs in the builder.
sessionexpiredFires when the session expires.
courseupdatedFires when a course is updated.
backFires when the Back button is clicked.

Live Demo