Skip to main content
Connectors

When I Work connector

Set up the When I Work connector in Kaivo: authentication, configuration, the 12 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 When I Work 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 When I Work connector

Sync your When I Work scheduling and time data into BigQuery with Kaivo to analyse labour cost, hours, and staffing.

CategoryHR
AuthenticationUsername and password
SetupSelf-service

Getting started with the When I Work connector

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

Connect with your When I Work login. You provide:

FieldDescription
Email

Your When I Work account email address.

Password

Your When I Work account password.

Tables and columns synced from When I Work

Kaivo syncs 12 tables from When I Work 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
agent_idFLOAT64
attendance_alert_employeeFLOAT64
attendance_alert_managerFLOAT64
attendance_freemiumBOOL
availability_migratedFLOAT64
bad_credit_cardBOOL
billing_addressSTRING
billing_citySTRING
billing_countryFLOAT64
billing_discountFLOAT64
billing_engineFLOAT64
billing_phoneSTRING
billing_stateSTRING
billing_typeFLOAT64
billing_zipSTRING
business_address_confirmedBOOL
business_idSTRING
cancelreason_feedbackSTRING
cancelreason_idFLOAT64
companySTRING
converted_atBOOL
country__dialing_codeFLOAT64
country__idFLOAT64
country__is_deletedBOOL
country__is_enabledFLOAT64
country__iso2STRING
country__iso3STRING
country__nameSTRING
country__sms_costFLOAT64
country__sms_credit_costFLOAT64
country__updated_bySTRING
country_idFLOAT64
created_atSTRING
credit_attemptsFLOAT64
credit_balanceFLOAT64
credit_eft_numberSTRING
credit_emailSTRING
credit_expSTRING
credit_nameSTRING
credit_numberSTRING
credit_phone_numberSTRING
credit_recurring_dayFLOAT64
deactivated_reason_idFLOAT64
deleted_atSTRING
employee_countFLOAT64
enabledBOOL
groupSTRING
has_billingBOOL
has_samlBOOL
idFLOAT64
inactiveSTRING
industry_idFLOAT64
invalidated_bySTRING
is_deactivatedFLOAT64
is_default_location_addressBOOL
is_deletedBOOL
is_demoBOOL
is_invalidFLOAT64
last_activeSTRING
limited_features__shift_acknowledgementBOOL
location_countFLOAT64
logoSTRING
master_idFLOAT64
organization_idFLOAT64
owner__emailSTRING
owner__idFLOAT64
owner__nameSTRING
payroll_dateSTRING
payroll_hours_maxFLOAT64
payroll_overtime_multiplierFLOAT64
place__addressSTRING
place__business_nameSTRING
place__countrySTRING
place__formatted_phone_numberSTRING
place__idFLOAT64
place__international_phone_numberSTRING
place__latitudeFLOAT64
place__localitySTRING
place__longitudeFLOAT64
place__place_idSTRING
place__postal_codeSTRING
place__regionSTRING
place__street_nameSTRING
place__street_numberSTRING
place__sub_localitySTRING
place__subpremiseSTRING
place__updated_atSTRING
place__updated_bySTRING
place__websiteSTRING
place_confirmedBOOL
place_idFLOAT64
plan_customFLOAT64
plan_expiresSTRING
plan_idFLOAT64
plan_textingFLOAT64
plan_typeFLOAT64
plan_unitsFLOAT64
previous_plan_idFLOAT64
previous_plan_unitsFLOAT64
previous_typeFLOAT64
primary_contactFLOAT64
real_typeFLOAT64
ref_employeesFLOAT64
ref_plan_idFLOAT64
ref_statusSTRING
referral_codeSTRING
referral_idFLOAT64
referred_bySTRING
settings__attendance__trial__activatedBOOL
settings__attendance__trial__enabledBOOL
settings__availability__days_noticeFLOAT64
settings__availability__enabledBOOL
settings__availability__is_publicBOOL
settings__billing__recurringBOOL
settings__breaks__break_rules__enabledBOOL
settings__breaks__paid__track_missedBOOL
settings__breaks__unpaid__auto_deductBOOL
settings__breaks__unpaid__enabledBOOL
settings__breaks__unpaid__manually_recordBOOL
settings__clockin__enabledBOOL
settings__clockin__mobile__enabledBOOL
settings__clockin__mobile__radiusFLOAT64
settings__clockin__mobile__strictBOOL
settings__clockin__mobile__strict_outBOOL
settings__clockin__photo__enabledBOOL
settings__clockin__windowFLOAT64
settings__clockin__work__enabledBOOL
settings__clockin__work__radiusFLOAT64
settings__clockin__work__strictBOOL
settings__clockin__work__strict_outBOOL
settings__conversations__enabledBOOL
settings__integrations__revelBOOL
settings__integrations__squareBOOL
settings__marketing__attribution_idSTRING
settings__marketing__funnelSTRING
settings__on_demand_pay__enabledBOOL
settings__payroll__typeFLOAT64
settings__payroll__adp_enabledBOOL
settings__payroll__adp_viewableBOOL
settings__payroll__dbl_multiplierFLOAT64
settings__payroll__enabledBOOL
settings__payroll__hours_dot_dailyFLOAT64
settings__payroll__hours_dot_daily_enabledBOOL
settings__payroll__hours_maxFLOAT64
settings__payroll__hours_max_dailyFLOAT64
settings__payroll__hours_max_daily_enabledBOOL
settings__payroll__hours_max_enabledBOOL
settings__payroll__is_onboardedBOOL
settings__payroll__max_enforcement__enabledBOOL
settings__payroll__ot_alerts_clockinBOOL
settings__payroll__ot_alerts_clockoutBOOL
settings__payroll__ot_alerts_withinFLOAT64
settings__payroll__ot_multiplierFLOAT64
settings__payroll__reveal_attendanceBOOL
settings__payroll__rounding__enabledBOOL
settings__payroll__rounding__minute_incrementFLOAT64
settings__payroll__timesheetsBOOL
settings__payroll__tips_trackingBOOL
settings__payroll__use_sow_for_otBOOL
settings__payroll__work_day_startSTRING
settings__payroll_check__days_to_pay_dateFLOAT64
settings__payroll_check__enabledBOOL
settings__payroll_check__first_pay_period_idFLOAT64
settings__payroll_check__is_onboardedBOOL
settings__payroll_check__rejectedBOOL
settings__payroll_check__requestedBOOL
settings__permissions__text_creditsFLOAT64
settings__privacy__enabledBOOL
settings__role_permissions__managers__can_manage_account_settingsBOOL
settings__role_permissions__managers__can_manage_workplace_objectsBOOL
settings__role_permissions__supervisors__can_approve_own_timesheetBOOL
settings__role_permissions__supervisors__can_edit_all_shift_detailsBOOL
settings__role_permissions__supervisors__can_edit_employee_timesheetsBOOL
settings__role_permissions__supervisors__can_manage_workplace_objectsBOOL
settings__role_permissions__supervisors__can_view_employee_wagesBOOL
settings__schedule___24hourBOOL
settings__schedule__currencySTRING
settings__schedule__enabledBOOL
settings__schedule__is_visibleBOOL
settings__schedule__open_schedulingBOOL
settings__schedule__positions_onlyBOOL
settings__schedule__preferred_hoursBOOL
settings__schedule__shared_openshiftsBOOL
settings__schedule__shift_acknowledgementBOOL
settings__schedule__sort_employeesFLOAT64
settings__schedule__split_shiftsFLOAT64
settings__schedule__start_of_weekFLOAT64
settings__schedule__track_absencesBOOL
settings__schedule__worktagsBOOL
settings__scheduling_rules__enabledBOOL
settings__scheduling_rules__max_consecutive_days__enabledBOOL
settings__scheduling_rules__max_days_in_week__enabledBOOL
settings__scheduling_rules__min_hours_between_shifts_diff_day__enabledBOOL
settings__scheduling_rules__min_hours_between_shifts_same_day__enabledBOOL
settings__social__enabledBOOL
settings__swaps__drop_hours_beforeFLOAT64
settings__swaps__enable_dropsBOOL
settings__swaps__enable_partial_openshiftBOOL
settings__swaps__enable_releasesBOOL
settings__swaps__enable_swapsBOOL
settings__swaps__enabledBOOL
settings__swaps__manager_approvalBOOL
settings__swaps__partial_openshift_coverageFLOAT64
settings__swaps__release_hours_beforeFLOAT64
settings__swaps__swap_hours_beforeFLOAT64
settings__tasks__enabledBOOL
settings__timeoff__days_noticeSTRING
settings__timeoff__enabledBOOL
settings__timeoff__is_publicBOOL
settings__timeoff__manager_approvalBOOL
settings__timeoff__max_hours_per_dayFLOAT64
settings__timeoff__supervisor_autoapproveBOOL
settings__workchat__custom_channels_allowedBOOL
settings__workchat__enabledBOOL
settings__workchat__last_enabled_dateSTRING
settings__workchat__managed_channel_conversations_allowedBOOL
split_shiftsFLOAT64
subdomainSTRING
tax_exemptionSTRING
text_creditsFLOAT64
time_formatFLOAT64
timezone_idFLOAT64
timezone_nameSTRING
trial_created_atSTRING
trial_lengthFLOAT64
updated_atSTRING
updated_bySTRING
user_countFLOAT64
user_count_localFLOAT64
utm_campaignSTRING
utm_contentSTRING
utm_mediumSTRING
utm_sourceSTRING
utm_termSTRING
wb_expiresBOOL
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: account__additional_features

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: account__features

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

