Data Import
This guide covers the technical details of Luna HR's CSV import — field specifications, mapping rules, and how to handle common issues.
For a general overview, see Importing Data.
Import process
- Select data type — employees, leave, expenses, assets, or training
- Upload CSV — drag and drop or click to browse
- Map columns — match your CSV headers to Luna HR fields
- Preview — review each row with validation feedback
- Import — create the records
Field specifications
Employee fields
| Field | Required | Format | Notes | |-------|----------|--------|-------| | First name | Yes | Text | | | Last name | Yes | Text | | | Email | Yes | Email | Must be unique | | Job title | No | Text | | | Department | No | Text | Must match an existing org node name | | Role | No | Text | Must match an existing role name | | Line manager | No | Text | Match by email or full name | | Start date | No | Date | YYYY-MM-DD or DD/MM/YYYY | | Employment type | No | Text | full-time, part-time, contractor, intern | | Working pattern | No | Text | Must match an existing pattern name |
Leave fields
| Field | Required | Format | Notes | |-------|----------|--------|-------| | Employee | Yes | Text | Match by email or full name | | Leave type | Yes | Text | Must match an existing leave type | | Start date | Yes | Date | | | End date | Yes | Date | | | Days | No | Number | Calculated automatically if omitted | | Status | Yes | Text | approved, pending, rejected, cancelled, taken | | Notes | No | Text | |
Expense fields
| Field | Required | Format | Notes | |-------|----------|--------|-------| | Employee | Yes | Text | Match by email or full name | | Expense date | Yes | Date | | | Category | Yes | Text | Must match an existing expense category | | Amount | Yes | Number | Currency symbols and commas are stripped automatically | | Status | Yes | Text | draft, submitted, approved, rejected, paid | | Report title | No | Text | Items with same employee + title are grouped into one report | | Description | No | Text | | | Currency | No | Text | Defaults to GBP | | Tax rate | No | Number | Percentage (e.g. 20 for 20%) | | Payment reference | No | Text | | | Payment method | No | Text | bank_transfer, payroll, petty_cash |
Asset fields
| Field | Required | Format | Notes | |-------|----------|--------|-------| | Name | Yes | Text | | | Asset tag | Yes | Text | Must be unique | | Category | Yes | Text | Must match an existing asset category | | Status | Yes | Text | available, assigned, maintenance, retired, disposed | | Condition | Yes | Text | new, good, fair, poor | | Serial number | No | Text | | | Manufacturer | No | Text | | | Model | No | Text | | | Assigned to | No | Text | Match by email or full name | | Purchase date | No | Date | | | Purchase cost | No | Number | | | Warranty expiry | No | Date | |
Column matching
Luna HR automatically matches common column header names. For example:
- "Staff Name", "Employee Name", "Name" → Employee
- "Date", "Receipt Date", "Transaction Date" → Expense Date
- "Cost", "Total", "Value", "Price" → Amount
If auto-matching doesn't find the right column, you can manually set the mapping in the preview step.
Validation
Before importing, every row is validated:
- Errors (red) — must be fixed before import. Example: required field missing, employee not found
- Warnings (amber) — can proceed but may need attention. Example: category not found (will use default)
You can edit rows inline in the preview to fix issues without going back to your CSV.
Tips
- Create categories first — expense categories, asset categories, and leave types must exist before you import data that references them
- Match employee names — the import resolves employees by email first, then full name. Ensure your CSV uses the same names as Luna HR
- Test small — import 10-20 rows first to verify your column mapping
- Dates — YYYY-MM-DD is preferred. DD/MM/YYYY also works
- Amounts — currency symbols (GBP, $, EUR) and thousand separators (commas) are handled automatically
Related
- Importing Data — overview of the import process
- Employee Management — managing employees after import