Migrate from Clockify

Owners and administrators can open the Clockify importer. Like the Harvest importer, it brings across everyone’s history from your Clockify workspace, including people who have since left.

The importer copies clients, projects, tasks and time entries from one Clockify workspace into an existing Keito workspace. When you import everyone, it also brings across the people who tracked that time. You run it from Settings → Import data. It is not an onboarding step or a continuous sync, and it never changes anything in Clockify: Keito only reads your Clockify data.

For a shorter walkthrough, see How to migrate from Clockify to Keito.

The screenshots and figures on this page come from Northstar Studio, a fictional Clockify test workspace. Its clients, projects and [SAMPLE] people are sample data. Account names and email addresses are masked in every screenshot.

What the import covers

Clockify data What happens in Keito
Clients Each one is created in Keito, mapped to an existing Keito client, or excluded
Projects and tasks Created, mapped or excluded. Private projects must be mapped to an existing Keito project or excluded
Time entries All history since the oldest month Keito finds, or a custom date range you set
Team members Each person is mapped to an existing Keito member, added as a historical person, or excluded along with their time
Hourly and cost rates Imported only when verified and in a matching currency; otherwise left unknown
Breaks, holidays, time off and running timers Skipped and reported in the result

These are the only data types the importer offers. Imported time is kept out of invoicing until an administrator reviews its billing.

Before you connect

  1. Sign in as an owner or administrator of the Keito workspace you are importing into.
  2. Find out which data region your Clockify workspace uses. In Clockify, it’s under Workspace settings → Security → Data region. Keito supports Global, EU and UK workspaces. USA and Australia are coming.
  3. Create an API key as a Clockify owner or administrator of that workspace. In Clockify, open your profile menu, choose Preferences, go to the Advanced tab, then select Manage API keys and Generate new. Use this API key, not your Clockify password, and do not paste it anywhere except the Keito importer.
  4. Make a list of anyone who is already a Keito member, so you can match them to their Clockify history.
  5. If you want to keep any private Clockify projects, create the matching client and project in Keito first, in the same currency.
  6. Choose the administrator who will review the billing of imported time.

Keito encrypts your API key, clears the field once you submit it, and deletes the key when the import no longer needs it. If an import is paused, its key expires after 7 days.

1. Open the Clockify importer

In Keito, go to Settings → Import data and choose Clockify in the provider switch (Harvest · Forecast · Toggl Track · Clockify).

You can also use the direct link, app.keito.ai/imports/clockify. After you sign in and choose a workspace, it opens the Clockify tab. The link does not grant access to a workspace: only owners and administrators can use the importer.

Import from Clockify in Keito Settings, with the Clockify tab selected, instructions for the data region and API key, an empty region selector and API key field, and a Test connection button

2. Connect and choose a workspace

Choose your Clockify region, paste the key into Clockify API key, then select Test connection.

If your Clockify account belongs to several workspaces, pick one under Clockify workspace and select Review workspace. Keito then scans the workspace’s clients, projects, tasks and people, and finds how far back its time history goes. Scanning does not import anything.

Connected to Clockify in the Global region, with the account name and email masked, a Clockify workspace selector and a Review workspace button

3. Confirm the connected account

Keito always imports everyone’s history from the Clockify workspace, including members who have since been deactivated. Nobody is invited, and you decide what happens to each person in step 5. Your own Clockify time is imported as you: tick I confirm this Clockify account represents me in this Keito workspace once you have checked the connected account is yours.

The API key must belong to a Clockify owner or administrator of the workspace, because only they can read everyone’s time. If it belongs to a regular member, Keito stops and asks for an owner’s or administrator’s key.

4. Choose data and dates

Each data type has its own row with the count Keito found in Clockify:

  • Clients, Projects and Tasks.
  • Time entries, which default to All history since the oldest month found (for example, All history since January 2023). To import a shorter period, open Advanced options and select Use a custom date range.
  • Team members. People are added as historical people and are not invited.

Breaks, holidays, time off and running timers are skipped and listed in the result. Each time entry is placed using its own Clockify time zone. If an entry has no time zone, Keito uses its creator’s profile time zone.

5. Review people

Open Review people and choose an outcome for each person:

  • Map them to an existing Keito member.
  • Create a historical person to hold their time.
  • Exclude this person and their time.

Historical people cannot sign in, are not invited and are not charged as seats. Members deactivated in Clockify are flagged Deactivated in Clockify. Your own Clockify account is always imported as you.

A matching email address is only a suggestion. Keito never applies it automatically.

Review people with every person decided: the importing account is marked as you, two sample people become historical people, one sample person is excluded with their time, and a deactivated sample person becomes a historical person

6. Review clients, projects and tasks

Open Advanced options, then Matches. Needs a decision lists what you must resolve; All references lists everything. Use Reference type to move between clients, projects and tasks. For each one, create a new Keito record, map it to an existing record, or exclude it.

Private Clockify projects always need a decision: map each one to an existing Keito project or exclude it. To map a private project, first create its Keito client and project in the same currency. Excluding a client or project also leaves out its time. Records with matching names are never merged automatically.

