Skip to content

HRIS

7shifts
API integration

Ship HRIS features without building the integration. Full 7shifts API access via Proxy and 140+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Talk to us
7shifts

Use Cases

Why integrate with 7shifts

Common scenarios for SaaS companies building 7shifts integrations for their customers.

01

Sync new hires from your ATS into 7shifts

Applicant tracking and onboarding platforms can push hired candidates directly into 7shifts as users with the right role, wage, and location assignments, so restaurant managers can schedule them the same day without duplicate data entry.

02

Power Earned Wage Access with verified shift data

EWA and on-demand pay providers can pull time punches, wages, and payroll periods from 7shifts to calculate exactly how much an hourly restaurant worker has earned after each clock-out and safely advance a portion of it.

03

Distribute pooled tips through a digital payout platform

Cashless tipping and gratuity apps can read detailed tip pool reports and time punches from 7shifts, then write manual tip pool entries back so payouts stay reconciled with the source of truth used by the restaurant.

04

Feed POS sales into labor forecasting

POS systems and middleware can push actual and projected sales into 7shifts as receipts and forecast overrides, giving operators accurate sales-per-labor-hour forecasts and real-time labor variance without manual entry.

05

Embed shift context into restaurant ops software

Checklist, food safety, and daily ops apps can check who is scheduled and clocked in, then post end-of-day summaries directly into the 7shifts manager log book where GMs already work.

What You Can Build

Ship these features with Truto + 7shifts

Concrete product features your team can ship faster by leveraging Truto’s 7shifts integration instead of building from scratch.

01

Bulk employee onboarding

Provision new restaurant staff into 7shifts in a single call using bulk user creation, then attach wages, role assignments, and employment records automatically.

02

Real-time time punch listener

Register 7shifts webhooks to react instantly to clock-ins, clock-outs, and shift publishes, and hydrate each event with the full time punch and user wage record.

03

Payroll-ready timesheet export

Pull approved time punches by payroll period and combine them with wage history to generate finalized, payroll-ready timesheets for each location.

04

Sales and labor analytics dashboard

Surface daily sales, projected vs. actual labor minutes, and hours-and-wages breakdowns from the 7shifts analytics endpoints inside your own BI or franchise reporting UI.

05

Tip pool reconciliation view

Render detailed and summary tip pool reports per shift, and let managers correct allocations by pushing bulk updates to manual tip pool entries.

06

Identity mapping layer

Keep your platform's user IDs in sync with 7shifts users via external user mappings, so payouts, messages, and events resolve to the right employee across systems.

SuperAI

7shifts AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_7_shifts_whoami

Retrieve the authenticated 7shifts user's identity and associated user accounts across companies. Returns: identity_id, users.

7_shifts_partner_company_create_trial_account

Create a trial 7shifts company with The Works plan, a single location, and one administrator who receives an invitation email to complete setup. Returns: company_id, location_id, user_id, company_grant_guid. Required: email, firstname, lastname, company_name, country, utm_source. The country field accepts only CA or US; set create_company_grant to true to obtain a company grant GUID in the…

list_all_7_shifts_companies

List 7shifts companies, optionally filtered by modification date. Returns: id, name, country, photo, plan_id, created, modified, expires, days_to_expire, converted, pos, status, start_week_on, meta, uuid. Optional: modified_since (YYYY-MM-DD).

get_single_7_shifts_company_by_id

Get a single 7shifts company by id. Returns: id, name, uuid, country, photo, plan_id, created, modified, expires, days_to_expire, converted, pos, status, start_week_on, meta. Required: id.

update_a_7_shifts_company_by_id

Update a 7shifts company by id with optional name, country, photo, or pos changes. Returns the full company object including id, name, country, status, plan_id, created, modified, and meta. Required: id.

list_all_7_shifts_company_labor_settings

Retrieve labor settings for a 7shifts company, including overtime thresholds, auto-break configuration, and jurisdiction details. Returns: company_id, consecutive_days_threshold, consecutive_days_multiplier, regular_rate_of_pay_enabled, exception_cost_enabled, overtime_by_location_enabled, auto_break_enabled, auto_break_hours, auto_break_minutes, auto_break_hours_2, auto_break_minutes_2,…

list_all_7_shifts_company_inactive_reasons

List inactive reason enum values for a 7shifts company. Returns: an array of string enum values such as rude_to_customers, no_show_late, quit, theft, substance_abuse, and voluntary_resignation. Required: company_id.

list_all_7_shifts_locations

List 7shifts locations for a company. Returns: id, company_id, name, country, state, city, formatted_address, lat, lng, place_id, timezone, timezone_updated, hash, mapping_id, department_based_budget, holiday_pay, auto_send_log_book_time, mon_hours_close, tue_hours_close, wed_hours_close, thu_hours_close, fri_hours_close, sat_hours_close, sun_hours_close, mon_hours_open, tue_hours_open,…

create_a_7_shifts_location

Create a new 7shifts location in a company. Returns the created location object including id, name, country, timezone, formatted_address, and daily operating hours. Required: company_id, name, country.

get_single_7_shifts_location_by_id

