Recertification
Compliance training rarely happens once. A learner certified in food handling needs to recertify annually; a learner who passed a workplace safety course needs to refresh every two years. Recertification is the mechanism Wisteria uses to enforce that cadence.
How it works
Two settings on a course control recertification:
- Recert required — boolean. Off by default; opt-in per course.
- Recert interval days — how long after a learner passes before they’re required to re-pass.
When a learner completes a course with recert_required = true, Wisteria records the completion timestamp. After recert_interval_days elapses, the course re-appears on that learner’s dashboard with a fresh due date.
The learner takes the course again — same content, possibly updated since first completion — and Wisteria records the new completion timestamp. The cycle continues indefinitely until the course is archived or the learner is removed.
Who configures recertification
Recert is a course-level setting, configured by the trainer at course submission time. It’s included in the course-submit modal:
- A checkbox: Require recertification
- A number input: Interval (days) with quick presets — 365 (annual), 180 (semi-annual), 90 (quarterly)
Recert can be added or changed later from Course Settings.
What learners see
When a course is due for recertification, it reappears on the learner’s dashboard with a fresh “Due in X days” badge. The same urgency colours apply as for any due course:
- Overdue: red
- Due in 1–3 days: amber
- Due in 4–7 days: soft amber
- Due in 8+ days: neutral
A learner can complete the course early if they want — Wisteria credits the new completion timestamp regardless of whether the previous certification had expired yet.
Tag-driven recert (roadmap)
The cleanest pattern for most organisations is to set recert on tags, not individual courses, and let courses inherit. A tag like annual-safety-recert could mark every course that needs a yearly refresh; updating the tag’s interval propagates to every tagged course.
Tag-driven recert is on the roadmap. For v1, recert is a per-course setting.
Notifications
When a learner’s recertification falls due:
- A new dashboard assignment appears. Their
Due in X dayscount starts ticking. - Email notification. Sent at the recert window start.
- Approaching-due reminders. Sent if the deadline approaches without completion.
The cron that drives these reminders runs every four hours. Stop conditions: the learner completes the course, the course is archived, the learner is removed.
Auditing recertification history
The audit log records every quiz completion. To see a learner’s recert history for a specific course:
- Open Audit Log.
- Filter by Action =
quiz.pass(or whichever action your auditor needs). - Filter by Actor = the learner.
- Filter by Resource = the course or module.
Each completion is a row with a timestamp. Exporting to Excel gives you the full series.
When to use recertification
- Use it for compliance training with regulatory cadences, safety-critical content, anything where the certificate has an explicit expiry.
- Don’t use it for product knowledge, onboarding (which is a one-time thing), or content that evolves so frequently that a fixed interval doesn’t fit. For that last case, prefer publishing a new version of the course — learners will see the updated version on their next visit.