Advanced options open with date range, project scope and existing-record settings, and Matches showing two private projects that each need a mapping or exclusion

Some time may have no project, or belong to a project without a client. Under Advanced options, you can choose Create clearly named defaults for time without a project or task to keep that time under named default records. Otherwise, it is left out.

When something still needs a choice, the import button stays disabled and the panel says what is missing. Use Review source choices to find it. Once every choice is made, select Import selected data.

Matches with no references needing a decision, sample clients set to Create a new Keito record, and an enabled Import selected data (5 types) button

7. Follow progress

The progress panel moves through People → Clients → Projects & tasks → Time entries → Verify. Its percentage comes from real record counts. You can close the page; the import continues on its own.

Clockify’s Free plan allows about 30 API requests an hour, so importing a long history from a Free workspace can take hours. Paid Clockify plans are much faster. While Keito waits for Clockify’s rate limit, the panel shows when the import will resume.

Import progress at 20 percent while importing time entries for 1 to 28 January 2023, with People, Clients and Projects and tasks complete and a message that Keito is waiting for Clockify's rate limit and will resume automatically at 14:28
What you see What to do
Waiting for Clockify’s rate limit Nothing. The import resumes at the time shown
You want to end the import early Select Stop import. Records already imported stay in Keito
Keito paused because Clockify returned something it cannot safely use Select Review a new import. The run is canceled, imported records are kept, and you reconnect and review again
Clockify rejected the API key Select Replace API key
An import paused at 95 percent during verification, explaining that Clockify returned something Keito cannot safely use, with a Review a new import button

8. Check the result

When the import finishes, the panel shows what arrived: clients, projects, tasks, people and time entries, with the total duration. It also lists what was skipped. From there you can:

  • View imported time to see the entries in Keito.
  • Review billing to decide which imported time can be invoiced.
  • Open Details for verification, exclusions and a per-project breakdown.
Import complete: 5 clients, 7 projects, 21 tasks, 4 people and 254 time entries totaling 990h 12m 32s, with 60 entries from excluded people and 1 break skipped, and View imported time, Review billing and Details

Rates and billing

Keito imports verified Clockify hourly and cost rates only when their currency matches Keito’s: the project’s currency for billable rates, and the person’s cost currency for cost rates. Other amounts stay unknown. There is no currency conversion, and Keito does not fill gaps with today’s rates.

All imported time stays out of invoicing until an administrator reviews its billing.

Verified example

We imported Northstar Studio from the Global region on 6 November 2026, bringing across everyone’s history:

Check Result
Source entries observed 315
Time entries imported 254, totaling 990h 12m 32s
Skipped 60 entries from a person excluded in review, 1 break
Verification Matched at 315 entries and 4,446,752 seconds
Per person Entries, seconds and rates reconciled against Clockify
Identical re-run Created and updated nothing
Refresh Applied one Clockify description change and kept a local Keito edit

These figures describe one fictional test workspace. Check your own import the same way: compare entries and durations per person and per project against Clockify. The client, project, task, team and time rows of Verify imported data show where to look in Keito; its expense, invoice and retainer rows do not apply to this import.

Run it again or refresh

You can run the importer again from the same Clockify workspace. A new-only run never duplicates entries that were already imported. People imported earlier show Keep the existing Keito member, so nobody is created twice.

Review people on a second import, where previously imported sample people show Already imported and Keep the existing Keito member, and the excluded person stays excluded

To update records you already imported, open Advanced options and select Refresh previously imported records instead of adding new records only. Refresh needs a second, explicit confirmation. It updates source notes, dates, durations, start and end times, billability, and source tags and time metadata. For records this importer created, it also refreshes names and archive status.

  • Custom names, local edits, explicit mappings and financially protected entries stay unchanged.
  • Currency, relationships, rates and budgets are not refreshed.
  • Records deleted in Clockify are not deleted in Keito.
Refresh previously imported records selected, with the second confirmation listing the fields that refresh updates and those that stay unchanged, and sample clients keeping their existing mappings

Troubleshooting

  • Test connection fails: check the region first. Keito only finds the workspace in the region where it stores its data. Make sure you pasted the API key, not your password.
  • Keito says the workspace is stored in another Clockify data region: connect again and choose that region. The same API key works there.
  • Keito asks for an owner’s or administrator’s key: the key belongs to a regular Clockify member. Ask a Clockify owner or administrator to create the key and connect, or to make you an administrator.
  • The import is slow: a Free Clockify workspace allows about 30 API requests an hour. Leave the import running; the panel shows when it resumes.
  • Fewer entries than expected: breaks, holidays, time off and running timers are skipped. Time from excluded people, clients and projects is left out too. Check the date range and the skipped lines in the result.
  • You need help: contact Keito with the time of the run and what the panel shows. Never send your API key.

Before you switch

Keep Clockify available until the time reconciliation and the billing review are signed off. Then agree where new work will be recorded. The cutover checklist is reusable, but its Harvest-specific invoice and expense steps are outside this Clockify import’s scope.