Skip to main content
Connectors

Clockodo connector

Set up the Clockodo connector in Kaivo: authentication, configuration, the 17 BigQuery tables it syncs, and answers to common questions.

Written By Lauri Raivio

Last updated 15 days ago

Kaivo is a fully managed data platform that syncs your Clockodo data into a Google BigQuery warehouse and keeps it up to date automatically. There is no pipeline to build and no infrastructure to run, so you can spend your time analysing your HR data instead of moving it.

What is the Clockodo connector

Sync your Clockodo time tracking data into BigQuery with Kaivo to analyse hours, absences, and project profitability.

CategoryHR, Project Management
AuthenticationAPI key
SetupSelf-service

Getting started with the Clockodo connector

  1. Sign up for Kaivo and create a workspace.
  2. Connect your Clockodo account.
  3. Choose which tables to sync.
  4. Wait for the initial sync to finish.
  5. Query your data in BigQuery or your favourite AI or BI tool.

Authenticating Clockodo

Authenticate with your API Key.

FieldDescription
API Key

API key to use. Find it in the 'Personal data' section of your Clockodo account.

Configuring the Clockodo connector

When you set up the connector, you provide:

FieldDescription
Email Address

Your Clockodo account email address. Find it in your Clockodo account settings.

Years

List of years to sync data for, e.g. 2024, 2025.

Start Date

Any data before this date will not be fetched.

Tables and columns synced from Clockodo

Kaivo syncs 17 tables from Clockodo into a dedicated dataset in your BigQuery warehouse. Click any table to see its columns and types.

ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeFLOAT64
approved_byFLOAT64
count_daysFLOAT64
date_approvedSTRING
date_sinceSTRING
date_untilSTRING
idFLOAT64
statusFLOAT64
users_idFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
activeBOOL
billable_defaultBOOL
colorFLOAT64
idFLOAT64
nameSTRING
test_dataBOOL
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
addBOOL
editBOOL
reportJSON
user_idFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeFLOAT64
billableFLOAT64
clockedBOOL
clocked_offlineBOOL
customers_idFLOAT64
durationFLOAT64
hourly_rateFLOAT64
idFLOAT64
lumpsumFLOAT64
lumpsum_services_amountFLOAT64
lumpsum_services_idFLOAT64
projects_idFLOAT64
services_idFLOAT64
test_dataBOOL
textSTRING
texts_idFLOAT64
time_clocked_sinceSTRING
time_insertSTRING
time_last_changeSTRING
time_last_change_work_timeSTRING
time_sinceSTRING
time_untilSTRING
users_idFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
countFLOAT64
idFLOAT64
noteSTRING
users_idFLOAT64
yearFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
countFLOAT64
idFLOAT64
noteSTRING
users_idFLOAT64
year_sinceFLOAT64
year_untilFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
activeBOOL
idFLOAT64
nameSTRING
priceFLOAT64
unitSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
dateSTRING
half_dayFLOAT64
idFLOAT64
nameSTRING
nonbusinessgroups_idFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
hoursFLOAT64
idFLOAT64
noteSTRING
users_idFLOAT64
yearFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
activeBOOL
billable_defaultBOOL
billed_completelyBOOL
budget_is_hoursBOOL
budget_is_not_strictBOOL
budget_moneyFLOAT64
completedBOOL
customers_idFLOAT64
idFLOAT64
nameSTRING
revenue_factorFLOAT64
test_dataBOOL
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
activeBOOL
idFLOAT64
nameSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
accumulationBOOL
idFLOAT64
nameSTRING
nonbusiness__percentFLOAT64
nonbusiness__time_sinceSTRING
nonbusiness__time_since_is_previous_dayBOOL
nonbusiness__time_untilSTRING
nonbusiness__time_until_is_next_dayBOOL
nonbusiness_special__percentFLOAT64
nonbusiness_special__time_sinceSTRING
nonbusiness_special__time_since_is_previous_dayBOOL
nonbusiness_special__time_untilSTRING
nonbusiness_special__time_until_is_next_dayBOOL
sunday__percentFLOAT64
sunday__time_sinceSTRING
sunday__time_since_is_previous_dayBOOL
sunday__time_untilSTRING
sunday__time_until_is_next_dayBOOL
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeSTRING
compensation_dailyFLOAT64
compensation_monthlyFLOAT64
date_sinceSTRING
date_untilSTRING
fridayFLOAT64
idFLOAT64
mondayFLOAT64
saturdayFLOAT64
sundayFLOAT64
test_dataBOOL
thursdayFLOAT64
tuesdayFLOAT64
users_idFLOAT64
wednesdayFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idFLOAT64
leaderFLOAT64
nameSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
diffFLOAT64
holidays_carryFLOAT64
holidays_quotaFLOAT64
overtime_carryoverFLOAT64
overtime_reducedFLOAT64
sum_absence__home_officeFLOAT64
sum_absence__maternity_protectionFLOAT64
sum_absence__military_serviceFLOAT64
sum_absence__out_of_officeFLOAT64
sum_absence__quarantineFLOAT64
sum_absence__regular_holidaysFLOAT64
sum_absence__schoolFLOAT64
sum_absence__sick_childFLOAT64
sum_absence__sick_selfFLOAT64
sum_absence__special_leavesFLOAT64
sum_hoursFLOAT64
sum_reduction_plannedFLOAT64
sum_reduction_usedFLOAT64
sum_targetFLOAT64
surcharges__nightFLOAT64
surcharges__night_increasedFLOAT64
surcharges__nonbusinessFLOAT64
surcharges__nonbusiness_specialFLOAT64
surcharges__saturdayFLOAT64
surcharges__sundayFLOAT64
users_emailSTRING
users_idFLOAT64
users_nameSTRING
workdaysFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
activeBOOL
can_add_customersBOOL
can_generally_manage_absencesBOOL
can_generally_see_absencesBOOL
creatorFLOAT64
default_holidays_countBOOL
default_target_hoursBOOL
edit_lock_syncBOOL
emailSTRING
idFLOAT64
initialsSTRING
languageSTRING
nameSTRING
roleSTRING
support_pinSTRING
timeformat_12hBOOL
timezoneSTRING
weekend_fridayBOOL
weekstart_mondayBOOL
work_time_edit_lock_daysFLOAT64
worktime_regulation_idFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: users__absence_managers_id

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
dateSTRING
offsetFLOAT64
users_idFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: work_times__intervals

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
time_sinceSTRING
time_untilSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the Clockodo sync works

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where Clockodo supports it, each sync pulls only new and changed records so it stays fast; otherwise it refreshes the whole table. Every record keeps its original ID, so you won't get duplicate rows.

