Skip to content

Importing from CSV

People → Import loads three kinds of CSV file. Each has a downloadable template whose columns map one-to-one to fields. The column tables below are generated from the same template definitions the server uses, so they match the version you run.

The import preview: 3 rows checked, 4 problems listed by row, column, value and how to fix them, import button disabled (fictional data)

  1. Download the template, fill it in a spreadsheet and save it as CSV (UTF-8, comma-separated, with the header row). At most 5 MB and 2,000 data rows.
  2. Upload it. Every row is checked with the same rules as the forms: NRIC/FIN check letters, required fields, existing department names (with the closest match suggested), dates, and so on.
  3. The preview lists the rows that will be created and every problem as row, column, value and how to fix it. NRIC/FIN values in the preview are masked.
  4. Nothing is saved until you confirm, and the confirm button stays disabled while any row has a problem. Fix the spreadsheet and Upload a fixed file.
  5. Confirming writes all rows in one transaction, or none.

Dates accept YYYY-MM-DD or DD/MM/YYYY only. Money is in dollars with up to 2 decimals (4000.00) and is stored as exact cents.

Creates employees with their first employment record and, for payroll roles, their basic pay. Each new employee gets a sign-in invitation after you confirm (see members and roles). Foreigners need a work pass valid on the hire date.

Template file crowhr-employees-template-v1.csv (version 1), 31 columns.

ColumnRequiredWhat to enterExample
employee_numbernoLeave empty to auto-number (E0001…).
legal_nameyesAs on the NRIC, FIN card or passport.Tan Mei Ling
preferred_namenoThe name they go by, e.g. Hafiz for Muhammad Hafiz bin Ismail. Used in greetings and the directory. Leave empty to use the legal name.Mei Ling
id_typeyesnric, fin or other.nric
id_numberyesNRIC/FIN with check letter, or passport number.S1234567D
date_of_birthyesYYYY-MM-DD or DD/MM/YYYY.12/04/1990
gendernofemale, male, other or undisclosed.female
nationalitynoCountry name.Singaporean
residency_statusyescitizen, pr or foreigner.citizen
pr_start_datenoRequired for pr: SPR status date on the ICA entry permit.
racenochinese, malay, indian, eurasian or other (SHG fund).chinese
religionnobuddhism, christianity, islam, hinduism, taoism, sikhism, other, none or undisclosed.buddhism
work_emailnoUsed for the sign-in invitation.[email protected]
personal_emailno
mobileno8-digit SG number or +country code.91234567
hire_dateyesFirst day of work.2026-01-05
job_titleyesAccount Executive
departmentyesMust match an existing department name.Sales
teamnoExisting team name.
locationnoExisting location name.
cost_centrenoExisting cost centre code.
manager_employee_numbernoEmployee number of the manager (existing, or earlier in this file).
employment_typeyesfull_time, part_time, contract or intern.full_time
work_schedulenoSchedule name; empty = the default schedule.
probation_endnoYYYY-MM-DD or DD/MM/YYYY.
pay_basisnomonthly or hourly. Needs payroll access.monthly
basic_paynoDollars, up to 2 decimals. Needs payroll access.4000.00
pass_typenoForeigners: EP, S_PASS, WP, DP_LOC, LTVP_LOC, PEP, ONE, TEP or OTHER.
pass_numbernoFIN or work permit number.
pass_issued_onno
pass_expires_onnoRequired with pass_type.

manager_employee_number can refer to an employee earlier in the same file. pay_basis and basic_pay need payroll access: an HR admin without the payroll admin role cannot import pay.

Records basic pay changes, effective-dated. A row dated in a month whose payroll is already approved or paid needs retroactive = yes; Crow HR then flags the back pay on the next payroll run (it is not computed for you; see limitations).

Template file crowhr-compensation-template-v1.csv (version 1), 6 columns.

ColumnRequiredWhat to enterExample
employee_numberyesExisting employee.E0001
effective_fromyesYYYY-MM-DD or DD/MM/YYYY.2027-01-01
pay_basisyesmonthly or hourly.monthly
basic_payyesDollars, up to 2 decimals.4200.00
reasonnoAnnual increment
retroactivenoyes when dated in a finalised payroll month.no

Use this when you move to Crow HR during a year. CPF’s additional-wage (AW) ceiling depends on the ordinary wages already paid in the year, so payroll needs the totals from your previous system. Without them, payroll warns on every employee that months before Crow HR are missing and the AW ceiling counts only the months Crow HR knows.

Template file crowhr-ytd-opening-balances-template-v1.csv (version 1), 11 columns.

ColumnRequiredWhat to enterExample
employee_numberyesExisting employee.E0001
yearyesCalendar year, e.g. 2026.2026
through_monthyesLast month paid in the previous system: 1-12 or YYYY-MM.6
ow_ytdyesOrdinary wages paid, dollars.36000.00
ow_cpf_ytdnoOrdinary wages subject to CPF (after the OW ceiling), dollars.36000.00
aw_ytdyesAdditional wages paid (bonus, AWS), dollars.0.00
aw_cpf_ytdnoAdditional wages subject to CPF, dollars.0.00
cpf_ee_ytdyesEmployee CPF, dollars.7200.00
cpf_er_ytdyesEmployer CPF, dollars.6120.00
shg_ytdyesSHG deductions (CDAC/ECF/MBMF/SINDA), dollars.9.00
sdl_ytdnoSDL paid, dollars.54.00

One row per employee and year, covering the year up to and including through_month, the last month paid in the previous system. For example ow_ytd 36000.00 with through_month 6 stores S$36,000.00 of ordinary wages for January to June. The next Crow HR run (July) starts from these figures.