Skip to main content
Clockify is a time tracking and timesheet tool. This connector reads your Clockify workspaces through the Clockify REST API and brings the time entries of every user, with project, task, tags, billable and cost rates and custom field values, plus the workspace structure (users, user groups, clients, projects, tasks, tags, custom fields) and, when your plan includes them, approvals, time off, expenses and invoices.
The connector only reads data. It never creates, changes or deletes anything in Clockify.

Configuring Clockify as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Clockify option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

The connector signs in with a Clockify API key. The key reads Clockify as the person who created it, so use the key of a workspace admin or owner: other users can only read their own time entries, and several tables (users, user groups, approvals, time off, expenses, invoices) are only available to admins. To create a key:
  1. In Clockify, open your profile menu and go to Profile settings.
  2. In the API section (under Preferences > Advanced on newer accounts), click Generate and copy the key.
  3. If your workspace is opened at yourcompany.clockify.me (subdomain), generate the key while logged in to that subdomain: keys from other workspaces do not work there.
See Clockify’s API documentation. The following configurations are available:
  • API Key: The Clockify API key.
  • Region: The data region of your workspace: global (default), euc1 (EU - Germany), euw2 (UK), use2 (USA) or apse2 (Australia). Workspaces created in a specific data region must select it.
  • Workspace Plan: The Clockify plan of the workspace: free, paid (Basic, Standard or Pro) or enterprise. Clockify limits API requests per plan, and the connector paces its requests accordingly.
  • Start Date: The earliest date to read time entries (by start time) and deleted time entries from. The other tables are always read in full.
  • Subdomain (advanced): Only if your workspace is opened at yourcompany.clockify.me: type yourcompany. Leave empty otherwise.
  • Workspace IDs (advanced): Comma-separated IDs of the workspaces to read. Leave empty to read every workspace the API key can access.
  • Time Entries Lookback (days) (advanced): How far back each sync re-reads time entries to pick up edits. Default 30.
  • Minimum Seconds Between Requests (advanced): Overrides the pacing derived from the Workspace Plan.
On the Clockify Free plan the API allows only 30 requests per hour per workspace, so the connector waits about 2 minutes between requests and every sync takes hours, not only the first: roughly 15 requests plus 2 per project (Tasks), 1 per user (Time Entries) and about 4 per month since the previous sync. For example, 10 users and 30 projects with every table selected need about 100 requests, around 3.5 hours per sync. Select only the tables you need (Tasks is the most expensive). On paid plans the limit is 20 requests per second (50 on Enterprise).If Clockify reports a slower plan for a workspace than the one selected here, the connector paces for the slower one and the sync log asks you to update Workspace Plan.
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every time the extraction happens, we’ll get only the new data, which is good if, for example, you want to keep every record ever fetched.
    • Full table: every time the extraction happens, we’ll get the current state of the data, which is good if, for example, you don’t want to have deleted data in your catalog.
Clockify has no “changed since” filter for time entries. On Incremental, each sync re-reads every user’s recent entries (the lookback window) and also reads Clockify’s change log (marked experimental by Clockify) to fetch older entries that were edited, re-rated or added for past days since the previous sync. Deleted entries are not removed from Time Entries by incremental syncs: filter them with the Deleted Time Entries table. If the change log cannot be read in a sync, the sync log says so and only the lookback window is refreshed; an Additional Full Sync (for example weekly) realigns the whole history.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
  • Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while. Recommended for Time Entries (see the note above).
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Available streams

The table below lists every stream, its slug (the exact identifier to pass when creating the source via API), its sync type, what the API key needs to read it and a short description.
When the API key cannot read a table (not an admin, or the feature is not enabled or not included in the workspace’s Clockify plan), that table is skipped and not updated in that sync, the sync log names it and says what to change, and the other tables keep syncing. An invalid API key fails the sync. Nested information (settings, memberships, estimates, custom field values) comes as JSON text. Rates and invoice amounts are in cents of the currency; durations come both as ISO 8601 text (for example PT1H30M) and in seconds.

Fields by stream

Workspace and people

