Feature
Bring your data in once, then never look back.
Migrating to a new billing tool dies on data entry. Hoursmith ships two purpose-built importers — Paymo (one-click, full graph) and CSV/Excel (anything else) — that are resumable across browser refreshes, idempotent on re-run, and reversible within 24 hours. Free on every plan because switching shouldn't cost money.
Plans: Free · Studio · Agency
Free for solo freelancers · No credit card required
What's in it
Paymo: full graph in one click
Clients, contacts, projects, tasks, time entries, and historical invoices — including invoice numbers, snapshotted bill-to, and line items. Project rate hierarchy + member mapping respected. Your Paymo API key is used for the run and never persisted past it.
CSV / Excel: anything else
Upload .csv or .xlsx for clients, projects, or time entries. Auto-detect column synonyms; map manually if needed; preview row counts and validation errors; review and run. Multi-sheet Excel is rejected with a clear message (single-sheet only).
Idempotent re-runs
Both importers dedupe by composite natural keys. Re-uploading the same CSV after fixing one cell only adds the changed rows — your earlier edits to imported records survive.
Resumable
Close the tab mid-run. Come back an hour later. The import picks up at the saved cursor. The Paymo API rate limit is honored; the runner backs off on 5xx automatically.
24-hour undo
Every import job exposes an Undo button for 24 hours after completion. One click reverses every row the run touched — including the activity log entries. After 24 hours the undo expires and the data is committed.
Owner-only
Imports modify the entire workspace. The route + the server actions both require Owner role. Admins can review history; Members never see /settings/imports.
How it works
- 01
1. Pick a source
Settings → Imports → choose Paymo or CSV/Excel.
- 02
2. Connect or upload
Paymo: paste your API key for the run only. CSV/Excel: drop the file. We preview row counts and surface any validation errors before you commit.
- 03
3. Map the team (Paymo)
Match Paymo users to your Hoursmith members so historical time lands on the right person.
- 04
4. Run
Watch the progress bar (server-sent events). Walk away, come back — close the tab if you want.
- 05
5. Undo if needed
Within 24 hours, an Undo button on the job page reverses the run cleanly.
Common questions
Will my historical invoice numbers stay the same?
Yes. The Paymo importer preserves invoice numbers, snapshotted bill-to, line items, and currency exactly as they were issued. Your books reconcile across the cutover.
What if my Paymo data has gaps (orphan invoices, missing clients)?
The importer handles orphan invoices (a Paymo bug where the client row was deleted but the invoice was kept) by snapshotting the bill-to text and continuing. Missing parents are logged in the import log; you can fix them in-app afterward.
Can I import a partial CSV — say, just new clients?
Yes. Each entity type (clients / projects / time entries) is its own importer with its own template. Templates are linked from the upload step and at /api/imports/csv/template/[entity].
Why is the importer free on every plan?
Switching is the moment customers decide whether to stay. Gating the importer would just push people back to whatever they were leaving. Imports stay free forever, on Free included.
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