Support · Schools
Bulk-importing pupils by CSV
When to use CSV import
If you're adding a handful of pupils, just use Add child on the Children page — it's faster for small batches. The CSV import is designed for onboarding a whole class, year group, or school at once. Most existing school MIS tools (Arbor, SIMS, Bromcom, ScholarPack) can export a pupil list as CSV that Spello can read.
What your CSV needs
Spello needs three columns as a minimum:
| Column | Required? | Notes |
|---|---|---|
| Child's name | Required | We recommend first name plus the first initial of the surname — enough to make each child unique within your school, but still friendly. A full name is fine if you need it; first name alone works for smaller schools. |
| Date of birth | Required | Any sensible format — DD/MM/YYYY, YYYY-MM-DD, or month + year. |
| Class | Required | The name of the class the child belongs to. Classes must already exist in Spello — set them up under Classes before importing, then make sure the names in your CSV match exactly. |
| Username | Optional | If omitted, Spello generates one based on the child's name. |
| Password | Optional | If omitted, Spello generates a simple word-based password. |
| Reference | Optional | Your school's UPN or internal ID. We store it so you can reconcile later; we never use it elsewhere. |
Step by step
- Sign in at manage.spello.uk as a school admin.
- From the school dashboard, open Children → Import from CSV.
- Choose your file and confirm whether the first row is a header row.
-
On the mapping screen, match each Spello field to one of your CSV
columns. Spello will auto-suggest mappings based on column names
(
name,pupil,DOB,class,UPN, etc.) — you only need to correct the ones it got wrong. - Press Preview. Spello shows what it's about to create, with any row-level errors flagged (invalid date formats, duplicate usernames). Fix errors by editing the CSV and re-uploading, or proceed if they're acceptable.
- Press Import. Larger schools may take a minute or two — the page live-updates as each row is processed.
Once the import completes, head to Documents → Login slips to print out each pupil's username and password to take home. See Parent letters and login slips for more on this.
Common pitfalls
"The file could not be read"
Usually a character-encoding issue — export as UTF-8 CSV rather than UTF-16 or a school-specific dialect. In Excel this is Save As → CSV UTF-8 (Comma delimited). In Numbers it's File → Export To → CSV → Text Encoding: Unicode (UTF-8).
Dates don't parse
British formats (12/05/2016, 12-05-2016,
12.05.2016) and ISO (2016-05-12) are all
read correctly. A date with a month larger than 12 — e.g.
05/13/2016 — is auto-corrected as a US-style month/day
swap. The one case we can't disambiguate is where both orderings are
valid (05/06/2016 could be May 6 or June 5): we treat
these as British. If your source system exports US-style dates, convert
to YYYY-MM-DD before importing to avoid off-by-a-month
birthdays.
Two pupils with the same name
Spello handles this by adding a short suffix to the auto-generated
username (e.g. sam and sam2). If you'd prefer
a different pattern, supply your own usernames in the CSV.
"Class 'Yr3 Red' not found"
Classes aren't created automatically — Spello only matches against classes you've already set up. Open Classes, create any that are missing, then retry the import. If your CSV has inconsistent spellings ("Yr3 Red" vs "Year 3 Red"), pick one name in Spello and clean the CSV column to match before importing.
Re-imports and updates
Reference column on re-imports.
That's the only field Spello uses to detect a pupil you've already
imported — without it, re-importing the same CSV will create a second
set of children (usernames auto-suffix to "samp2", "samp3", etc).
With a reference column, Spello skips any row whose reference matches a pupil that's already in your school and imports only the genuinely new rows. Your school's UPN or MIS internal ID is the obvious thing to put in that column — it's stable across exports and unique per pupil.
The CSV import is additive only — it never updates existing pupils. To change a pupil's name, class, or credentials after they've been imported, edit them from the pupil's profile. For bulk changes across many pupils (end-of-year class rollovers, say), email us and we can help.
Still stuck? Email [email protected] — we normally reply within one working day.