Admin GuidesRecertification & Renewals

Recertification / CE Renewals

Who this guide is for: Admins running training that expires and must be retaken periodically (e.g. certifications valid for 12 months).

Give a course a validity period. When a learner completes it, their completion is stamped with an expiry date. As that date approaches, the recert worker automatically re-assigns the course so they renew before the credential lapses.

Set a validity period

  1. Open the course in Admin → Courses.
  2. In the editor’s Certificate panel, find Recertification.
  3. Set Valid for (months) — e.g. 12 for an annual certification.
  4. Leave it blank for courses that never expire.

How renewals work

  • On completion, the enrollment’s expiry = completion date + validity period.
  • A daily worker finds completions expiring within the lead window (default 30 days, RECERT_LEAD_DAYS) and re-assigns the learner: the enrollment returns to active, prior progress is cleared, and the due date is set to the expiry — so they must retake the course to stay certified.
  • When they complete again, a fresh expiry is stamped and the cycle repeats.

Previously earned certificates remain in the learner’s wallet; each renewal cycle produces a new completion.

Recertification vs. recurring assignments

UseFeature
Re-assign a course to a group on a fixed cadence (annual compliance)Recurring Assignments
Renew an individual’s credential before their personal expiryRecertification (this page)

They can be combined, but for most “valid for N months” certifications a validity period alone is enough.

Configuration reference

FieldWhereNotes
Valid for (months)Course editor → Certificate panel1–120; blank = never expires
Lead windowRECERT_LEAD_DAYS env (default 30)How early before expiry to re-assign

Troubleshooting

SymptomCauseFix
Learner not re-assignedCourse has no validity period, or expiry is beyond the lead windowSet a validity period; renewals trigger within the lead window
Expiry not stampedThe course had no validity period when completedSet it; new completions stamp expiry