Skip to main content
Connectors

7shifts connector

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

Sync your 7shifts scheduling and time data into BigQuery with Kaivo to analyse labour cost, hours worked, and staffing across your locations.

CategoryHR
AuthenticationAPI key
SetupSelf-service

Getting started with the 7shifts connector

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

Authenticate with your Access Token.

FieldDescription
Access Token

Access token to use for authentication. Generate it in the 7shifts Developer Tools.

Configuring the 7shifts connector

When you set up the connector, you provide:

FieldDescription
Start Date

Any data before this date will not be fetched.

Tables and columns synced from 7shifts

Kaivo syncs 12 tables from 7shifts 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.
user_idFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: assignments__departments

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.
appear_on_scheduleBOOL
company_idFLOAT64
idFLOAT64
location_idFLOAT64
nameSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: assignments__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.
citySTRING
company_idFLOAT64
countrySTRING
formatted_addressSTRING
hashSTRING
idFLOAT64
nameSTRING
stateSTRING
timezoneSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: assignments__roles

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.
company_idFLOAT64
department_idFLOAT64
idFLOAT64
is_primaryBOOL
location_idFLOAT64
nameSTRING
skill_levelFLOAT64
sortFLOAT64
_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
countrySTRING
createdSTRING
days_to_expireFLOAT64
expiresSTRING
idFLOAT64
meta__ai_importer_invokedBOOL
meta__buy_nowBOOL
meta__declared_number_of_locationsSTRING
meta__employee_count_rangeSTRING
meta__icp_segmentSTRING
meta__onboarding_completeBOOL
meta__signup_content_sourceSTRING
meta__signup_utm_sourceSTRING
meta__trial_checklist_stored_locallyBOOL
meta__utm_sourceSTRING
modifiedSTRING
nameSTRING
photoSTRING
plan_idSTRING
posSTRING
start_week_onFLOAT64
statusSTRING
trialBOOL
uuidSTRING
_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.
appear_on_scheduleBOOL
department_idFLOAT64
location_idFLOAT64
nameSTRING
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.
company_idFLOAT64
createdSTRING
defaultBOOL
idFLOAT64
location_idFLOAT64
modifiedSTRING
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.
location_idFLOAT64
nameSTRING
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.
auto_send_log_book_timeSTRING
citySTRING
company_idFLOAT64
countrySTRING
createdSTRING
deletedBOOL
department_based_budgetBOOL
formatted_addressSTRING
fri_hours_closeSTRING
fri_hours_openSTRING
hashSTRING
holiday_payBOOL
idFLOAT64
mapping_idSTRING
messageSTRING
modifiedSTRING
mon_hours_closeSTRING
mon_hours_openSTRING
nameSTRING
sat_hours_closeSTRING
sat_hours_openSTRING
shift_feedbackBOOL
stateSTRING
sun_hours_closeSTRING
sun_hours_openSTRING
thu_hours_closeSTRING
thu_hours_openSTRING
timezoneSTRING
timezone_updatedBOOL
tue_hours_closeSTRING
tue_hours_openSTRING
wed_hours_closeSTRING
wed_hours_openSTRING
_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.
department_idFLOAT64
is_primaryBOOL
location_idFLOAT64
nameSTRING
role_idFLOAT64
skill_levelFLOAT64
sortFLOAT64
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.
colorSTRING
company_idFLOAT64
createdSTRING
department_idFLOAT64
idFLOAT64
is_tipped_roleBOOL
location_idFLOAT64
modifiedSTRING
nameSTRING
num_stationsFLOAT64
sortFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: roles__stations

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.
attendance_statusSTRING
business_declineBOOL
closeBOOL
company_idFLOAT64
createdSTRING
deletedBOOL
department_idFLOAT64
draftBOOL
endSTRING
hourly_wageFLOAT64
idFLOAT64
late_minutesFLOAT64
location_idFLOAT64
modifiedSTRING
notesSTRING
notifiedBOOL
openBOOL
open_offer_typeSTRING
publish_statusSTRING
role_idFLOAT64
startSTRING
stationFLOAT64
station_idFLOAT64
station_nameSTRING
unassignedBOOL
unassigned_skill_levelFLOAT64
user_idFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: shifts__breaks

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.
approvedBOOL
auto_clocked_outBOOL
clocked_inSTRING
clocked_in_offlineBOOL
clocked_out_offlineBOOL
company_idFLOAT64
createdSTRING
deletedBOOL
department_idFLOAT64
editable_punchBOOL
hourly_wageFLOAT64
idFLOAT64
location_idFLOAT64
modifiedSTRING
notesSTRING
pos_typeSTRING
role_idFLOAT64
shift_idFLOAT64
tipsFLOAT64
user_idFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: time_punches__breaks

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.
typeSTRING
activeBOOL
addressSTRING
appear_as_employeeBOOL
citySTRING
company_idFLOAT64
createdSTRING
emailSTRING
employee_idSTRING
first_nameSTRING
home_numberSTRING
hourly_wageFLOAT64
idFLOAT64
identity_idFLOAT64
invite_statusSTRING
is_newBOOL
languageSTRING
last_loginSTRING
last_nameSTRING
max_weekly_hoursSTRING
mobile_numberSTRING
modifiedSTRING
notesSTRING
onboarding_requiredBOOL
permissions_template_idFLOAT64
photoSTRING
postal_zipSTRING
preferred_first_nameSTRING
preferred_last_nameSTRING
prov_stateSTRING
punch_idSTRING
pushBOOL
skill_levelFLOAT64
subscribe_to_updatesBOOL
wage_typeSTRING
_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.
user_idFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: wages__current_wages

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.
createdSTRING
effective_dateSTRING
idFLOAT64
modifiedSTRING
wage_centsFLOAT64
wage_typeSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: wages__upcoming_wages

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.
createdSTRING
effective_dateSTRING
idFLOAT64
modifiedSTRING
wage_centsFLOAT64
wage_typeSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the 7shifts sync works

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

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

Common use cases for 7shifts data

Labour cost tracking

Join shifts and wages by location and role to see scheduled labour cost and compare it against your sales.

Hours and overtime

Use time_punches against scheduled shifts to spot overtime, late clock-ins, and gaps between planned and actual hours.

Staffing by location

Break down assignments and shifts by location and department to see where you are over or understaffed.

Team reporting

Combine users, roles, and departments to report on headcount and staffing mix across the business.

Use 7shifts data in your AI and BI tools

Once 7shifts 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 7shifts 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 7shifts connector pricing and plan details.

Was this helpful?

Still need help? Share an idea