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.

Capabilities

Everything HR needs for bulk photo import

Every capability below is implemented in the module.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

07

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.

08

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.

09

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.

Workflow

How it works

1

Upload File

Open the Import Employee Images wizard from the Employees menu and upload your CSV or Excel file.

2

Preview Results

Click Load Preview. The wizard resolves employees and fetches images without saving anything yet.

3

Confirm Import

Review the row-level status table, then click Import Images to write only the valid rows.

4

Export Errors

Download a CSV of failed rows, fix the issues, and re-upload — successful rows are never reprocessed.

Questions

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.

Get the app

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