Frequently asked questions

How long does the initial sync take for Clockodo?

It depends on how much history is in your Clockodo account. Most initial syncs finish within minutes, while large accounts can take a few hours. After that, syncs only fetch new and changed records, so they're much faster.

Can I sync only some tables or columns?

Yes. You pick which tables to sync when you set up the connection and can change the selection later. Tables you don't select are never copied to your warehouse.

What happens when Clockodo's schema changes?

New fields are never added automatically. You choose which fields to sync, so data you haven't selected (sensitive personal data, for example) never lands in your warehouse. When a new field appears, it becomes available for you to add. What happens to removed or renamed fields depends on a table's sync mode: full-refresh tables always match what's currently in Clockodo, so dropped fields disappear, while incremental tables keep their existing columns and history, so an old field stays and newly added fields fill in over time.

How do I handle GDPR or data deletion requests?

Your data lives in your own Kaivo-managed BigQuery warehouse, so the most direct option is to delete or anonymise specific records right in BigQuery. If you delete data in Clockodo instead, full-refresh tables drop it on the next sync, while incremental tables keep it, so you would remove the row in BigQuery or ask us to run a full refresh. To remove everything, delete the Clockodo connector in Kaivo and all of its synced data is deleted with it.

Common use cases for Clockodo data

Billable hours

Use entries to track logged hours by project and customer over time.

Project profitability

Join entries with projects and target_hours to compare logged time against budgets.

Absence tracking

Use absences and holidays_quota to monitor leave and capacity.

Use Clockodo data in your AI and BI tools

Once Clockodo data lands in your Kaivo-managed BigQuery warehouse, you can explore it with AI tools or any BI tool that connects to BigQuery. Here's how the most common destinations work with Clockodo data.

Claude

Use Kaivo's MCP server to give Claude secure, workspace-scoped access to your data. Setup guide →

Power BI

Microsoft's BI tool with a native BigQuery connector. Supports direct query and scheduled refresh. Setup guide →

Data Studio

Free Google BI tool with native BigQuery support. One-click connection to your Kaivo warehouse; great for SMB teams on Google Workspace. Setup guide →

Tableau

The premium analytics standard, with native BigQuery integration. Setup guide →

Google Sheets

Use Connected Sheets to query BigQuery directly from a spreadsheet, with no SQL. Setup guide →

Excel

Connect via Power Query's BigQuery connector. Setup guide →

Metabase

Open-source BI tool with strong BigQuery support. Setup guide →

See our pricing page for Clockodo connector pricing and plan details.

  • ClickUp: Sync ClickUp to BigQuery.
  • GitHub: Sync GitHub to BigQuery.
  • GitLab: Sync GitLab to BigQuery.
  • Greenhouse: Sync Greenhouse to BigQuery.
  • Harvest: Sync Harvest to BigQuery.
  • Jira: Sync Jira to BigQuery.

Was this helpful?

Still need help? Share an idea