Subtable: account__notifications

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

Subtable: account__place__place_type

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

Subtable: account__required_features

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

Subtable: account__settings__breaks__break_rules__rules

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: account__settings__on_demand_pay__providers

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

Subtable: account__subscriptions

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: account__toggles

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

Subtable: account__uses_features

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.
valueSTRING
_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.
account_idFLOAT64
break_timeFLOAT64
colorSTRING
created_atSTRING
end_timeSTRING
idFLOAT64
is_sharedFLOAT64
location_idFLOAT64
notesSTRING
position_idFLOAT64
requires_openshift_approvalFLOAT64
start_timeSTRING
updated_atSTRING
updated_bySTRING
_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.
account_idFLOAT64
addressSTRING
created_atSTRING
deleted_atSTRING
idFLOAT64
ip_addressSTRING
is_defaultFLOAT64
is_deletedBOOL
latitudeFLOAT64
longitudeFLOAT64
max_hoursFLOAT64
nameSTRING
place__addressSTRING
place__business_nameSTRING
place__countrySTRING
place__formatted_phone_numberSTRING
place__idFLOAT64
place__international_phone_numberSTRING
place__latitudeFLOAT64
place__localitySTRING
place__longitudeFLOAT64
place__place_idSTRING
place__postal_codeSTRING
place__regionSTRING
place__street_nameSTRING
place__street_numberSTRING
place__sub_localitySTRING
place__subpremiseSTRING
place__updated_atSTRING
place__updated_bySTRING
place__websiteSTRING
place_confirmedBOOL
place_idFLOAT64
radiusFLOAT64
sortFLOAT64
updated_atSTRING
updated_bySTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: locations__coordinates

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.

