Option A: Preset flow (recommended for recurring clients)
Create a preset once per client company. Reuse it for every course you build for that company.Preset types
Presets are created with apreset_type field:
A
theme preset is useful when you need consistent branding across courses but do not need a per-company sales profile.
What gates preset readiness
A preset reachesready status when:
companypreset: brand artifact approved and profile questionnaire approved.themepreset: brand artifact approved.
slide-style and voice-style are optional refinements. Approving them improves generation quality but is not required for the preset to reach ready.
Option B: No-preset flow (quick start)
For one-off courses or low-volume use, skip the preset entirely. The brand is auto-derived from the source material.When to use which
You can mix and match: nothing prevents creating no-preset courses on an account that also has presets.
Brief vs preset questions
Two questionnaires exist in the API, do not confuse them:- Preset questions (Option A only) capture the company’s sales profile: industry, target buyer persona, pricing model, sales motion. Asked once per preset.
- Brief questions (both options) capture this course’s intent: target audience, learning objectives, tone. Asked once per course.
next + answers loop pattern.
Review checkpoints
By default the pipeline pauses for human approval at up to three checkpoints during generation. See Review Checkpoints for the full model.Async setup operations
Slide style and voice style generation are queued operations. They return202 Accepted immediately. Poll GET /api/v1/presets/{id}/setup-status until each artifact reaches ready status before proceeding.
Brand generation is synchronous. POST /api/v1/presets/{id}/brand/generate returns the artifact directly in the response body. There is no need to poll setup-status after brand/generate.
queued, running, ready, failed.