Personnel imports can carry photos: upload a single ZIP containing your spreadsheet and the image files. This reference shows exactly how to structure it - link here from any import.
ZIP structure
One data file plus the photos. The data file is a CSV or an Excel workbook (.xlsx / .xls) - the same formats the plain upload accepts - and the archive must hold exactly one of them:
personnel-import.zip
├── personnel.csv (or personnel.xlsx)
├── alexander_grant.jpg
├── emily_chen.jpg
└── marcus_silva.jpg
A folder around the contents is fine - photos are matched on the file name, not the path. Archive metadata that macOS adds when you compress a folder (__MACOSX, ._name sidecars, .DS_Store) is ignored, so a ZIP made with Finder’s “Compress” works as-is.
Matching photos to rows
Choose ONE strategy in the import wizard and name your files accordingly:
| Strategy | File naming | Example |
|---|---|---|
| Filename column (recommended) | a Photo File column holds each row’s filename | Photo File: alexander_grant.jpg |
| ID in filename | file named after the row’s ID number | STAFF001.jpg |
| UUID in filename | file named after the record UUID (updates/re-imports) | a84d2329-....jpg |
| Name in filename | file named after the person | alexander_grant.jpg |
With the filename-column strategy, rows without a photo simply leave the column empty - they import without one.
Photo guidance
- JPEG or PNG, one clear front-facing photo per person - photos feed badges and, where used, face credentials, so follow the same quality rules: even lighting, unobstructed face, sharp focus
- Keep files reasonably sized (a few hundred KB each) - very large archives upload slowly
- Filenames: stick to letters, numbers, hyphens and underscores; avoid spaces and special characters
- A row that imports but cannot find its photo is reported as “imported, photo not matched” - fix the filename and re-run; the record updates rather than duplicates