Get a single 7shifts location by id. Returns: id, company_id, name, country, state, city, formatted_address, lat, lng, place_id, timezone, timezone_updated, hash, mapping_id, department_based_budget, holiday_pay, auto_send_log_book_time, mon_hours_close, tue_hours_close, wed_hours_close, thu_hours_close, fri_hours_close, sat_hours_close, sun_hours_close, mon_hours_open, tue_hours_open,…

update_a_7_shifts_location_by_id

Update an existing 7shifts location by id. Returns the updated location object including id, name, country, timezone, formatted_address, and daily operating hours. Required: company_id, id.

delete_a_7_shifts_location_by_id

Delete a 7shifts location by id. Returns an empty 204 response on success. Required: company_id, id.

list_all_7_shifts_departments

List 7shifts departments for a company, optionally filtered by location or modification date. Returns: id, company_id, location_id, name, deleted, created, modified. Required: company_id.

create_a_7_shifts_department

Create a new 7shifts department in a company. Returns: id, company_id, location_id, name, deleted, created, modified. Required: company_id, location_id, name, default.

get_single_7_shifts_department_by_id

Get a single 7shifts department by id. Returns: id, company_id, location_id, name, deleted, created, modified. Required: company_id, id.

update_a_7_shifts_department_by_id

Update a 7shifts department by id. Returns: id, company_id, location_id, name, deleted, created, modified. Required: company_id, id, name, default.

delete_a_7_shifts_department_by_id

Delete a 7shifts department by id. Optionally transfer roles and shifts to another department via transfer_to. Returns an empty 204 response on success. Required: company_id, id.

list_all_7_shifts_roles

List 7shifts roles for a company, optionally filtered by location, department, or role IDs. Returns: id, company_id, location_id, department_id, color, num_stations, name, job_code, sort, stations, created, modified. Required: company_id.

create_a_7_shifts_role

Create a new 7shifts role in a company. Returns the created role including id, name, color, company_id, location_id, department_id, stations, and created. Required: company_id, name, color, location_id, department_id.

get_single_7_shifts_role_by_id

Get a single 7shifts role by id. Returns: id, company_id, location_id, department_id, color, num_stations, name, job_code, sort, stations, created, modified. Required: company_id, id.

update_a_7_shifts_role_by_id

Update a 7shifts role by id, modifying attributes such as name, color, stations, and sort order. Returns: id, company_id, location_id, department_id, color, num_stations, name, job_code, sort, stations, created, modified. Required: company_id, id.

delete_a_7_shifts_role_by_id

Delete a 7shifts role by id. Returns an empty 204 response on success. Required: company_id, id.

list_all_7_shifts_users

List users in a 7shifts company. Returns each user record with id, first_name, last_name, email, type, active, invite_status, last_login, hire_date, timezone, skill_level, wage_type, and notification preferences. Required: company_id.

create_a_7_shifts_user

Create a new user in a 7shifts company. Returns the created user object including id, first_name, last_name, email, type, and active. Required: company_id, first_name, last_name, location_ids, department_ids, type.

get_single_7_shifts_user_by_id

Get a single 7shifts user by id. Returns the full user object including id, first_name, last_name, email, type, active, invite_status, last_login, hire_date, timezone, skill_level, wage_type, and notification preferences. Required: company_id, id.

update_a_7_shifts_user_by_id

Update a 7shifts user's profile, contact details, employment settings, and notification preferences. Returns the updated user object including id, first_name, last_name, email, type, and active status. Required: company_id, id.

7_shifts_users_deactivate

Deactivate a 7shifts user by marking them inactive, with optional reason and rehire-eligibility details. Returns an empty 204 response on success. Required: company_id, user_id.

7_shifts_users_bulk_create

Bulk create up to 250 users for a 7shifts company in a single request. Returns an array of created user objects with id, first_name, last_name, email, type, and active. Required: company_id and a body array where each item requires first_name, last_name, location_ids, department_ids, and type. Maximum 250 users per request.

list_all_7_shifts_user_authorized_locations

List authorized locations for a 7shifts user within a company. Returns: id, company_id, name, country, state, city, formatted_address, lat, lng, place_id, timezone, timezone_updated, hash, mapping_id, department_based_budget, holiday_pay, auto_send_log_book_time, sun_hours_close, mon_hours_close, tue_hours_close, wed_hours_close, thu_hours_close, fri_hours_close, sat_hours_close, sun_hours_open,…

list_all_7_shifts_contacts

List user contacts for a 7shifts company. Returns: id, company_id, first_name, last_name, pronouns, photo, mobile_phone, home_phone, email, type. Required: company_id. Max 100 per page.

get_single_7_shifts_contact_by_id

Get a single user contact from a 7shifts company by id. The id accepts a 7shifts user id or a 7punches id prefixed with punch:. Returns: id, company_id, first_name, last_name, pronouns, photo, mobile_phone, home_phone, email, type. Required: company_id, id.

list_all_7_shifts_user_wages

List current and upcoming wages for a 7shifts user. Returns: wage_type, current_wages, upcoming_wages. Required: company_id, user_id.

create_a_7_shifts_user_wage

Create a new wage for a 7shifts user. Returns: id, effective_date, role_id, wage_type, wage_cents, enabled_days, allocations, created, modified. Required: company_id, user_id, effective_date, wage_type, wage_cents.

list_all_7_shifts_assignments

