Bulk operations exist for the week when typing 800 names is not a job—it is a risk. Admissions season, a new branch opening, a league merger, or migrating off a legacy tool: you need upload → validate → fix → commit with clear feedback, not silent database corruption. Start from Bulk, then Bulk upload; individual job detail pages may live under routes like /admin/bulk/upload/[id] when you drill into a specific run.
The happy path (what a clean run feels like)
- Open Bulk / Upload in admin and download the official template if provided—do not reuse a random export from 2019 with mystery columns.
- Fill the sheet with boring consistency: one date format, one phone style, full names as they should appear on certificates.
- Upload; read the validation summary like a pilot’s checklist—every warning is cheaper to fix in the sheet than in production.
- Confirm the job when green; open job detail in the UI when the product tracks progress or partial failures.
Example: Northfield Public School receives a district export of new Grade 6 students. The IT admin maps columns to the template, uploads Friday evening, fixes 12 invalid date cells Saturday morning, re-uploads, and by Monday rosters in Groups are ready for sports trials.
When validation fails (decode the message)
| Symptom | Likely cause | Example fix |
|---|---|---|
| “Required field missing” | Empty email, ID, or name cell | Fill or drop the row if not a real person |
| “Invalid enum / code” | Grade spelled “Sixth” instead of allowed 6 | Standardize against your internal codebook |
| “Duplicate” | Same national ID or email already exists in Users | Decide: skip, merge via support, or update existing user per policy |
| “Malformed phone” | Mixed +91, spaces, brackets |
Strip to digits or one canonical format |
Example: A football academy imports parents’ numbers as +91 98765 43210 and 9876543210 in the same column. Validation flags inconsistent patterns; they normalize one format across all rows before retry.
Before you upload: spreadsheet discipline
- Freeze a version: Name the file
import_2026-04-26_v2.xlsxso you know which file actually succeeded. - No hidden columns from pivot tables or formulas that confuse parsers—paste values where needed.
- PII policy: Remove columns you are not allowed to store; do not upload passwords, government IDs you do not need, or student health data unless explicitly in scope.
Example: A nonprofit accidentally includes donor emails in a participant upload. They strip the column before upload—better a second of work than a privacy incident.
After import: prove it worked
- Spot-check 5–10 records: random + one edge name (hyphen, apostrophe, very long)—use Users and manage.
- Open a group that should have absorbed the new members—counts should match expectations within known exceptions (duplicates skipped).
- If certificates run soon, verify display names on a preview before batch issue—reports.
Example: After importing 200 debate club members, the secretary searches for “O’Brien” and “Singh, A.” to confirm punctuation and comma-separated names survived—catching two typos before ID cards print.
Recovery when things go wrong
- Job stuck “processing”: Wait for a timeout message; avoid hammering Upload five times—some systems enqueue duplicate jobs.
- Wrong mapping: If you mapped First/Last backwards, stop, fix the template, and consult help or support tickets if partial records already committed—do not “fix” by hand in fifty places.
- Rollback mindset: Know whether your org’s policy is delete-and-reimport vs support-assisted merge—document that before crisis week.
Tips
- Train two people on bulk upload—bus factor is real during flu season.
- Dry run with 10 fake rows in a staging or test entity if your contract allows it.
- Communicate cut-off: Tell coaches “rosters freeze Sunday 18:00” so you are not re-importing while matches are live.
Related: User management · Admin dashboard · Security