Skip to content
Book a demoStart free
Connectors

7shifts connector

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

7shifts connector pricing, tier and credits on kaivo.io

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.

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

Section titled “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.

Authenticate with your Access Token.

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

|

When you set up the connector, you provide:

Field Description
Start Date
Any data before this date will not be fetched.

|

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

assignments (3 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
user_id FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
appear_on_schedule BOOL
company_id FLOAT64
id FLOAT64
location_id FLOAT64
name STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
city STRING
company_id FLOAT64
country STRING
formatted_address STRING
hash STRING
id FLOAT64
name STRING
state STRING
timezone STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
company_id FLOAT64
department_id FLOAT64
id FLOAT64
is_primary BOOL
location_id FLOAT64
name STRING
skill_level FLOAT64
sort FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
companies (27 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
active BOOL
country STRING
created STRING
days_to_expire FLOAT64
expires STRING
id FLOAT64
meta__ai_importer_invoked BOOL
meta__buy_now BOOL
meta__declared_number_of_locations STRING
meta__employee_count_range STRING
meta__icp_segment STRING
meta__onboarding_complete BOOL
meta__signup_content_source STRING
meta__signup_utm_source STRING
meta__trial_checklist_stored_locally BOOL
meta__utm_source STRING
modified STRING
name STRING
photo STRING
plan_id STRING
pos STRING
start_week_on FLOAT64
status STRING
trial BOOL
uuid STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
department_assignments (7 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
appear_on_schedule BOOL
department_id FLOAT64
location_id FLOAT64
name STRING
user_id FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
departments (9 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
company_id FLOAT64
created STRING
default BOOL
id FLOAT64
location_id FLOAT64
modified STRING
name STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
location_assignments (5 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
location_id FLOAT64
name STRING
user_id FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
locations (35 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
auto_send_log_book_time STRING
city STRING
company_id FLOAT64
country STRING
created STRING
deleted BOOL
department_based_budget BOOL
formatted_address STRING
fri_hours_close STRING
fri_hours_open STRING
hash STRING
holiday_pay BOOL
id FLOAT64
mapping_id STRING
message STRING
modified STRING
mon_hours_close STRING
mon_hours_open STRING
name STRING
sat_hours_close STRING
sat_hours_open STRING
shift_feedback BOOL
state STRING
sun_hours_close STRING
sun_hours_open STRING
thu_hours_close STRING
thu_hours_open STRING
timezone STRING
timezone_updated BOOL
tue_hours_close STRING
tue_hours_open STRING
wed_hours_close STRING
wed_hours_open STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
role_assignments (10 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
department_id FLOAT64
is_primary BOOL
location_id FLOAT64
name STRING
role_id FLOAT64
skill_level FLOAT64
sort FLOAT64
user_id FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
roles (13 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
color STRING
company_id FLOAT64
created STRING
department_id FLOAT64
id FLOAT64
is_tipped_role BOOL
location_id FLOAT64
modified STRING
name STRING
num_stations FLOAT64
sort FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value JSON
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
shifts (29 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
attendance_status STRING
business_decline BOOL
close BOOL
company_id FLOAT64
created STRING
deleted BOOL
department_id FLOAT64
draft BOOL
end STRING
hourly_wage FLOAT64
id FLOAT64
late_minutes FLOAT64
location_id FLOAT64
modified STRING
notes STRING
notified BOOL
open BOOL
open_offer_type STRING
publish_status STRING
role_id FLOAT64
start STRING
station FLOAT64
station_id FLOAT64
station_name STRING
unassigned BOOL
unassigned_skill_level FLOAT64
user_id FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value JSON
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
time_punches (22 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
approved BOOL
auto_clocked_out BOOL
clocked_in STRING
clocked_in_offline BOOL
clocked_out_offline BOOL
company_id FLOAT64
created STRING
deleted BOOL
department_id FLOAT64
editable_punch BOOL
hourly_wage FLOAT64
id FLOAT64
location_id FLOAT64
modified STRING
notes STRING
pos_type STRING
role_id FLOAT64
shift_id FLOAT64
tips FLOAT64
user_id FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value JSON
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
users (37 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
type STRING
active BOOL
address STRING
appear_as_employee BOOL
city STRING
company_id FLOAT64
created STRING
email STRING
employee_id STRING
first_name STRING
home_number STRING
hourly_wage FLOAT64
id FLOAT64
identity_id FLOAT64
invite_status STRING
is_new BOOL
language STRING
last_login STRING
last_name STRING
max_weekly_hours STRING
mobile_number STRING
modified STRING
notes STRING
onboarding_required BOOL
permissions_template_id FLOAT64
photo STRING
postal_zip STRING
preferred_first_name STRING
preferred_last_name STRING
prov_state STRING
punch_id STRING
push BOOL
skill_level FLOAT64
subscribe_to_updates BOOL
wage_type STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
wages (3 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
user_id FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
created STRING
effective_date STRING
id FLOAT64
modified STRING
wage_cents FLOAT64
wage_type STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
created STRING
effective_date STRING
id FLOAT64
modified STRING
wage_cents FLOAT64
wage_type STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

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.

How long does the initial sync take for 7shifts?

Section titled “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.

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?

Section titled “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?

Section titled “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.

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

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

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

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

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.

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

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

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

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

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

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

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

See our pricing page for 7shifts connector pricing and plan details.