List a 7shifts user's assignments across locations, departments, and roles within a company. Returns: locations, departments, roles. Required: company_id, user_id. Minimum plan: Entrée.

list_all_7_shifts_location_assignments

List location assignments for a specific 7shifts user within a company. Returns: location_id, name. Required: company_id, user_id.

create_a_7_shifts_location_assignment

Create a location assignment for a 7shifts user by assigning a location to them. Returns: location_id, name. Required: company_id, user_id, location_id.

delete_a_7_shifts_location_assignment_by_id

Delete a location assignment from a 7shifts user by id. Returns an empty 204 response on success. Required: company_id, user_id, id.

list_all_7_shifts_department_assignments

List department assignments for a specific 7shifts user within a company. Returns: department_id, name, location_id, appear_on_schedule. Required: company_id, user_id.

create_a_7_shifts_department_assignment

Create a department assignment for a 7shifts user, assigning them to a department within a company. Returns: department_id, name, location_id, appear_on_schedule. Required: company_id, user_id, department_id.

delete_a_7_shifts_department_assignment_by_id

Delete a department assignment for a 7shifts user by id. Returns an empty 204 response on success. Required: company_id, user_id, id.

list_all_7_shifts_role_assignments

List role assignments for a 7shifts user within a company. Returns: role_id, company_id, location_id, department_id, name, is_primary, skill_level, sort, locations, departments, roles. Required: company_id, user_id.

create_a_7_shifts_role_assignment

Create a role assignment for a 7shifts user, assigning a role and optionally marking it as primary. Returns: role_id, location_id, department_id, name, is_primary, skill_level, sort, company_id. Required: company_id, user_id, role_id.

delete_a_7_shifts_role_assignment_by_id

Delete a role assignment for a 7shifts user by id. Returns an empty 204 response on success. Required: company_id, user_id, id.

update_a_7_shifts_role_assignment_by_id

Update a role assignment for a 7shifts user, modifying skill level, sort order, or primary status. Returns: role_id, company_id, location_id, department_id, name, is_primary, skill_level, sort. Required: company_id, user_id, id.

7_shifts_role_assignments_bulk_create

Create multiple role assignments in 7shifts in a single batch request. Returns an object with user_roles (created assignments including role_id, name, is_primary, skill_level, sort) and exceptions (failed assignments with user_id and reason). Required: company_id, and each body item must include role_id and user_id.

list_all_7_shifts_employment_records

List employment records for users in a 7shifts company, optionally filtered by a single user, multiple users, or business entity. Returns: uuid, company_id, user_id, hire_date, termination_date, classification, locked, business_entity_uuid. Required: company_id.

create_a_7_shifts_employment_record

Create a new employment record for a user in 7shifts. Returns: uuid, company_id, user_id, hire_date, termination_date, classification, locked, business_entity_uuid. Required: company_id, user_id.

update_a_7_shifts_employment_record_by_id

Update a 7shifts employment record by id. Returns: uuid, company_id, user_id, hire_date, termination_date, classification, locked, business_entity_uuid. Required: company_id, id.

delete_a_7_shifts_employment_record_by_id

Delete a 7shifts employment record by id. Returns an empty 204 response on success. Required: company_id, id.

7_shifts_employment_records_bulk_upsert

Bulk create and update employment records in 7shifts in a single request. Returns an array of employment records with uuid, company_id, user_id, hire_date, termination_date, classification, locked, business_entity_uuid. Required: company_id, records.

list_all_7_shifts_shifts

List shifts for a 7shifts company, filterable by location, department, role, user, and date range. Returns: id, user_id, department_id, location_id, company_id, role_id, station, station_name, station_id, start, end, close, business_decline, hourly_wage, notes, draft, notified, open, unassigned, unassigned_skill_level, open_offer_type, publish_status, attendance_status, custom_flag, late_minutes,…

create_a_7_shifts_shift

Create a new shift in 7shifts with location, start/end times, and optional breaks, open-shift, and job-network settings. Returns: id, user_id, department_id, location_id, company_id, role_id, station, station_name, station_id, start, end, close, business_decline, hourly_wage, notes, draft, notified, open, unassigned, unassigned_skill_level, open_offer_type, publish_status, attendance_status,…

get_single_7_shifts_shift_by_id

Retrieve a specific 7shifts shift by id. Returns: id, user_id, department_id, location_id, company_id, role_id, station, station_name, station_id, start, end, close, business_decline, hourly_wage, notes, draft, notified, open, unassigned, unassigned_skill_level, open_offer_type, publish_status, attendance_status, custom_flag, late_minutes, created, modified, soft_deleted, deleted, breaks.…

update_a_7_shifts_shift_by_id

Update a 7shifts shift by id with location, user, role, start/end times, breaks, and status. Returns: id, user_id, department_id, location_id, company_id, role_id, station, station_name, station_id, start, end, close, business_decline, hourly_wage, notes, draft, notified, open, unassigned, unassigned_skill_level, open_offer_type, publish_status, attendance_status, custom_flag, late_minutes,…

delete_a_7_shifts_shift_by_id

Delete a 7shifts shift by id. Returns an empty 204 response on success. Required: company_id, id.

list_all_7_shifts_scheduled_shifts

