Clockify
What Shuttio reads from Clockify, where it lands in Odoo, which permissions it needs and why, and what does not move.
Last updated: 28 October 2026
The API key from your Clockify profile settings, and the region of your workspace. Shuttio reads every workspace that user belongs to, with the key's own rights; everyone's time is visible to a workspace admin or owner only.
Object by object: What objects are supported for Clockify migrations.
What Shuttio reads and moves
The list below describes the move into Odoo. Where Clarify or Odoo differ, the destination's own article says so.
- Clients: As Odoo companies. A company already in Odoo is matched by name (case ignored) and linked instead of duplicated. The client's note and an Archived line go in the internal note.
- Projects: As Odoo projects with the client as customer and the name. The workspace becomes a tag. A project archived in Clockify is archived in Odoo. Its note is the start of the description; whether it is billable, its hourly rate and its estimated hours are one line after it; nothing is invoiced.
- Tasks: Clockify tasks become tasks of their project. A task with the status Done lands in the Done stage. A workspace that does not offer tasks brings none, and the run says so.
- Time entries: As timesheet lines with the date, the hours, the project, the task and the description. Whether the entry is billable and its tags are written in brackets after the description, because an Odoo timesheet line has no tags.
- People: Each entry goes to the Odoo employee with the same email as its Clockify user (the employee's work email, or the email of the Odoo user the employee is linked to). Entries of a person with no such employee are skipped and counted with the reason; add the employee and retry, or choose one employee for them on the field review.
- The sample: A sample takes whole projects, not a random pick from each object: up to 50 projects (those with time entries first), each with all its tasks and every time entry, and the clients they name. Time entries stop at 500; a project that would pass that is left out, never cut in half, and the first project is always whole. A full run moves everything from Clockify.
Where each thing lands
| Clockify object | In Odoo |
|---|---|
| Clients | Partners (companies) |
| Projects | Projects (Odoo Project app) |
| Project tasks | Project tasks (Odoo Project app) |
| Time entries | Not written |
Notes, tasks, meetings, calls, files, owners and lists depend on the destination. This is the row for Clockify, generated from the same tables the runner uses:
Into Odoo
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|---|---|---|---|---|---|---|---|---|
| Clockify | Clients, Projects, Project tasks, Time entries | No | No | No | No | No | No | No | No |
Each destination's own article says how its data is written: Odoo.
Permissions and why
| What | Why Shuttio needs it |
|---|---|
| An API key | Generate it in your Clockify profile settings, under API. Shuttio checks it against Clockify before it saves anything and reads only what that user may see; it never writes to Clockify. |
| The region | Global, EU, USA, UK or Australia, as in your workspace settings. It tells Shuttio which Clockify server to read; only these servers are ever called. |
Use the key of a workspace admin or owner: Clockify shows everyone's time to an admin only, and a workspace where the key is not an admin is skipped and named. Clockify allows 20 requests a second per key on paid plans and 30 an hour on the Free plan, so a Free workspace takes hours, and the run pauses when Clockify asks it to slow down until you resume it. The key is stored encrypted and deleted 14 days after the migration finishes. You can generate a new key at any time in Clockify.
Known limits
- Invoices and expenses: They have no place in Odoo's Project and Timesheets apps.
- Running timers: A timer that is still running has no final hours. Stop it in Clockify and run the object again; the run says how many were left.
- A project for entries with no project: An Odoo timesheet line needs a project, so Shuttio adds a project called No project for each workspace and files those entries on it. It is a project like the others: rolled back with the migration unless a timesheet line of yours is on it.
- Other people's time without an admin key: Clockify shows everyone's time to a workspace admin or owner only. A workspace the key is not an admin of is skipped and named.
- Users as Odoo users or employees: Each Odoo user is a paid seat and an employee is a decision for you; none is created. Entries are matched to employees that exist.
- Billing and invoicing: Timesheet lines are written without a sales order line, so Odoo invoices nothing. Billable and rates are text.
- Odoo without the Timesheets app: Projects and tasks still move; the time entries are skipped with a sentence. Install Timesheets in Odoo and run that object again.
- The Odoo app and the import package: Time entries move with an Odoo API key only.
- Rate limits: Clockify allows 20 requests a second per key on paid plans, and 30 an hour on the Free plan. Shuttio spaces its requests under a tenth of a second apart and pauses the run if Clockify asks it to wait longer than a minute; Resume carries on. A Free workspace needs hours.
- Emails: Shuttio reads no emails from Clockify.
Not answered here? Email help@shuttio.com.