Subtable: locations__place__place_type

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.
valueSTRING
_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.
moreBOOL
pageFLOAT64
totalFLOAT64
uidFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: openshiftapprovalrequests__openshiftapprovalrequests

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.
account_idFLOAT64
closed_atSTRING
created_atSTRING
creator_idFLOAT64
end_dateSTRING
idFLOAT64
is_closedBOOL
is_editedFLOAT64
is_finalizedBOOL
notesSTRING
offsetSTRING
start_dateSTRING
updated_atSTRING
updated_bySTRING
_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.
uidSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: payrolls_notices__notices

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: payrolls_notices__punches

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: payrolls_notices__shifts

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: payrolls_notices__times

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.
account_idFLOAT64
colorSTRING
created_atSTRING
idFLOAT64
is_deletedBOOL
nameSTRING
sortFLOAT64
tips_trackingBOOL
updated_atSTRING
updated_bySTRING
_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
account_idFLOAT64
canceled_byFLOAT64
completedFLOAT64
completed_atSTRING
created_atSTRING
creator_idFLOAT64
days_completedFLOAT64
days_requestedFLOAT64
end_timeSTRING
hoursFLOAT64
idFLOAT64
is_all_dayFLOAT64
paidBOOL
start_timeSTRING
statusFLOAT64
type_idFLOAT64
type_labelSTRING
updated_atSTRING
updated_bySTRING
updater_idFLOAT64
user_idFLOAT64
user_statusFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: requests__allowed_statuses

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.
descriptionSTRING
account_idFLOAT64
addressSTRING
colorSTRING
created_atSTRING
deleted_atSTRING
idFLOAT64
is_deletedBOOL
latitudeFLOAT64
location_idFLOAT64
longitudeFLOAT64
nameSTRING
place_idSTRING
postal_codeSTRING
radiusFLOAT64
updated_atSTRING
updated_bySTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: sites__coordinates

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