List scheduled shifts for a user in 7shifts to verify schedule enforcement. The shift_id accepts a user_id or a punch_id: prefix. Returns: id, location_id, user_id, department_id, role_id, station_id, station_name, start, end, close, business_decline, notes, publish_status, open, attendance_status, company_id. Required: company_id, shift_id, location_id.

list_all_7_shifts_time_punches

List 7shifts time punches for a company, with optional filters by location, department, role, user, approval status, date ranges, and flags. Returns: id, company_id, shift_id, user_id, editable_punch, role_id, location_id, department_id, hourly_wage, approved, clocked_in, clocked_out, notes, auto_clocked_out, clocked_in_offline, clocked_out_offline, tips, pos_type, breaks, created, modified,…

create_a_7_shifts_time_punch

Create a 7shifts time punch for a specific company, recording a user's clock-in and clock-out times along with optional breaks and tips. Returns: id, company_id, shift_id, user_id, editable_punch, role_id, location_id, department_id, hourly_wage, approved, clocked_in, clocked_out, notes, auto_clocked_out, clocked_in_offline, clocked_out_offline, tips, pos_type, breaks, created, modified, deleted.…

get_single_7_shifts_time_punch_by_id

Get a single 7shifts time punch by id. Returns: id, company_id, shift_id, user_id, editable_punch, role_id, location_id, department_id, hourly_wage, approved, clocked_in, clocked_out, notes, auto_clocked_out, clocked_in_offline, clocked_out_offline, tips, pos_type, breaks, created, modified, deleted. Required: company_id, id.

update_a_7_shifts_time_punch_by_id

Update a 7shifts time punch by id. Breaks must always be included in their correct state — omitting an existing break from the payload deletes it. Returns: id, company_id, shift_id, user_id, editable_punch, role_id, location_id, department_id, hourly_wage, approved, clocked_in, clocked_out, notes, auto_clocked_out, clocked_in_offline, clocked_out_offline, tips, pos_type, breaks, created,…

delete_a_7_shifts_time_punch_by_id

Delete a 7shifts time punch by id. Returns an empty 204 response on success. Required: company_id, id.

list_all_7_shifts_payroll_periods

List payroll periods in 7shifts. Returns each period's id, company_id, start, end, closed, finalized, states with per-location close status, all_punches_approved, employee_punch_approvals, created, and modified. Required: company_id.

get_single_7_shifts_payroll_period_by_id

Get a single 7shifts payroll period by id. Returns: id, company_id, closed, start, end, states, current_wages, upcoming_wages. Required: company_id, id.

list_all_7_shifts_receipts

List 7shifts sales receipts for a company, filterable by location, date range, status, and external user. Returns: id, company_id, location_id, pos_id, receipt_id, receipt_date, receipt_close_date, net_total, gross_total, tips, total_receipt_discounts, total_item_discounts, external_user_id, revenue_center, receipt_lines, tip_details, status, created_date, modified_date. Required: company_id,…

create_a_7_shifts_receipt

Create a new sales receipt in 7shifts with line items and tip details. Returns: uuid, id, company_id, location_id, pos_id, receipt_id, receipt_date, net_total, gross_total, tips, total_receipt_discounts, total_item_discounts, receipt_lines, tip_details, status, created_date, modified_date, external_user_id, revenue_center. Required: company_id, receipt_id, location_id, receipt_date, net_total,…

get_single_7_shifts_receipt_by_id

Get a single 7shifts sales receipt by id. Returns: id, company_id, location_id, pos_id, receipt_id, receipt_date, receipt_close_date, net_total, gross_total, tips, total_receipt_discounts, total_item_discounts, external_user_id, revenue_center, receipt_lines, tip_details, status, created_date, modified_date. Required: company_id, id.

update_a_7_shifts_receipt_by_id

Update an existing 7shifts sales receipt by id. Returns: uuid, receipt_id, id, company_id, location_id, pos_id, receipt_date, net_total, gross_total, tips, total_receipt_discounts, total_item_discounts, receipt_lines, tip_details, status, created_date, modified_date, external_user_id, revenue_center. Required: company_id, id, net_total.

7_shifts_receipts_get_summary

Retrieve a daily summary of 7shifts receipts grouped by date and status. Returns: date, closed. Required: company_id, location_id. Date range limited to 31 days; modified_since limited to 30 days and overrides date range filters.

list_all_7_shifts_external_user_mappings

List external user mappings for a 7shifts company, with optional filters by location, user, external user, or modification date. Returns: id, created, modified, current_wages, upcoming_wages. Required: company_id. Max 100 per page.

create_a_7_shifts_external_user_mapping

Create a new external user mapping in 7shifts by linking a 7shifts user to an external system user. Returns: id, user_id, external_user_id, company_id, location_id, application_name, created, modified, user_active. Required: company_id, user_id, external_user_id.

get_single_7_shifts_external_user_mapping_by_id

Get a single external user mapping in 7shifts by id. The id accepts a 7shifts user id or an external user id prefixed with ext:. Returns: id, user_id, external_user_id, company_id, location_id, application_name, created, modified, user_active, identity_id, first_name, last_name, preferred_first_name, preferred_last_name, email, mobile_number, home_number, address, postal_zip, city, prov_state,…

update_a_7_shifts_external_user_mapping_by_id

