Skip to main content
If you already have students in your LMS or your CRM, you don’t need to re-enroll them in Hawkings by hand. Pick the strategy that matches how much sync you need.

Option A: One-time bulk import

For a single migration:
bulk is idempotent on (cohort_id, student_email) — re-running won’t duplicate.

Option B: Daily reconcile

Run a cron job that pulls your LMS’ roster and applies a diff:
We recommend running this nightly. Reconciliation is cheap; the only billable side effect is the AI generation kicked off when a brand-new student joins.

Option C: Real-time webhooks (LMS → Hawkings)

If your LMS supports outbound webhooks, point them at your backend and forward to Hawkings:

Option D: First-class Moodle bridge

If you’re on Moodle, install the Hawkings plugin. It handles enrollment, grade-passback, and SCORM in one shot. See the Moodle integration guide.

Storing external IDs

Always pass external_id (or a metadata object) when creating users or cohorts. It lets you:

Pitfalls

Email is not a good primary key. Students change emails. Always also pass an external_id from your LMS — that’s what survives email changes.
Don’t sync passwords. Hawkings doesn’t need them — students log in through your token flow (Authentication), not through Hawkings’ own login form.