Subtable: times__punches

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: times__shifts

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: times__times

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.
idSTRING
nameSTRING
offsetFLOAT64
olson_idSTRING
_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
account_idFLOAT64
activatedBOOL
affiliateFLOAT64
alert_settings__absences__emailBOOL
alert_settings__absences__smsBOOL
alert_settings__attendance__emailBOOL
alert_settings__attendance__smsBOOL
alert_settings__availability__emailBOOL
alert_settings__availability__smsBOOL
alert_settings__hire__emailBOOL
alert_settings__hire__smsBOOL
alert_settings__new_employee__emailBOOL
alert_settings__new_employee__smsBOOL
alert_settings__ot_alerts__emailBOOL
alert_settings__ot_alerts__smsBOOL
alert_settings__payroll__smsBOOL
alert_settings__reminders__emailBOOL
alert_settings__reminders__smsBOOL
alert_settings__reporting__emailBOOL
alert_settings__reporting__smsBOOL
alert_settings__schedule__emailBOOL
alert_settings__schedule__smsBOOL
alert_settings__shift_bidding__emailBOOL
alert_settings__shift_bidding__smsBOOL
alert_settings__swaps__emailBOOL
alert_settings__swaps__smsBOOL
alert_settings__timeoff__emailBOOL
alert_settings__timeoff__smsBOOL
alert_settings__workchat__alertsBOOL
alert_settings__workchat__badge_iconBOOL
alert_settings__workchat__in_appBOOL
alert_settings__workplace_alerts__emailBOOL
alert_settings__workplace_alerts__smsBOOL
avatar__sizeSTRING
avatar__urlSTRING
avatar_keySTRING
c2dm_auth_keyFLOAT64
country_codeSTRING
country_idFLOAT64
created_atSTRING
created_byFLOAT64
delete_reasonSTRING
deleted_atSTRING
deletion_queuedBOOL
edit_personal_timesheetFLOAT64
emailSTRING
employee_codeSTRING
employment_typeSTRING
exclude_from_payrollsFLOAT64
first_nameSTRING
hourly_rateFLOAT64
hours_maxFLOAT64
hours_preferredFLOAT64
idFLOAT64
infotipsSTRING
invited_atSTRING
is_activeBOOL
is_deletedBOOL
is_hiddenBOOL
is_internal_loginBOOL
is_onboardedBOOL
is_payrollBOOL
is_privateBOOL
is_trustedFLOAT64
last_loginSTRING
last_nameSTRING
login_idFLOAT64
middle_nameSTRING
migration_idFLOAT64
notesSTRING
notified_atSTRING
passwordBOOL
phone_numberSTRING
reminder_timeFLOAT64
roleFLOAT64
sleep_endSTRING
sleep_startSTRING
sort___5696679FLOAT64
start_dateSTRING
suppress_alertsFLOAT64
terminated_atSTRING
timezone_idFLOAT64
timezone_nameSTRING
token_valid_afterSTRING
updated_atSTRING
uuidSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: users__locations

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.

Subtable: users__my_positions

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: users__position_quality

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: users__position_rates

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: users__positions

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.

How the When I Work sync works

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

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

Common use cases for When I Work data

Labour cost

Use payrolls and times to track labour cost against your sales.

Hours and attendance

Join times with users to measure scheduled versus actual hours.

Staffing by location

Use sites and locations to see where you are over or understaffed.

Use When I Work data in your AI and BI tools

Once When I Work 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 When I Work 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 When I Work connector pricing and plan details.

Was this helpful?

Still need help? Share an idea