Every workspace the API key can access (or the ones in Workspace IDs), with plan, rates and settings.Table: workspaces · Primary key: id · Sync: Full table · Needs: Any API key.
Every member of each workspace, whatever their status (active, inactive, invited, deleted accounts).Table: users · Primary key: workspace_id, id · Sync: Full table · Needs: Workspace admin or owner.
User groups (teams) and their members and team managers.Table: user_groups · Primary key: id · Sync: Full table · Needs: Workspace admin or owner.

Projects and catalog

Clients, archived ones included.Table: clients · Primary key: id · Sync: Full table · Needs: Any workspace member.
Projects, archived ones included, with rates, estimates, members and total tracked time.Table: projects · Primary key: id · Sync: Full table · Needs: Any workspace member (members see the projects they can access).
Tasks of every project (archived projects included), active and done.Table: tasks · Primary key: id · Sync: Full table · Needs: Any workspace member (members see the projects they can access).
Tags, archived ones included.Table: tags · Primary key: id · Sync: Full table · Needs: Any workspace member.
Custom fields of time entries and users, in every status.Table: custom_fields · Primary key: id · Sync: Full table · Needs: Custom fields included in the workspace’s Clockify plan.

Time tracking

Every user’s time entries, with project, task, tags, rates, custom field values and duration. Read per user, filtered by the entry start time. Each sync re-reads, per user, the entries that started up to Time Entries Lookback days before the previous sync, and fetches older entries that Clockify’s change log reports as created or edited since the previous sync. A user read for the first time is read from the Start Date. Running timers come with an empty end and duration.Table: time_entries · Primary key: id · Sync: Incremental by time_interval_start · Needs: Workspace admin or owner to read every user’s entries; other users can only read their own.
Time entries deleted in Clockify, so they can be removed from the Time Entries table downstream. Read from Clockify’s deleted-entities feed (marked experimental by Clockify) up to a few minutes before the sync starts, continuing exactly where the previous sync stopped. Join on time_entry_id to drop deleted entries from Time Entries. Clockify’s feed does not list an entry created and deleted within the same time window, so the connector splits its reads at every Time Entries sync. An entry created and deleted while a Time Entries sync was reading can still be missed, and if Deleted Time Entries stops syncing for a long time while Time Entries keeps running, the sync log warns that some deletions may be missing; a Full sync of Time Entries removes any leftover.Table: deleted_time_entries · Primary key: id · Sync: Incremental by deleted_at · Needs: Workspace admin or owner.
Timesheet and expense approval requests, in every status.Table: approval_requests · Primary key: id · Sync: Full table · Needs: Workspace admin or manager, with Approvals available in the plan.

Time off

Holidays configured for Time off.Table: holidays · Primary key: id · Sync: Full table · Needs: Workspace admin or owner, with Time off available in the plan.
Time off policies, archived ones included.Table: time_off_policies · Primary key: id · Sync: Full table · Needs: Workspace admin or owner, with Time off available in the plan.
Time off requests in every status.Table: time_off_requests · Primary key: id · Sync: Full table · Needs: Workspace admin or owner, with Time off available in the plan.

Expenses and invoices

Expenses with category, project, task, totals and approval status.Table: expenses · Primary key: id · Sync: Full table · Needs: Workspace admin or owner, with Expenses enabled and included in the plan.
Expense categories, archived ones included.Table: expense_categories · Primary key: id · Sync: Full table · Needs: Workspace admin or owner, with Expenses enabled and included in the plan.
Invoices with client, amounts and status.Table: invoices · Primary key: id · Sync: Full table · Needs: Workspace admin or owner, with Invoicing enabled and included in the plan.

Limitations

  • Free plan: 30 API requests per hour per workspace. Each project costs two requests in Tasks and each user at least one in Time Entries.
  • Edits to old time entries come through Clockify’s experimental change log; if it cannot be read, they wait for a Full sync (the sync log says so). Deleted entries stay in Time Entries until a Full sync; use Deleted Time Entries to filter them.
  • Mass edits of old time entries (for example re-applying rates to months of entries) make the next sync re-read every user of the workspace from the oldest changed day, which takes long on the Free plan.
  • Template projects are not read.
  • Reports (summary, weekly, detailed, attendance), scheduling, webhooks and audit logs are not available in this connector.