Purpose: This guide covers importing Course Templates: loading a course catalog in bulk and enriching templates with prices, session templates, and categories.
Related: Importing data into Administrate | Choosing your import workflow
Order of operations
A course catalog import is usually several passes, because a template's related records are imported with their own actions:
- Course Templates themselves (create, or upsertByExternalId when migrating from a system that owns the catalog).
- Enrichment passes against the created templates: session templates, schedules, prices, tags, and achievement types each have their own actions under the courseTemplate record type (for example addSessionTemplate, addPublicPrices, addPrivatePrices, addTags, addAchievementType).
- Events afterwards, since event imports resolve their course by course code. See Import Events (CSV).
What to get right on the template records
- Course codes are the key. Event imports resolve courses by code first, so codes must be stable and unique before you schedule against them.
- Learning categories resolve by their Administrate ID on course template imports, so have the category IDs to hand rather than names.
- Custom fields on course templates get their own template columns, like every entity.
Required staff and required achievements
A template can specify which staff it needs and which achievements those staff must hold to be eligible. These are their own actions under the Course Template record type:
- addRequiredStaff adds a requirement. Columns: course template ID, staff role ID, optionally a quantity (defaults to 1), optionally the session template IDs the requirement applies to, and optionally a list of required achievement type IDs the staff must hold.
- updateRequiredStaff changes an existing requirement. It is keyed by the required staff ID (the requirement's own ID) and lets you change the role, quantity, sessions, or required achievement type IDs.
Required achievement types are matched by ID only on these actions, so have the achievement type IDs to hand rather than names. See Supplying references for where to obtain IDs.
Updating a catalog in bulk
Use update with the course template ID, following the bulk update pattern: export a report of templates with IDs, edit only the columns you are changing, pilot, then run. Blank cells leave existing values untouched.
Watch out for
- Enrichment actions add; they are not full replacements. Adding prices or tags in repeated runs accumulates entries, so avoid re-running an enrichment file that already succeeded.
- Dependency order matters twice: categories and tax types before templates that reference them, and templates before events.
- Pilot one template end to end (template, then prices, then an event against it) before scaling to the full catalog.