Update an external user mapping in 7shifts by id. The id accepts a 7shifts user id or an external user id prefixed with ext:. Returns: id, user_id, external_user_id, company_id, location_id, application_name, created, modified, user_active. Required: company_id, id.

delete_a_7_shifts_external_user_mapping_by_id

Delete an external user mapping in 7shifts by id. The id accepts a 7shifts user id, an external user id prefixed with ext:, or an email address prefixed with email:. Returns an empty 204 response on success. Required: company_id, id.

7_shifts_external_user_mappings_bulk_create

Bulk create external user mappings in 7shifts for a company by submitting an array of up to 100 records, each keyed by an external_user_id. Returns: mapped (successfully paired external_user_id and user_id), exceptions (unmapped entries with external_user_id and reason). Required: company_id, data. Max 100 items per request.

list_all_7_shifts_events

List 7shifts schedule events for a company within a date range. Returns: id, location_ids, color, start_date, start_time, end_time, end_date, title, description, is_multi_day, event_type, recurrence. Required: company_id, start_date, end_date.

create_a_7_shifts_event

Create a new schedule event in 7shifts for a company. Returns the created event object including id, title, start_date, end_date, event_type, and location_ids. Required: company_id, location_ids, start_date, start_time, end_time, end_date, title, is_multi_day.

get_single_7_shifts_event_by_id

Get a single 7shifts schedule event by id. Returns: id, location_ids, color, start_date, start_time, end_time, end_date, title, description, is_multi_day, event_type, recurrence. Required: company_id, id.

update_a_7_shifts_event_by_id

Update an existing 7shifts schedule event by id. Returns the updated event object including id, title, start_date, end_date, event_type, and location_ids. Required: company_id, id, location_ids, start_date, start_time, end_time, end_date, title, is_multi_day.

delete_a_7_shifts_event_by_id

Delete a 7shifts schedule event by id, with optional recurrence targeting to delete only the current or future occurrences. Returns: id, location_ids, color, start_date, start_time, end_time, end_date, title, description, is_multi_day, event_type, recurrence. Required: company_id, id.

list_all_7_shifts_log_book_categories

List log book categories for a 7shifts company. Returns: id, company_id, name, col, sort, field_type, notify, required, created, uuid. Required: company_id.

create_a_7_shifts_log_book_category

Create a log book category in 7shifts. Returns the created category including id, name, field_type, notify, required, created, and uuid. Required: company_id, name.

update_a_7_shifts_log_book_category_by_id

Update a 7shifts log book category by id. Returns the updated category including id, name, field_type, notify, required, created, and uuid. Required: company_id, id. At least one body property must be supplied; field_type is deprecated and cannot be changed after creation.

delete_a_7_shifts_log_book_category_by_id

Delete a 7shifts log book category by id. Returns an empty 204 response on success. Required: company_id, id.

list_all_7_shifts_log_book_posts

List 7shifts log book posts for a company, filterable by location, category, user, date range, and message content. Returns: id, uuid, location_id, user_id, log_book_category_id, date, message, attachments, log_book_comment_count, created, company_id. Required: company_id.

create_a_7_shifts_log_book_post

Create a new log book post in 7shifts for a company. Returns the created post including id, uuid, location_id, date, message, attachments, log_book_comment_count, and created. Required: company_id, location_id, log_book_category_id, date, message.

get_single_7_shifts_log_book_post_by_id

Get a single 7shifts log book post by id. Returns: id, company_id, identity_id, users. Required: company_id, id.

delete_a_7_shifts_log_book_post_by_id

Delete a 7shifts log book post by id. Returns an empty 204 response on success. Required: company_id, id.

list_all_7_shifts_log_book_comments

List log book comments for a specific log book post in 7shifts. Returns: id, uuid, log_book_id, user_id, message, created, company_id. Required: company_id, log_book_post_id.

create_a_7_shifts_log_book_comment

Create a new comment on a log book post in 7shifts. Returns: id. Required: company_id, log_book_post_id, log_book_id, message. Message max length is 100000 characters.

get_single_7_shifts_log_book_comment_by_id

Get a single log book comment by id in 7shifts. Returns: id, uuid, log_book_id, user_id, message, created, company_id. Required: company_id, log_book_post_id, id.

delete_a_7_shifts_log_book_comment_by_id

Delete a log book comment by id in 7shifts. Returns an empty 204 response on success. Required: company_id, log_book_post_id, id.

list_all_7_shifts_task_management_settings

Retrieve task management settings for a 7shifts company. Returns: id, company_id, enabled, prompted_auto_assign_ids, has_created_list, can_use_task_management, employee_login, employee_reminder, overdue_alert. Required: company_id.

create_a_7_shifts_task_tag

Create task tags in 7shifts by assigning users to tasks. Returns an empty 204 response on success. Required: company_id, tags (each tag requires user_id and task_id).

delete_a_7_shifts_task_tag_by_id

Delete a task tag in 7shifts by id. Returns an empty 204 response on success. Required: company_id, id.

list_all_7_shifts_task_list_templates

List 7shifts task list templates for a company, optionally filtered by location, department, or role. Returns: id, company_id, uuid, title, description, status, due, created, activated_at, task_templates, assignments, recurrence, time_frame. Required: company_id.

