Feature
Move from Paymo without re-typing a thing.
Paste your Paymo API key, map your team to your Hoursmith members, and run. The importer pulls clients (with contacts), projects (with rates + members), tasks, every time entry (per-user with billable + duration), and every historical invoice — line items, bill-to snapshot, currency, numbering, and all. Free on every plan.
Plans: Free · Studio · Agency
Free for solo freelancers · No credit card required
What's in it
Full entity graph
Clients → contacts → projects → tasks → time entries → invoices. Each level preserves Paymo IDs in the activity log so you can trace any imported row back to its source.
Project rate hierarchy respected
Paymo's three-level project rate (project rate → client default → user rate) is collapsed to the per-project rate on import. Future tracked time uses Hoursmith's per-project rate model.
Team mapping with email + name fallbacks
Paymo users match your Hoursmith members by email first, display name second, importer-fallback third (with an aggregated warning at the end so you can review).
Invoice immutability preserved
Historical Paymo invoices land in Hoursmith as SENT (or PAID, if Paymo had a payment recorded). The snapshot — bill-to, line rates, line items — is frozen exactly as it was issued. We won't let a Paymo client rename mess up your old invoice.
Rate-limit-aware
Concurrency is pinned to 1 against Paymo's API. 5xx triggers exponential backoff. 429 honors Retry-After. The runner can take its time — your tab can close and pick up later.
API key never persists
Your Paymo API key is used for the run and dropped from memory at completion. We don't store it; you can rotate it in Paymo afterward.
How it works
- 01
1. Generate a Paymo API key
In Paymo: Settings → Profile → API Keys. Create a read-only key for the migration.
- 02
2. Paste & preview
Hoursmith → Settings → Imports → Paymo. Paste the key. The preview shows row counts so you know the scale before you commit.
- 03
3. Map the team
Match Paymo users to Hoursmith members. Owners can add members on the fly if your roster has gaps.
- 04
4. Run + walk away
Progress streams via server-sent events. Close the tab. Come back when you want — the runner is server-side.
- 05
5. Verify, then undo or keep
Spot-check a few clients, projects, and invoices. Within 24 hours an Undo button cleanly reverses the run. After 24 hours the data is committed.
Common questions
Does the importer touch my Paymo data?
No. Every Paymo call is a GET. Nothing in Paymo changes; you can roll back in Hoursmith without affecting your Paymo account.
What about Paymo invoice currency mixed across clients?
Preserved per-invoice. Each invoice keeps the currency it was issued in. Your Hoursmith org default is set on the first import and you can change it later in Settings.
I have 8 years of data — will it work?
Yes. The runner paginates Paymo's API and walks history forward in monthly windows for time entries (Paymo's API performs better that way). Test imports against private-beta workspaces have processed 50k+ time entries cleanly.
What's NOT imported?
Paymo PM features that don't exist in Hoursmith — Gantt dependencies, resource scheduling, leave management, recurring projects/tasks, proposals, expense receipts. The data your billing depends on is imported in full.
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