Skip to main content
Connectors

Kellokortti connector

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

Written By Lauri Raivio

Last updated 16 days ago

Kaivo is a fully managed data platform that syncs your Kellokortti 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 Kellokortti connector

Sync your Kellokortti time tracking data into BigQuery with Kaivo to report on hours, attendance, and projects alongside the rest of your data.

CategoryHR, Project Management
AuthenticationUsername and password
SetupSelf-service

Getting started with the Kellokortti connector

  1. Sign up for Kaivo and create a workspace.
  2. Connect your Kellokortti 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 Kellokortti

Connect with your Kellokortti login. You provide:

FieldDescription
Password

Available in Kellokortti interface at "Työkalut > Tiedonsiirto > Tiedonsiirtoasetukset > API-avain".

Configuring the Kellokortti connector

When you set up the connector, you provide:

FieldDescription
Username

Corresponds to the Kellokortti admin account name without the "_admin" suffix.

Start Date

Extract events starting from this date.

Tables and columns synced from Kellokortti

Kaivo syncs 7 tables from Kellokortti 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.
idINT64
person_idSTRING
start_timeTIMESTAMP
end_timeTIMESTAMP
reason_codeINT64
work_shiftINT64
event_categoryINT64
event_category_wage_codeSTRING
event_category_wage_code_nameSTRING
event_category_wage_code_for_hourly_wagesSTRING
event_category_wage_code_name_for_hourly_wagesSTRING
billedINT64
explanationSTRING
supervisorSTRING
acceptedBOOL
accept_dateTIMESTAMP
flextimeINT64
overtimeINT64
modifiedBOOL
timestampTIMESTAMP
modifier_idSTRING
question1STRING
question2STRING
question3STRING
project_supervisorSTRING
project_acceptedBOOL
project_accept_dateTIMESTAMP
start_time_cut_to_shiftTIMESTAMP
end_time_cut_to_shiftTIMESTAMP
shift_dateTIMESTAMP
closing_methodINT64
removedBOOL
dimension1STRING
dimension_name1STRING
dimension2STRING
dimension_name2STRING
dimension3STRING
dimension_name3STRING
dimension4STRING
dimension_name4STRING
dimension5STRING
dimension_name5STRING
free_text1STRING
free_text2STRING
event_category_nameSTRING
day_event_categoryINT64
day_event_category_nameSTRING
duration_cut_to_shiftINT64
event_period_idINT64
event_typeINT64
filled_hours_reason_codeINT64
holiday_money_leave_yearINT64
holiday_period_idINT64
hours_automatically_filledBOOL
transferredBOOL
transfer_dateTIMESTAMP
person_info__person_nameSTRING
person_info__person_idSTRING
person_info__person_guidSTRING
person_info__person_groupINT64
person_info__person_external_groupSTRING
person_info__person_numberINT64
person_info__tax_numberSTRING
person_info__external_person_idSTRING
person_info__person_uriSTRING
day_info__daily_overtime_methodSTRING
day_info__day_saldo_revisedBOOL
day_info__daily_flextime_saldoINT64
day_info__daily_pekkassaldoINT64
day_info__daily_saldo_of_worktimebankINT64
day_info__daily_saldo_of_overtimebankINT64
day_info__daily_puncked_worktimeINT64
day_info__daily_planned_worktimeINT64
day_info__added_to_flex_time_from_dayINT64
_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.
dimension_uidINT64
external_idSTRING
dimension_idSTRING
dimension_groupINT64
main_dimension_idSTRING
not_in_useBOOL
dimension_nameSTRING
dimension_name_enSTRING
dimension_name_svSTRING
person_groupsSTRING
unitINT64
not_to_tax_reportBOOL
hourly_wageFLOAT64
hourly_wage_billedFLOAT64
start_dateTIMESTAMP
end_dateTIMESTAMP
additional_infoSTRING
self_uriSTRING
_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.
dimension_uidINT64
dimension_groupINT64
dimension_idSTRING
person_guidSTRING
person_idSTRING
start_dateTIMESTAMP
end_dateTIMESTAMP
price_per_hourFLOAT64
price_per_hour_for_invoicingFLOAT64
external_dimension_idSTRING
external_person_idSTRING
self_uriSTRING
dimension_uriSTRING
person_uriSTRING
_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.
person_id_modeINT64
guidSTRING
person_idSTRING
external_person_idSTRING
person_roleINT64
license_smsBOOL
person_groupINT64
external_person_groupSTRING
nameSTRING
first_nameSTRING
last_nameSTRING
birth_dateTIMESTAMP
person_numberINT64
person_number_payrollSTRING
holiday_planning_groupINT64
activeBOOL
phoneSTRING
e_mailSTRING
supervisorSTRING
punch_rightsBOOL
license_travel_claimsBOOL
license_holiday_planningBOOL
license_webBOOL
allow_changesBOOL
default_dimension1STRING
default_dimension2STRING
default_dimension3STRING
default_dimension4STRING
default_dimension5STRING
notification_messagesBOOL
message_formatINT64
start_dateTIMESTAMP
employment_start_dateTIMESTAMP
employment_end_dateTIMESTAMP
gsm_locationBOOL
show_dimension_id_in_listsBOOL
default_event_categoryINT64
person_unitINT64
employee_typeINT64
employment_typeINT64
employer_business_idSTRING
employer_nameSTRING
memo1STRING
memo2STRING
max_flextimeINT64
min_flextimeINT64
max_flextime_dailyINT64
tax_numberSTRING
license_tyoajastinBOOL
street_addressSTRING
address_additional_infoSTRING
postal_codeSTRING
post_officeSTRING
languageSTRING
countrySTRING
uses_calendarBOOL
uses_timerBOOL
uses_travel_claimsBOOL
creates_period_eventsBOOL
can_approve_own_eventsBOOL
can_modify_timebank_eventsBOOL
can_modify_payroll_eventsBOOL
can_see_persons_basic_info_on_calendarBOOL
rfid_numberSTRING
worksite_employees_in_useBOOL
external_group_idSTRING
builder_information__valtti_bar_codeSTRING
builder_information__valtti_statusSTRING
builder_information__valtti_uidSTRING
builder_information__builder_idINT64
builder_information__valtti_valid_toTIMESTAMP
builder_information__not_on_tax_reportBOOL
builder_information__employer_agencyINT64
send_password_to_new_personBOOL
self_uriSTRING
_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.
membership_typeINT64
person_idSTRING
person_guidSTRING
dimension_groupINT64
dimension_idSTRING
dimension_uidINT64
external_dimension_idSTRING
external_person_idSTRING
self_uriSTRING
person_uriSTRING
dimension_uriSTRING
_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.
travel_claim_idINT64
person_idSTRING
person_guidSTRING
external_person_idSTRING
start_timeTIMESTAMP
end_timeTIMESTAMP
country_idSTRING
country_nameSTRING
descriptionSTRING
acceptorSTRING
acceptedBOOL
accept_dateTIMESTAMP
project_acceptorSTRING
project_accept_dateTIMESTAMP
project_acceptedBOOL
readyBOOL
ready_dateTIMESTAMP
rejectedBOOL
rejected_dateTIMESTAMP
rejectorSTRING
paidBOOL
sumFLOAT64
dimension1STRING
dimension2STRING
dimension3STRING
dimension4STRING
dimension5STRING
free1STRING
free2STRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: travel_claim__travel_days

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.
travel_idINT64
travel_day_idINT64
person_idSTRING
travel_dateTIMESTAMP
start_timeTIMESTAMP
end_timeTIMESTAMP
country_idSTRING
country_nameSTRING
destination_idSTRING
destination_nameSTRING
meal_time1TIMESTAMP
meal_time2TIMESTAMP
meal_time3TIMESTAMP
descriptionSTRING
dimension1STRING
dimension2STRING
dimension3STRING
dimension4STRING
dimension5STRING
free1STRING
free2STRING
meal_compensationINT64
night_travel_compensationINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: travel_claim__travel_days__travel_imbursements

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.
person_idSTRING
travel_imbursement_row_idINT64
travel_dateTIMESTAMP
travel_imbursement_typeINT64
type_titleSTRING
travel_imbursement_idINT64
country_idSTRING
country_nameSTRING
destination_idINT64
destination_titleSTRING
travel_imbursement_descriptionSTRING
amountFLOAT64
unit_priceFLOAT64
totalFLOAT64
descriptionSTRING
vehicle_idINT64
travel_routeSTRING
dimension1STRING
dimension2STRING
dimension3STRING
dimension4STRING
dimension5STRING
free1STRING
free2STRING
parent_row_idINT64
extras_totalFLOAT64
initial_read_outINT64
final_read_outINT64
acceptorSTRING
acceptedBOOL
accept_dateTIMESTAMP
project_acceptorSTRING
project_acceptedBOOL
project_accept_dateTIMESTAMP
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: travel_claim__travel_days__travel_imbursements__travel_imbursement_rows

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.
accept_dateTIMESTAMP
acceptedBOOL
acceptorSTRING
amountFLOAT64
country_idSTRING
country_nameSTRING
descriptionSTRING
destination_idINT64
destination_titleSTRING
dimension1STRING
dimension2STRING
dimension3STRING
dimension4STRING
dimension5STRING
extras_totalFLOAT64
final_read_outINT64
free1STRING
free2STRING
initial_read_outINT64
parent_row_idINT64
person_idSTRING
project_accept_dateTIMESTAMP
project_acceptedBOOL
project_acceptorSTRING
totalFLOAT64
travel_dateTIMESTAMP
travel_imbursement_descriptionSTRING
travel_imbursement_idINT64
travel_imbursement_row_idINT64
travel_imbursement_typeINT64
travel_routeSTRING
type_titleSTRING
unit_priceFLOAT64
vehicle_idINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: travel_claim__travel_days__travel_imbursements__travel_imbursement_rows__travel_imbursement_rows

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.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: travel_claim__travel_days__travel_expenses

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.
valueJSON
_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.
idINT64
person_idSTRING
event_typeINT64
start_timeTIMESTAMP
end_timeTIMESTAMP
reason_codeINT64
shiftINT64
event_categoryINT64
billableBOOL
dimension1STRING
dimension2STRING
dimension3STRING
dimension4STRING
dimension5STRING
freetext1STRING
freetext2STRING
explanationSTRING
approverSTRING
approvedBOOL
approval_dateTIMESTAMP
modifiedBOOL
modified_dateTIMESTAMP
modifierSTRING
project_approverSTRING
project_approvedBOOL
project_approval_dateTIMESTAMP
start_time_cut_to_shiftTIMESTAMP
end_time_cut_to_shiftTIMESTAMP
duration_cut_to_shiftINT64
created_dateTIMESTAMP
is_deletedBOOL
timestampTIMESTAMP
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the Kellokortti sync works

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where Kellokortti 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 Kellokortti?

It depends on how much history is in your Kellokortti 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 Kellokortti'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 Kellokortti, 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 Kellokortti 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 Kellokortti connector in Kaivo and all of its synced data is deleted with it.

Common use cases for Kellokortti data

Hours and attendance

Track logged hours and attendance by employee and over time.

Project time

Report on time by project to see where work goes and support billing.

Overtime and balances

Analyse hours to monitor overtime and working-time balances.

Combine with payroll

Bring time data alongside payroll or finance data in BigQuery for a full view.

Use Kellokortti data in your AI and BI tools

Once Kellokortti 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 Kellokortti 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 Kellokortti 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