create_a_7_shifts_task_list_template

Create a new 7shifts task list template with tasks, assignments, and recurrence rules. Returns: id, company_id, uuid, title, description, status, due, created, activated_at, task_templates, assignments, recurrence, time_frame. Required: company_id, title, recurrence, assignments.

get_single_7_shifts_task_list_template_by_id

Get a single 7shifts task list template by id. Returns: id, company_id, uuid, title, description, status, due, created, activated_at, task_templates, assignments, recurrence, time_frame. Required: company_id, id.

delete_a_7_shifts_task_list_template_by_id

Delete a 7shifts task list template by id. Returns an empty 204 response on success. Required: company_id, id.

update_a_7_shifts_task_list_template_by_id

Update a 7shifts task list template's title, description, status, tasks, assignments, recurrence, due date, or time frame. Returns: id, company_id, uuid, title, description, status, due, created, activated_at, task_templates, assignments, recurrence, time_frame. Required: company_id, id.

list_all_7_shifts_task_lists

List task lists for a company in 7shifts, optionally filtered by user, location, template UUID, or active date. Returns: id, task_list_template_uuid, title, description, start, due, due_date, tasks, recurrence, assignments, time_frame, name, uuid, country, photo, plan_id, created, modified, expires, days_to_expire, pos, status, start_week_on, meta. Required: company_id.

get_single_7_shifts_task_list_by_id

Get a single task list by id in 7shifts. Returns: id, task_list_template_uuid, title, description, start, due, due_date, tasks, recurrence, assignments, time_frame. Required: company_id, id.

7_shifts_task_lists_get_daily_summary

Get a daily summary of task list completion for a specific location and date in 7shifts. Returns: total_completed_percentage, total_in_progress_percentage, total_incomplete_percentage, report_time, date, has_recent_task_completed, task_lists, id, name, uuid, country, photo, plan_id, created, modified, expires, days_to_expire, pos, status, start_week_on, meta. Required: company_id, location_id,…

7_shifts_tasks_clear

Clear the completion state of a 7shifts task, resetting it to incomplete. Returns: id, task_template_uuid, title, description, user_id, completed_at, tags, task_completion, task_completion_event. Required: company_id, task_id, user_id.

7_shifts_tasks_complete

Complete a 7shifts task, optionally recording a completion value. Returns: id, task_template_uuid, title, description, user_id, completed_at, tags, task_completion, task_completion_event. Required: company_id, task_id, user_id.

7_shifts_analytics_get_hours_and_wages

Retrieve worked hours and wages report for a 7shifts company. Returns: users, show_exception_costs, tip_tracking_enabled, show_tips, total, start, end, company_id, consecutive_days_threshold, consecutive_days_multiplier, regular_rate_of_pay_enabled, exception_cost_enabled, overtime_by_location_enabled, auto_break_enabled, auto_break_hours, auto_break_minutes, auto_break_hours_2,…

7_shifts_analytics_get_daily_sales_and_labor

Retrieve daily sales and labor report for a 7shifts company location. Returns: id, location_id, department_id, actual_items, projected_items, projected_items_override, labor_target, projected_labor_minutes, actual_labor_minutes, actual_ot_minutes, date, actual_sales, projected_sales, projected_sales_override, actual_labor_cost, projected_labor_cost, sales_per_labor_hour,…

7_shifts_analytics_get_daily_stats

Retrieve daily stats for a 7shifts company location including sales, labor, and SPMH summaries with interval breakdowns. Returns: summary, intervals. Required: company_id, location_id, date.

create_a_7_shifts_forecast_override

Create a daily projected forecast override for a 7shifts company and location. Returns: location_id, department_id, date, value, report_type. Required: company_id, location_id, date, value, report_type.

7_shifts_forecast_overrides_sync_interval

Delete and sync an overridden projected sales interval (15-minute or 1-hour) for a 7shifts company and location, restoring the original projection. Returns an empty 204 response on success. Required: company_id, location_id, start, end.

7_shifts_forecast_overrides_create_interval

Create a sales forecast override interval (15-minute or 1-hour) for a 7shifts company and location. Returns an empty 204 response on success. Required: company_id, location_id, start, end, value.

7_shifts_forecast_overrides_bulk_create

Create multiple sales forecast override intervals (15-minute or 1-hour) in bulk for a 7shifts company and location. Returns an empty 204 response on success. Required: company_id, location_id. Max 100 items per request.

7_shifts_forecast_overrides_bulk_create_daily

Create bulk daily projected forecast overrides for a 7shifts location. Returns: forecast_overrides, exceptions. Required: company_id, location_id, data (array of overrides each with date, value, report_type). Minimum plan: The Works.

7_shifts_forecast_overrides_bulk_delete

Delete (sync) daily projected forecast overrides by date range for a 7shifts company and location, restoring the original projection. Returns an empty 204 response on success. Required: company_id, location_id, start_date, report_type.

list_all_7_shifts_tip_pool_settings

List tip pool settings for a 7shifts company. Returns each setting's uuid, company_id, location_id, name, contribution_type, distribution_type, enabled, sales_tip_percentage, tip_pool_stakeholders, tip_pool_contributions, tip_pool_cadence_settings, created, and modified. Required: company_id.

