Feature
Bring data in from any tool that exports CSV or Excel.
If your current tool isn't Paymo, it almost certainly exports a CSV or Excel file. Hoursmith's CSV/Excel importer accepts .csv and .xlsx, auto-detects column synonyms, surfaces validation errors before commit, and re-running the same file is a free no-op. Free on every plan.
Plans: Free · Studio · Agency
Free for solo freelancers · No credit card required
What's in it
Three entity types
Clients, projects, and time entries each have their own importer flow. Each has a template at /api/imports/csv/template/[entity] with two sample rows + every supported column.
Auto-detected column synonyms
We accept common headings without forcing you to rename — 'Client Name' / 'Customer' / 'Account' all map to the same field. Map manually if the auto-detect misses.
Multi-format coercion
Dates parse from ISO, US, EU, and 'Jan 5 2026' styles. Durations parse from '1.5h', '1h30m', '1:30', '90m', or raw minutes. Booleans from yes/no/true/false/1/0. Decimal places preserved for money.
Validation preview
Before commit you see row counts, value coercions, and any failed rows with the specific error. Fix the file, re-upload, and only the changed rows commit.
Idempotent dedupe
Composite natural-key dedupe (e.g. for time entries: user + project + day + minutes). Re-uploading the same file is a free no-op. Re-uploading a corrected version updates only the changed rows.
5MB / 10k row cap
Enforced at the action layer to keep imports snappy. Larger files? Split into batches — the dedupe makes that safe.
How it works
- 01
1. Pick the entity
Clients, projects, or time entries — each is a separate importer. Download the template if you're starting from scratch.
- 02
2. Upload
Drop the .csv or .xlsx. We auto-detect columns and show you which ones mapped to what.
- 03
3. Review + fix
Validation errors surface inline. Edit your file, re-upload, repeat until clean (or accept warnings — non-blocking).
- 04
4. Run
Hit Run. Progress streams via SSE. Close the tab; it survives.
- 05
5. Undo if needed
Same 24-hour undo as the Paymo importer. After that, committed.
Common questions
Can I import time entries from a tool other than my current billing software?
Yes — if you can get a CSV or Excel file out of it. Toggl, Harvest, Clockify, and most spreadsheets work. The time-entry template shows you the columns; you map your source to them.
What happens to validation errors?
Rows with errors are blocked from import and surfaced in the preview. Warnings (like 'project not found, skipping') let the rest of the file proceed and aggregate at the end of the run.
What if my Excel file has multiple sheets?
We reject it with a clear message ('multi-sheet not supported'). Save the relevant sheet as its own .xlsx or .csv and re-upload. This is intentional — guessing which sheet to import is the kind of magic that goes wrong silently.
Is there a limit on file size?
5MB or 10,000 rows, whichever comes first. Above that, split into batches — the dedupe makes that safe.
Related
Try it free, in two minutes.
Create an account, set up your first client, and log an hour. The invoice will already be on the way to building itself.
Free for solo freelancers · No credit card · Cancel any time