When you move to Kelomo from another system, three things are imported from a file: the people, the work-time history and the opening balances. All three follow the same pattern: CSV in, preview, commit.
Common to all imports
- The file format is CSV or plain text. An Excel file cannot be imported as such – save it as CSV first.
- The delimiter is detected automatically (semicolon, comma or tab).
- Pick the file with Choose file, or paste the content straight into the text area.
- Dates are accepted as
2026-04-01and1.4.2026.
Bulk-importing people
Open the People list and press Import CSV. If the HR add-on is active, the button is Bulk actions, and the import lives there under the Bulk import card.
- Paste or upload a CSV. The base columns are name, email and role; a header row is optional.
- With a header row you can add optional columns: unit, worktime model, start date, end date, employment type, job title and language (fi/sv/en). Unit and worktime model are looked up by name – an unknown name fails only that row.
- The preview appears immediately. An invalid row gets an explanation (e.g. Invalid email) and is not sent; the other rows go through.
- Press Import N people. Every new person gets an invitation by email.
The result is shown row by row: Invited, Created, Skipped or Error. An existing member is skipped, so the same file can safely be imported again. One batch takes at most 500 rows. The people import cannot be undone.
Importing work-time history
Open Settings → Work time & rules → Work-time import.
- 1 · Source – pick or paste the file. The First row is a header row checkbox is pre-set by automatic detection.
- 2 · Column mapping – Kelomo maps the columns from the headers; you can fix the mapping in the dropdowns. The required fields are employee and date, plus either start and end or a duration.
- Press Create preview. The server checks the rows: the employee (email or exact name), the entry type and its validity on the row’s date, the times and durations. Invalid rows are marked with an explanation and are never committed.
- Press Commit N rows as drafts and confirm.
A row has either a start and an end (8:00, 16:00) or a duration (7:30
or 7.5). If the end is before the start, it is a night shift and the end is
read as the next morning. One batch takes at most 5000 rows, and one day at
most 20 entries.
The import writes drafts only. Confirming is the employee’s own statement, so a day that is already confirmed is skipped – it is never overwritten. A day’s earlier draft content, however, is replaced by the file’s rows.
Errors are fixed in the source file, not in the preview: fix the file and press Import another. A committed batch can be undone with Revert batch: it empties the draft days the batch created. All batches are listed under Import history.
Opening balances
Open Settings → Work time & rules → Balance import.
The flow is the same as in the work-time import. The mapping step also has a Preset menu for common source systems: Nepton accrual report, Kellokortti balance export and Tiima (generic balance export). The default is Automatic detection.
- Required fields: employee, balance account or type, value and effective date. Leave year is optional.
- A balance account’s value is given in hours:
7:30or decimal7.5. A negative opening balance is allowed. Leave types take their value in days. - If the file refers to a balance account that does not exist yet, a Missing balance accounts box appears above the preview. Pick the accounts to create, check the kind and create them – the preview is re-run automatically.
- Press Commit N openings. The openings become permanent balance transactions on each row’s effective date. One batch takes at most 2000 rows.
Revert batch deletes nothing: it appends counter-transactions that net the committed openings to zero. The original transactions stay on the books.
If something goes wrong
A row says “Unknown employee”. The person is matched by email or exact display name. Import the people first and check the spelling in the file.
A row says “Unknown balance account or type”. Create the account directly from the Missing balance accounts box, or beforehand on the Balance accounts page, and re-run the preview.
Some work-time rows were not committed: “The day is already confirmed”. This is deliberate. A confirmed day is left alone – if the day really has to change, see Correct a confirmed day.
The revert did not remove everything. Rows the employee edited after the import, and days already confirmed, are left as they are. The page shows the exact counts after the revert.