get_single_7_shifts_tip_pool_manual_entry_by_id

Retrieve 7shifts tip pool manual entries for a date range. Returns an array of manual entry records including uuid, tip_pool_settings_uuid, day_part_uuid, entry_date, tip_amount, created, and modified. Required: company_id, id, start_date, end_date.

7_shifts_tip_pool_manual_entries_bulk_update

Update 7shifts tip pool manual entries by submitting an array of manual entry records. Returns the updated array of manual entries including uuid, tip_pool_settings_uuid, entry_date, tip_amount, created, and modified. Required: company_id, tip_pool_settings_uuid, data.

7_shifts_tip_pool_reports_get_summary

Retrieve a 7shifts tip pool summary report for a location over a date range. Returns an array of tip pool entries, each with tip_pool_uuid, tip_pool_name, unassigned_tips, assigned_tips, and total. Required: company_id, location_id, start_date, end_date.

7_shifts_tip_pool_reports_get_detailed

Retrieve a 7shifts tip pool detailed report for a location over a date range with per-date and per-employee tip breakdowns. Returns: location_id, location_name, report_rows, id, user_id, department_id, company_id, role_id, station, station_name, station_id, start, end, close, business_decline, hourly_wage, notes, draft, notified, open, unassigned, unassigned_skill_level, open_offer_type,…

list_all_7_shifts_day_part_settings

List day part settings for a 7shifts company. Returns each day part's uuid, location_id, name, segments (with day_of_week, start_time, end_time), created, and modified. Required: company_id. Provide location_id to filter to a single location; omit it to fetch all day parts for the company.

list_all_7_shifts_availabilities

List 7shifts availabilities for a company, filterable by location, user, status, week, and repeating settings. Returns: id, user_id, company_id, week, week_to, repeat, status, status_action_user_id, status_action_message, mon, mon_from, mon_to, mon_comments, mon_reason, tue, tue_from, tue_to, tue_comments, tue_reason, wed, wed_from, wed_to, wed_comments, wed_reason, thu, thu_from, thu_to,…

create_a_7_shifts_availability

Create a 7shifts availability with per-day settings for all seven days of the week. Returns: id, user_id, company_id, week, week_to, repeat, status, status_action_user_id, status_action_message, mon, mon_from, mon_to, mon_comments, mon_reason, tue, tue_from, tue_to, tue_comments, tue_reason, wed, wed_from, wed_to, wed_comments, wed_reason, thu, thu_from, thu_to, thu_comments, thu_reason, fri,…

get_single_7_shifts_availability_by_id

Get a single 7shifts availability by id. Returns: id, company_id, identity_id, users. Required: company_id, id.

update_a_7_shifts_availability_by_id

Update a 7shifts availability by id, modifying per-day availability settings, week dates, and repeat flag. Returns: id, user_id, company_id, week, week_to, repeat, status, status_action_user_id, status_action_message, mon, mon_from, mon_to, mon_comments, mon_reason, tue, tue_from, tue_to, tue_comments, tue_reason, wed, wed_from, wed_to, wed_comments, wed_reason, thu, thu_from, thu_to,…

delete_a_7_shifts_availability_by_id

Delete a 7shifts availability by id. Returns an empty 204 response on success. Required: company_id, id.

7_shifts_availabilities_bulk_update

Update the status of a 7shifts availability to approved or declined. Returns an empty 204 response on success. Required: company_id, availability_id, status.

list_all_7_shifts_availability_reasons

List availability reasons for a 7shifts company. Returns: id, company_id, reason, comments_required, sort, created, modified. Required: company_id.

create_a_7_shifts_availability_reason

Create a new availability reason for a 7shifts company. Returns: id, company_id, reason, comments_required, sort, created, modified. Required: company_id, reason.

update_a_7_shifts_availability_reason_by_id

Update an existing availability reason in 7shifts. Returns: id, company_id, reason, comments_required, sort, created, modified. Required: company_id, id, reason.

delete_a_7_shifts_availability_reason_by_id

Delete a 7shifts availability reason by id. Returns an empty 204 response on success. Required: company_id, id.

list_all_7_shifts_time_off

List time off requests in 7shifts filtered by company, location, user, status, or category. Returns: id, user_id, company_id, from_date, to_date, partial, partial_from, partial_to, comments, status, status_action_user_id, status_action_message, category, created, amount_of_hours, hours, shift_id, editable_punch, role_id, location_id, department_id, hourly_wage, approved, clocked_in, clocked_out,…

create_a_7_shifts_time_off

Create a new time off request in 7shifts. Returns: id, user_id, company_id, from_date, to_date, partial, partial_from, partial_to, comments, status, status_action_user_id, status_action_message, category, created, amount_of_hours, hours. Required: user_id, company_id, from_date, to_date, partial, status, category.

get_single_7_shifts_time_off_by_id

Get a single time off request in 7shifts by id. Returns: id, user_id, company_id, from_date, to_date, partial, partial_from, partial_to, comments, status, status_action_user_id, status_action_message, category, created, amount_of_hours, hours, shift_id, editable_punch, role_id, location_id, department_id, hourly_wage, approved, clocked_in, clocked_out, notes, auto_clocked_out, clocked_in_offline,…

delete_a_7_shifts_time_off_by_id

