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 usUse Cases
Why integrate with 7shifts
Common scenarios for SaaS companies building 7shifts integrations for their customers.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
From the Blog
7shifts integration guides
Deep dives, architecture guides, and practical tutorials for building 7shifts integrations.
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.