Bulk Employee Photo Import for modern HR teams
Import employee profile photos from CSV or Excel via hosted URLs — with dry-run preview, row-level error reporting, and a downloadable failed-row export — built natively on Odoo HR.
The problem
Odoo’s native CSV import silently strips image fields. Loading or refreshing employee profile photos in bulk forces HR administrators to update each record one at a time, or use a tool that commits data without validation and provides no way to correct failures.
The solution
Upload a CSV or Excel file with employee identifiers and photo URLs. Preview matched rows and fetch results before committing. Download a report of failures and re-upload corrections — without re-processing rows that already succeeded.
Everything HR needs for bulk photo import
Every capability below is implemented in the module.
CSV & Excel Upload
Upload a CSV, XLS, or XLSX file directly in the wizard. No format conversion needed before import — both spreadsheet types are accepted.
URL Image Fetch
Fetches employee photos from any accessible URL, including CDN redirect chains. Images are resized and normalised to standard Odoo photo dimensions on ingest.
Flexible Employee Matching
Match employees by display name, identification number, or internal employee ID. Choose the key that matches your source spreadsheet — no reformatting required.
Column-Header Mapping
Column order is irrelevant. The wizard reads by header name and accepts a wide range of common column aliases, so your existing spreadsheet works without rearranging columns.
Dry-Run Preview
Load Preview validates every row — resolves employees, fetches images — without writing a single record. Review the status table before deciding to commit.
Overwrite Control
An explicit toggle before the import begins: skip employees who already have a photo, or overwrite them. Re-run behaviour is always predictable and documented.
Row-Level Status Badges
Every preview row carries a Pending, Skipped, Success, or Error badge with an inline reason message so you know exactly which rows need attention before committing.
Downloadable Error Report
Export only the failed rows as a CSV with an added reason column. Correct those rows and re-upload the fix file without touching already-successful records.
HR Manager Access
The import wizard is available to the HR Manager role by default. HR onboarding staff can self-serve without requesting IT Administrator access.
How it works
Upload File
Open the Import Employee Images wizard from the Employees menu and upload your CSV or Excel file.
Preview Results
Click Load Preview. The wizard resolves employees and fetches images without saving anything yet.
Confirm Import
Review the row-level status table, then click Import Images to write only the valid rows.
Export Errors
Download a CSV of failed rows, fix the issues, and re-upload — successful rows are never reprocessed.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
Only if Overwrite existing photos is enabled. With the toggle off, those rows are marked Skipped and the existing photo is left untouched. The choice is always explicit before the import begins.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Import Employee Images
Bulk employee photo import with preview, error reporting, and flexible matching — built natively on Odoo HR.
Buy on Odoo App Store