Delete a time off request in 7shifts by id. Returns an empty 204 response on success. Required: id.

update_a_7_shifts_time_off_by_id

Update a time off request in 7shifts by id. Returns: id, user_id, company_id, from_date, to_date, partial, partial_from, partial_to, comments, status, status_action_user_id, status_action_message, category, created, amount_of_hours, hours. Required: id.

7_shifts_time_off_approve

Approve a time off request in 7shifts. Returns the full time off object including id, user_id, company_id, from_date, to_date, status, category, amount_of_hours, and a per-date hours breakdown. Required: time_off_id.

7_shifts_time_off_decline

Decline a time off request in 7shifts. Returns the full time off object including id, user_id, company_id, from_date, to_date, status, category, amount_of_hours, and a per-date hours breakdown. Required: time_off_id.

7_shifts_time_off_get_total_hours

Retrieve total time off hours by employee in 7shifts within a date range. Returns an array of objects each with user_id, category, and hours. Required: company_id, employee_id, date_start, date_end.

get_single_7_shifts_time_off_setting_by_id

Get time off settings for a 7shifts company by id. Returns: company_id, time_off_request_comment, time_off_request_notice, categories, consecutive_days_threshold, consecutive_days_multiplier, regular_rate_of_pay_enabled, exception_cost_enabled, overtime_by_location_enabled, auto_break_enabled, auto_break_hours, auto_break_minutes, auto_break_hours_2, auto_break_minutes_2, overtime_enabled,…

create_a_7_shifts_time_off_setting

Create time off settings for a 7shifts company. Returns: company_id, time_off_request_comment, time_off_request_notice, categories. Required: company_id.

list_all_7_shifts_shift_feedback

List shift feedback entries for a 7shifts company within a specified date range. Returns: id, location_id, department_id, role_id, start, end, shift_id, user_id, notified, rating, comments, dismissed, station_name, company_id, station, station_id, close, business_decline, hourly_wage, notes, draft, open, unassigned, unassigned_skill_level, open_offer_type, publish_status, attendance_status,…

get_single_7_shifts_engage_overview_by_id

Get an engagement overview for a 7shifts location by date. Returns: location_stats, employee_stats, engagement_scores, shift_feedback, tenure, id, location_ids, color, start_date, start_time, end_time, end_date, title, is_multi_day, event_type, recurrence. Required: company_id, id, date. Only one of permission_template_id or user_type may be used at a time.

list_all_7_shifts_webhooks

List webhooks for a 7shifts company, optionally filtered by modification date. Returns: id, company_id, url, method, event, created, modified. Required: company_id.

create_a_7_shifts_webhook

Create a webhook in 7shifts for a company to receive event notifications. Returns: id, url. Required: company_id, url, method, event.

update_a_7_shifts_webhook_by_id

Update a 7shifts webhook's URL. Returns: id, company_id, url, method, event, created, modified. Required: company_id, id, url.

delete_a_7_shifts_webhook_by_id

Delete a 7shifts webhook by id. Returns an empty 204 response on success. Required: company_id, id.

7_shifts_webhooks_test

Send a test webhook notification for a 7shifts company to verify webhook delivery. Returns an opaque JSON object containing a sample payload for the specified topic. Required: company_id, topic.

Why Truto

Why use Truto’s MCP server for 7shifts

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with 7shifts in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s 7shifts account

Use Truto’s frontend SDK to connect your customer’s 7shifts account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call 7shifts

Truto’s Proxy API is a 1-to-1 mapping of the 7shifts API. You call us, we call 7shifts, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate 7shifts’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about 7shifts on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication work for the 7shifts integration?

Your end users connect their 7shifts account through Truto's managed auth flow. Truto handles credential storage, refresh, and per-tenant isolation, so you never touch 7shifts API tokens directly in your application.

Which 7shifts objects can I read and write through Truto?

Truto exposes the full set of 7shifts resources needed for HRIS and workforce workflows, including companies, locations, departments, roles, users, wages, employment records, shifts, scheduled shifts, time punches, payroll periods, receipts, forecast overrides, tip pools, availabilities, time off, log book posts, task lists, analytics, and webhooks.

Can I subscribe to real-time events from 7shifts?

Yes. You can create, update, test, and delete 7shifts webhooks through Truto to receive event-driven updates (for example when a shift is published or a time punch is completed) instead of polling.

How do I keep my platform's users aligned with 7shifts users?

Use the external user mapping endpoints to store your internal user IDs against 7shifts user IDs. This lets you resolve identities consistently across payouts, messaging, and analytics without maintaining a mapping table yourself.

Does Truto handle pagination and API quirks for 7shifts?

Yes. Truto normalizes pagination, retries, and error handling across every 7shifts list endpoint, so listing time punches, shifts, or users across large multi-location accounts behaves consistently regardless of underlying cursor behavior.

Can I push sales data into 7shifts for labor forecasting?

Yes. You can create receipts and use the forecast override endpoints, including bulk and interval-level creation, to inject actual and projected sales into 7shifts so operators get accurate labor forecasts down to short intervals.

7shifts

Get 7shifts integrated into your app

Our team understands what it takes to make a 7shifts integration successful. A short, crisp 30 minute call with folks who understand the problem.