
Implementation Guide: Trigger employee scheduling reminders and shift-fill workflows
Step-by-step implementation guide for deploying AI to trigger employee scheduling reminders and shift-fill workflows for Restaurants & Food Service clients.
Hardware Procurement
iPad 10th Generation 10.9-inch Wi-Fi 64GB
$349 per unit MSP cost / $449 suggested resale (includes setup)
Dedicated manager scheduling terminal wall-mounted in the back office or near the kitchen line. Used for real-time schedule viewing, shift swap approvals, and open-shift management. Runs the 7shifts manager app in Guided Access (kiosk) mode.
Tablet Wall Mount Enclosure with Lock
$45–$80 per unit MSP cost / $99 suggested resale (includes installation)
Secure VESA-compatible wall mount to position the iPad at eye level in the manager office, break room, or kitchen hallway. Prevents theft and accidental damage in a high-traffic restaurant environment.
Ubiquiti UniFi U6 Pro Access Point
$159 per unit MSP cost / $219 per unit suggested resale
Enterprise-grade 802.11ax Wi-Fi access points to ensure reliable connectivity for scheduling app push notifications, POS terminals, kitchen display systems, and employee BYOD devices. Two APs recommended for full coverage in a typical 2,000–4,000 sq ft restaurant (one FOH, one BOH).
Ubiquiti UniFi Switch Lite 8 PoE
$119 per unit MSP cost / $169 suggested resale
Managed PoE switch to power the UniFi APs and provide wired backbone connectivity. Supports VLAN segmentation to isolate POS/scheduling traffic from guest Wi-Fi.
Ubiquiti UniFi Cloud Gateway Ultra
$129 per unit MSP cost / $179 suggested resale
Gateway/router and UniFi Network controller for managing APs, switch, VLANs, and firewall rules. Provides the UniFi dashboard for remote MSP monitoring and management.
USB-C Power Adapter and Cable for iPad
USB-C Power Adapter and Cable for iPad
$18 per unit MSP cost / included in tablet resale bundle
Continuous power supply for the wall-mounted iPad to ensure it remains always-on as a scheduling dashboard.
Software Procurement
7shifts Entrée Plan
$29.99/location/month MSP cost / $49.99/location/month suggested resale
Primary restaurant employee scheduling platform. Provides drag-and-drop schedule creation, automated shift reminders (push notification, SMS, email), open-shift broadcasting to available employees, shift swap with manager approval, overtime and labor compliance alerts, Fair Workweek compliance engine, and POS integration for labor-to-sales data sync. Includes manager and employee mobile apps on iOS and Android.
Zapier Professional Plan
$19.99/month (annual billing) MSP cost / $39.99/month suggested resale
Workflow automation middleware to extend 7shifts native capabilities with custom escalation logic, multi-channel notifications, and integrations with Slack, Microsoft Teams, Google Sheets, and SMS services. Triggers on 7shifts webhooks to execute multi-step shift-fill escalation workflows that go beyond built-in platform features.
Twilio Programmable Messaging (SMS)
$0.0083/SMS sent + $0.0079/SMS received + carrier surcharges (~$0.003/msg) + $1.15/month per phone number. Estimated $15–$40/month for a 30-employee restaurant.
Custom SMS notification channel for shift-fill escalation workflows. Used when the built-in 7shifts notifications are insufficient or when the MSP needs white-labeled SMS from a dedicated restaurant phone number. Integrated via Zapier or n8n webhook actions.
n8n Community Edition (Self-Hosted) — Optional
$0 software cost + $5–$20/month VPS hosting (e.g., Hetzner CX22 at €4.49/month or DigitalOcean $6/month droplet). MSP resale: $49–$99/client/month as managed automation platform.
Alternative to Zapier for MSPs managing multiple restaurant clients. Self-hosted workflow automation engine with no per-task fees, enabling unlimited scheduling automations across all clients on a single instance. Fully white-labelable. Recommended when the MSP has 3+ restaurant clients to amortize hosting costs.
7shifts API & Webhook Access
$0 incremental (included in Entrée plan subscription)
RESTful API and webhook endpoints for programmatic access to schedules, shifts, users, locations, and time punches. Webhooks fire on events such as shift.created, shift.updated, shift.published, shift.open_created, and time_punch.created — enabling real-time triggers for custom automation workflows.
Slack Pro (if client uses Slack)
$8.75/user/month (pass-through or small markup)
Optional manager notification channel. Receives automated alerts for unfilled shifts, overtime warnings, and compliance flags via Zapier integration. Only procure if the client already uses or prefers Slack for management communication.
Prerequisites
- Active cloud-based POS system compatible with 7shifts (Toast, Square, Clover, Lightspeed, Oracle MICROS, NCR Aloha, or SpotOn). Confirm POS vendor and version before engagement.
- Business-grade internet connection with minimum 25 Mbps download / 10 Mbps upload at each restaurant location. Verify with speed test at site survey.
- Existing business email domain (e.g., restaurantname.com) for creating admin accounts. Avoid personal Gmail/Yahoo for compliance and security reasons.
- Complete employee roster in digital format (spreadsheet or existing system export) including: full name, email address, mobile phone number, role/position, hire date, employment type (FT/PT/minor), and hourly wage.
- Manager or owner with authority to approve scheduling policies, shift swap rules, overtime thresholds, and Fair Workweek compliance parameters.
- Determination of applicable Fair Workweek / Predictive Scheduling laws for the restaurant's jurisdiction(s). Check: NYC, San Francisco, Seattle, Chicago, Philadelphia, Oregon (statewide), Los Angeles County (effective July 2025). Document requirements before configuration.
- All employees must have smartphones (iOS 15+ or Android 10+) with active data plans or consistent Wi-Fi access for receiving push notifications and using the 7shifts mobile app.
- POS administrator credentials or access to the POS back-office portal to enable the 7shifts integration and authorize sales data sharing.
- Payroll system name and credentials if payroll integration is in scope (ADP, Gusto, Paychex, Toast Payroll, or 7shifts Payroll).
- Physical site survey completed: identify optimal wall-mount location for manager tablet, AP placement for full Wi-Fi coverage, and Ethernet drop locations for switch and gateway.
Installation Steps
Step 1: Conduct Discovery & Site Survey
Visit the restaurant location to document the current scheduling process, interview the GM/owner on pain points, audit the existing technology stack (POS, payroll, network), count employees by role, and determine Fair Workweek jurisdiction requirements. Photograph the back office, kitchen hallway, and break room for tablet mount placement. Test internet speed and Wi-Fi coverage with a mobile survey tool.
speedtest-cli --simple- POS vendor and version
- Number of employees (FT, PT, minor)
- Number of locations
- Current scheduling method (paper, spreadsheet, existing software)
- Applicable labor laws / Fair Workweek jurisdiction
- Existing network infrastructure (router, ISP, switches)
- Payroll system
- Manager communication preferences (SMS, Slack, email)
Discovery is critical — do not skip this step. The jurisdiction-specific Fair Workweek requirements will directly affect how you configure shift reminder timing, advance notice periods, and premium pay alerts. Bring a printed checklist. Budget 2–3 hours on-site.
Step 2: Install and Configure Network Infrastructure
Install the Ubiquiti UniFi Cloud Gateway Ultra, USW-Lite-8-PoE switch, and U6-Pro access points. Configure VLANs to segment POS/scheduling traffic (VLAN 10) from guest Wi-Fi (VLAN 20) and IoT/cameras (VLAN 30). Set up the UniFi Network controller for remote MSP management. This ensures reliable push notification delivery for the scheduling platform.
If the restaurant already has adequate business-grade networking (e.g., existing Meraki, UniFi, or Aruba setup), skip this step and simply verify coverage and connectivity. Run a post-installation Wi-Fi survey to confirm signal strength ≥ -65 dBm in all areas where employees will use phones (kitchen, dining floor, break room). Ensure the tablet mount location has strong Wi-Fi signal.
Step 3: Provision 7shifts Account and Configure Organization
Create the 7shifts account, set up the restaurant location(s), configure departments and roles, and establish the organizational hierarchy. This is the foundation for all scheduling and automation that follows.
Use the client's business email (e.g., gm@restaurantname.com) as the primary admin. Create a secondary MSP admin account (e.g., support@mspname.com) with Admin role for ongoing management. The Entrée plan is recommended over the free Comp plan because it includes labor compliance tools, schedule enforcement, and API/webhook access needed for custom automations.
Step 4: Import Employee Roster
Bulk import all employees into 7shifts with their roles, contact information, and wage data. This step populates the system so shift assignments and notifications can function immediately.
- iOS: https://apps.apple.com/app/7shifts-employee-scheduling/id1aborscheduling
- Android: https://play.google.com/store/apps/details?id=com.sevenships
Have the GM review the employee list before sending invitations. Flag any employees under 18 — their profiles must have date of birth entered so the system can enforce minor labor restrictions (e.g., no shifts after 10 PM, maximum hours per day/week). Employees who do not have smartphones should be flagged for alternative notification methods (email-only or manager verbal relay).
Step 5: Integrate POS System with 7shifts
Connect the restaurant's POS system to 7shifts to enable automatic sales data import, labor-to-sales percentage tracking, and demand-based scheduling insights. This integration is what transforms scheduling from guesswork into data-driven decisions.
For Toast POS
For Square POS
For Clover POS
Post-Integration Verification
The POS integration typically takes 15–30 minutes and starts syncing data immediately. Historical sales data (30–90 days) may take up to 24 hours to fully import. If the restaurant uses Oracle MICROS or NCR Aloha, the integration process may require involvement from the POS vendor's support team and can take 1–3 business days. Always verify that the POS admin credentials used have sufficient permissions to authorize third-party integrations.
Step 6: Configure Automated Shift Reminders
Set up the multi-channel notification system that automatically reminds employees of upcoming shifts. 7shifts supports push notifications, SMS, and email. Configure timing, channels, and escalation for no-responses.
7shifts sends push notifications for free. SMS notifications count against the plan's SMS allocation (varies by plan; Entrée includes a generous allowance). If the restaurant is in a Fair Workweek jurisdiction, ensure the 'Schedule Published' notification is sent at least 14 days before the schedule period begins. Document the notification configuration in the client handoff document.
Step 7: Configure Open Shift Broadcasting and Shift Swap Rules
Set up the rules that govern how open (unfilled) shifts are broadcast to available employees and how employees can request to swap shifts. This is the core shift-fill automation that replaces the manager's manual phone calls.
# 7shifts Admin → Settings → Scheduling → Open Shifts
# Open Shift Settings:
Enable 'Allow open shifts' → ON
Open shift visibility: 'Available to all qualified employees in the role'
Auto-approve open shift pickups: OFF (recommended initially — manager reviews)
→ Can be changed to ON after trust is established# automatic behavior when a shift becomes open
# Shift Pool / Broadcast Behavior:
→ 7shifts automatically sends push notification to ALL employees with the matching role
→ Employees see the open shift in their app and can claim it with one tap
→ Manager receives notification and approves/denies the pickup# Shift Swap (Shift Trade) Settings:
Enable 'Allow shift trading' → ON
Require manager approval: ON (recommended for compliance)
Restrict trades to same role: ON (a host can only swap with another host)
Enforce overtime limits on trades: ON# Availability Management:
Enable 'Allow employees to set availability' → ON
Require manager approval for availability changes: ON
Advance notice for availability changes: 7 days (adjust per policy)# Time-Off Request Settings:
Enable time-off requests → ON
Auto-approve: OFF
Blackout dates: Configure for known high-volume periods (Valentine's Day, Mother's Day, etc.)The open shift broadcast is the highest-value automation in this project. When a server calls in sick at 2 PM for a 5 PM shift, the manager no longer needs to call through a list of employees — 7shifts instantly notifies every available server and the first to accept gets the shift (pending manager approval). Coach the GM that enabling auto-approve for open shift pickups significantly speeds up fill rates but removes the human review step. Recommend starting with manual approval and switching to auto-approve after 30 days if the team is reliable.
Step 8: Configure Fair Workweek and Labor Compliance Guardrails
Enable jurisdiction-specific compliance features to prevent scheduling violations before they occur. This step is legally critical for restaurants in covered jurisdictions and best-practice for all others.
1. Overtime Alerts
2. Fair Workweek / Predictive Scheduling (if applicable)
3. Minor Labor Restrictions
4. Break Enforcement
5. Verify Compliance Configuration
This step requires the MSP to know the specific labor laws for the restaurant's jurisdiction BEFORE configuring. If unsure, consult the client's employment attorney or HR advisor. 7shifts provides built-in compliance templates for major Fair Workweek jurisdictions, but the MSP should verify settings against current law. Laws change — build a quarterly compliance review into the maintenance plan. For restaurants NOT in a Fair Workweek jurisdiction, still configure overtime alerts and break enforcement as these are universal best practices.
Step 9: Set Up Zapier Escalation Workflows
Create custom automation workflows in Zapier that extend 7shifts native capabilities. The primary workflow is a timed escalation for unfilled open shifts: if an open shift is not claimed within a configurable time window, escalate notifications to progressively higher levels of management.
Workflow 1: Open Shift Escalation
Trigger: 7shifts webhook → 'Open Shift Created'
Workflow 2: Daily Schedule Summary for Managers
Trigger: Schedule by Zapier → Every day at 6:00 AM
Workflow 3: New Schedule Published → Team Slack Notification
Trigger: 7shifts webhook → 'schedule.published'
Zapier Configuration for 7shifts API Calls
In Zapier, use 'Code by Zapier' (JavaScript) for API calls:
// fetch shift status from 7shifts API
const response = await fetch('https://api.7shifts.com/v2/shifts/' + inputData.shift_id, {
headers: {
'Authorization': 'Bearer ' + inputData.api_key,
'Content-Type': 'application/json'
}
});
const data = await response.json();
output = [{status: data.data.open, shift_id: data.data.id}];Zapier Professional plan allows 750 tasks/month, which is sufficient for a single restaurant location processing approximately 20–30 automated actions per day. If the restaurant generates more volume, upgrade to Zapier Teams (2,000 tasks/month). The 7shifts API key is generated in Settings → Integrations → API Keys. Store this securely — do not embed in client-visible locations. For MSPs managing multiple restaurants, consider n8n self-hosted (Step 10) instead of Zapier to avoid per-task billing.
Step 10: (Optional) Deploy n8n Self-Hosted Automation Engine
For MSPs managing 3+ restaurant clients, deploy a self-hosted n8n instance as a multi-tenant automation platform. This replaces Zapier with unlimited executions at a fixed monthly cost, and can be white-labeled under the MSP brand.
ssh root@your-server-ipapt update && apt upgrade -y
apt install -y docker.io docker-compose
systemctl enable docker
systemctl start dockermkdir -p /opt/n8n && cd /opt/n8n
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- '5678:5678'
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=mspadmin
- N8N_BASIC_AUTH_PASSWORD=CHANGE_THIS_STRONG_PASSWORD
- N8N_HOST=n8n.yourmsp.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourmsp.com/
- GENERIC_TIMEZONE=America/New_York
- N8N_ENCRYPTION_KEY=GENERATE_A_RANDOM_32_CHAR_KEY
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
EOFdocker-compose up -dapt install -y nginx certbot python3-certbot-nginx
cat > /etc/nginx/sites-available/n8n << 'EOF'
server {
server_name n8n.yourmsp.com;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
}
}
EOF
ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d n8n.yourmsp.com --non-interactive --agree-tos -m admin@yourmsp.comcurl https://n8n.yourmsp.com/healthz
# Expected response: {"status":"ok"}This step is OPTIONAL and only recommended for MSPs planning to serve multiple restaurant clients. For a single-client engagement, Zapier is simpler and faster to deploy. n8n Community Edition is free for unlimited executions but does not include SSO or advanced user management. For multi-tenant MSP use, consider n8n Enterprise for team features. Back up the n8n data volume weekly: docker run --rm -v n8n_data:/data -v /backups:/backups alpine tar czf /backups/n8n-backup-$(date +%Y%m%d).tar.gz /data
Step 11: Configure Twilio SMS for Custom Notifications
Set up a Twilio account and phone number for sending custom SMS notifications beyond what 7shifts provides natively. This enables the escalation workflows from Step 9 and provides a white-labeled SMS channel.
curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/YOUR_ACCOUNT_SID/Messages.json' \
--data-urlencode 'From=+15551234567' \
--data-urlencode 'To=+15559876543' \
--data-urlencode 'Body=Test: Shift reminder system is operational.' \
-u YOUR_ACCOUNT_SID:YOUR_AUTH_TOKENTwilio SMS costs approximately $0.0083 per message sent plus carrier surcharges (~$0.003). For a 30-employee restaurant sending 2 reminders per employee per week plus escalation messages, expect $15–$40/month in Twilio charges. Consider setting up Twilio sub-accounts for each restaurant client to keep billing separate. If the restaurant prefers not to use SMS (cost or privacy concerns), the 7shifts built-in push notifications and email may be sufficient without Twilio.
Step 12: Install and Configure Manager Tablet
Set up the wall-mounted iPad as a dedicated scheduling dashboard in the restaurant's back office or kitchen hallway. Configure it in Guided Access mode to lock it to the 7shifts app.
The wall-mounted tablet serves as a passive information radiator — managers and staff can glance at today's schedule, see open shifts, and take action without logging into a computer. If the client prefers Android, substitute a Samsung Galaxy Tab A9+ ($219) with Samsung Knox Kiosk mode instead of Apple Guided Access. Ensure the tablet is positioned away from kitchen grease and steam — the back office hallway or break room is typically better than directly in the kitchen.
Step 13: Conduct Employee Onboarding Session
Run a 30–45 minute training session for all employees (in groups if needed to accommodate shifts). Cover app installation, notification setup, how to view schedules, request time off, pick up open shifts, and swap shifts. Run a separate 60-minute manager training session.
Employee Training Agenda (30–45 minutes)
Manager Training Agenda (60 minutes)
- Distribute printed quick-start guide to all employees (1-page, laminated)
- Post a copy in the break room next to the tablet
Schedule the employee training during a typically slow period (e.g., Tuesday 2–3 PM between lunch and dinner). You may need to run 2–3 sessions to cover all shifts. Prepare a one-page laminated quick-reference card with QR codes linking to the app download and a visual guide for the three most common actions: viewing schedule, picking up open shifts, and requesting time off. Leave 5 laminated copies with the manager. The manager training should be conducted separately and can be done 1-on-1 with the GM.
Step 14: Test All Automations End-to-End
Conduct a comprehensive test of every automated workflow before going live. Create test scenarios that exercise shift reminders, open shift broadcasting, escalation workflows, and compliance guardrails.
Test 1: Shift Reminder
Test 2: Open Shift Broadcast
Test 3: Escalation Workflow (Zapier)
Test 4: Compliance Guardrails
Test 5: POS Data Sync
Test 6: Shift Swap
For time-sensitive tests (like the 2-hour delay in the escalation workflow), temporarily modify the Zapier Zap to use a 5-minute delay during testing, then change back to 2 hours before go-live. Keep a test log documenting each test case, expected result, actual result, and pass/fail status. Any failures should be resolved before proceeding to the parallel run period.
Step 15: Go Live with Parallel Run and Cutover
Run the automated system in parallel with the existing manual process for one full schedule cycle (typically one week). After confirming everything works correctly, cut over fully to the automated system.
Week 1: Parallel Run
End of Week 1 Review
- Compare automated results vs. manual process results
- Document any issues or adjustments needed
- Get manager sign-off to proceed to full cutover
Week 2: Full Cutover
Post-Cutover (Week 3–4)
The parallel run is essential — do not skip it. Restaurants cannot afford a scheduling failure during a busy Friday dinner service. If any critical issues are found during the parallel run, extend it by another week. Common issues during parallel run: employees not enabling push notifications (follow up individually), Zapier webhook URL misconfiguration (verify in Zap history), POS integration time zone mismatch (verify in 7shifts location settings).
Custom AI Components
Open Shift Escalation Workflow
Type: workflow A multi-step automation workflow that monitors unfilled open shifts and progressively escalates notifications to management. When an open shift is created in 7shifts, the workflow waits for defined time intervals and checks whether the shift has been claimed. If not, it sends SMS alerts to increasingly senior managers. This is the primary value-add automation beyond native 7shifts capabilities.
Implementation
Zapier Implementation
Platform: Zapier (Professional Plan) or n8n (self-hosted) Trigger: 7shifts Webhook — shift.open_created Zap Name: 'Open Shift Escalation - [Location Name]'
// Check Shift Status via 7shifts API
const response = await fetch(
`https://api.7shifts.com/v2/company/YOUR_COMPANY_ID/shifts/${inputData.shift_id}`,
{
method: 'GET',
headers: {
'Authorization': `Bearer ${inputData.api_key}`,
'Content-Type': 'application/json',
'x-api-version': '2022-05-01'
}
}
);
const data = await response.json();
const isOpen = data.data.open === true && data.data.open_offer_type !== null;
output = [{ is_still_open: isOpen ? 'yes' : 'no', shift_id: inputData.shift_id }];# Level 1 Escalation (to Assistant Manager)
⚠️ OPEN SHIFT ALERT
{{role_name}} shift at {{location_name}}
{{formatted_start}} - {{formatted_end}}
This shift has been open for 2 hours with no takers.
Please review in 7shifts and contact available staff.
Reply STOP to opt out.# Level 2 Escalation (to General Manager)
🚨 CRITICAL SHIFT ALERT
{{role_name}} shift at {{location_name}}
{{formatted_start}} - {{formatted_end}}
UNFILLED for 4+ hours. Immediate action required.
Options: Approve overtime for existing staff, call in backup, or cover personally.
Reply STOP to opt out.n8n Implementation (Alternative)
{
"name": "Open Shift Escalation",
"nodes": [
{
"name": "Webhook Trigger",
"type": "n8n-nodes-base.webhook",
"position": [250, 300],
"parameters": {
"httpMethod": "POST",
"path": "open-shift-webhook",
"responseMode": "onReceived"
}
},
{
"name": "Wait 2 Hours",
"type": "n8n-nodes-base.wait",
"position": [450, 300],
"parameters": {
"amount": 2,
"unit": "hours"
}
},
{
"name": "Check Shift Status",
"type": "n8n-nodes-base.httpRequest",
"position": [650, 300],
"parameters": {
"method": "GET",
"url": "=https://api.7shifts.com/v2/company/{{$env.SEVENSHIFTS_COMPANY_ID}}/shifts/{{$json.shift_id}}",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{ "name": "Authorization", "value": "=Bearer {{$env.SEVENSHIFTS_API_KEY}}" },
{ "name": "x-api-version", "value": "2022-05-01" }
]
}
}
},
{
"name": "Is Still Open?",
"type": "n8n-nodes-base.if",
"position": [850, 300],
"parameters": {
"conditions": {
"boolean": [{ "value1": "={{$json.data.open}}", "value2": true }]
}
}
},
{
"name": "SMS to Asst Manager",
"type": "n8n-nodes-base.twilio",
"position": [1050, 200],
"parameters": {
"from": "+15551234567",
"to": "+1XXXXXXXXXX",
"message": "=⚠️ OPEN SHIFT: {{$node['Webhook Trigger'].json.role_name}} on {{$node['Webhook Trigger'].json.start_date}}. Open 2+ hrs. Review in 7shifts."
}
},
{
"name": "Wait 2 More Hours",
"type": "n8n-nodes-base.wait",
"position": [1250, 200],
"parameters": { "amount": 2, "unit": "hours" }
},
{
"name": "Re-check Status",
"type": "n8n-nodes-base.httpRequest",
"position": [1450, 200],
"parameters": { "method": "GET", "url": "=https://api.7shifts.com/v2/company/{{$env.SEVENSHIFTS_COMPANY_ID}}/shifts/{{$node['Webhook Trigger'].json.shift_id}}" }
},
{
"name": "Still Open L2?",
"type": "n8n-nodes-base.if",
"position": [1650, 200],
"parameters": {
"conditions": { "boolean": [{ "value1": "={{$json.data.open}}", "value2": true }] }
}
},
{
"name": "SMS to GM",
"type": "n8n-nodes-base.twilio",
"position": [1850, 100],
"parameters": {
"from": "+15551234567",
"to": "+1YYYYYYYYYY",
"message": "=🚨 CRITICAL: {{$node['Webhook Trigger'].json.role_name}} shift STILL unfilled after 4hrs. Immediate action needed."
}
}
],
"connections": {
"Webhook Trigger": { "main": [[{ "node": "Wait 2 Hours" }]] },
"Wait 2 Hours": { "main": [[{ "node": "Check Shift Status" }]] },
"Check Shift Status": { "main": [[{ "node": "Is Still Open?" }]] },
"Is Still Open?": { "main": [[{ "node": "SMS to Asst Manager" }], []] },
"SMS to Asst Manager": { "main": [[{ "node": "Wait 2 More Hours" }]] },
"Wait 2 More Hours": { "main": [[{ "node": "Re-check Status" }]] },
"Re-check Status": { "main": [[{ "node": "Still Open L2?" }]] },
"Still Open L2?": { "main": [[{ "node": "SMS to GM" }], []] }
}
}7shifts Webhook Configuration
Daily Manager Briefing Workflow
Type: workflow
An automated daily workflow that compiles today's schedule summary, highlights any open or unfilled shifts, reports yesterday's labor cost percentage against target, and delivers it to the GM via email or Slack every morning at 6:00 AM. This gives managers a proactive daily briefing without needing to log into any system.
Implementation:
- Platform: Zapier or n8n
- Trigger: Daily schedule at 6:00 AM local time
Zapier Implementation
Zap Name: 'Daily Manager Briefing - [Location Name]'
// Fetch Today's Shifts and build schedule summary
const today = new Date().toISOString().split('T')[0];
const url = `https://api.7shifts.com/v2/company/${inputData.company_id}/shifts?location_id=${inputData.location_id}&start[gte]=${today}T00:00:00&start[lte]=${today}T23:59:59&sortBy=start&sortDir=asc`;
const response = await fetch(url, {
headers: {
'Authorization': `Bearer ${inputData.api_key}`,
'x-api-version': '2022-05-01'
}
});
const data = await response.json();
const shifts = data.data || [];
let totalShifts = shifts.length;
let openShifts = shifts.filter(s => s.open === true).length;
let filledShifts = totalShifts - openShifts;
let scheduleLines = shifts.map(s => {
const start = new Date(s.start).toLocaleTimeString('en-US', {hour: '2-digit', minute: '2-digit'});
const end = new Date(s.end).toLocaleTimeString('en-US', {hour: '2-digit', minute: '2-digit'});
const name = s.user ? `${s.user.first_name} ${s.user.last_name}` : '⚠️ OPEN';
const role = s.role ? s.role.name : 'Unknown';
return `${start}-${end} | ${role} | ${name}`;
}).join('\n');
let summary = `📋 DAILY SCHEDULE BRIEFING - ${today}\n`;
summary += `━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`;
summary += `Total Shifts: ${totalShifts} | Filled: ${filledShifts} | ⚠️ Open: ${openShifts}\n`;
summary += `━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`;
summary += scheduleLines;
if (openShifts > 0) {
summary += `\n\n🚨 ACTION REQUIRED: ${openShifts} shift(s) still need to be filled!`;
}
output = [{ summary: summary, open_count: openShifts, total_count: totalShifts, date: today }];Configuration Notes: - Replace YOUR_COMPANY_ID and YOUR_LOCATION_ID with actual 7shifts IDs - 7shifts company ID is visible in the URL when logged into the admin dashboard - Location ID can be found via API: GET /v2/company/{company_id}/locations - For multi-location clients, duplicate this Zap for each location - API key is generated at: 7shifts → Settings → Integrations → API Keys
Shift-Fill Rate Tracker
Type: integration A Google Sheets integration that logs every open shift event and its resolution (filled/unfilled, time to fill, who filled it) to provide the restaurant owner with a weekly KPI dashboard showing shift-fill rates, average time to fill, and most reliable employees for pickups. This data justifies the automation investment and identifies staffing gaps.
Implementation
Google Sheet Setup
Create a Google Sheet named Shift Fill Tracker - [Restaurant Name] with Sheet 1: Open Shift Log
- A: Timestamp (when shift was posted as open)
- B: Shift ID
- C: Shift Date
- D: Shift Start Time
- E: Shift End Time
- F: Role
- G: Department
- H: Status (Open / Filled / Unfilled)
- I: Filled By (employee name, if filled)
- J: Time to Fill (hours, calculated)
- K: Escalation Level Reached (0=none, 1=asst mgr, 2=GM)
- L: Location
Zapier Implementation — Zap 1: Log Open Shift Created
A (Timestamp): {{zap_meta_human_now}}
B (Shift ID): {{shift_id}}
C (Shift Date): {{start_date formatted as MMM D, YYYY}}
D (Start Time): {{start_time}}
E (End Time): {{end_time}}
F (Role): {{role_name}}
G (Department): {{department_name}}
H (Status): 'Open'
I (Filled By): ''
J (Time to Fill): ''
K (Escalation): 0
L (Location): {{location_name}}Zapier Implementation — Zap 2: Update When Shift Filled
Weekly Dashboard — Sheet 2 Formulas
Create Sheet 2 named Weekly Dashboard and add the following formulas:
Total Open Shifts This Week:
=COUNTIFS('Open Shift Log'!C:C,">="&(TODAY()-7),'Open Shift Log'!C:C,"<="&TODAY())
Fill Rate:
=COUNTIFS('Open Shift Log'!H:H,"Filled",'Open Shift Log'!C:C,">="&(TODAY()-7))/COUNTIFS('Open Shift Log'!C:C,">="&(TODAY()-7))
Avg Time to Fill (hours):
=AVERAGEIFS('Open Shift Log'!J:J,'Open Shift Log'!C:C,">="&(TODAY()-7),'Open Shift Log'!H:H,"Filled")
Escalation Rate:
=COUNTIFS('Open Shift Log'!K:K,">0",'Open Shift Log'!C:C,">="&(TODAY()-7))/COUNTIFS('Open Shift Log'!C:C,">="&(TODAY()-7))
Top Pickup Employees:
=COUNTIF on column I to find most frequent namesShare the Google Sheet with the restaurant owner (view-only) and the MSP team (edit).
Fair Workweek Compliance Monitor
Type: workflow
A weekly automated compliance check that reviews published schedules against Fair Workweek requirements and sends a summary report to the restaurant manager. While 7shifts has built-in compliance warnings during schedule creation, this workflow provides a secondary audit layer that catches any violations that may have been overridden or missed, creating a documented compliance trail.
Implementation:
- Platform: Zapier with Code by Zapier or n8n
- Trigger: Weekly on Monday at 7:00 AM
- Purpose: Audit next week's published schedule for compliance violations
Zapier Implementation — Zap Name: Weekly Compliance Audit - [Location Name]
// Fetch and audit next week's shifts for compliance violations
const api_key = inputData.api_key;
const company_id = inputData.company_id;
const location_id = inputData.location_id;
// Calculate next week date range
const today = new Date();
const nextMonday = new Date(today);
nextMonday.setDate(today.getDate() + (1 + 7 - today.getDay()) % 7);
const nextSunday = new Date(nextMonday);
nextSunday.setDate(nextMonday.getDate() + 6);
const startDate = nextMonday.toISOString().split('T')[0];
const endDate = nextSunday.toISOString().split('T')[0];
// Fetch all shifts for next week
const url = `https://api.7shifts.com/v2/company/${company_id}/shifts?location_id=${location_id}&start[gte]=${startDate}T00:00:00&start[lte]=${endDate}T23:59:59&sortBy=start&sortDir=asc`;
const response = await fetch(url, {
headers: {
'Authorization': `Bearer ${api_key}`,
'x-api-version': '2022-05-01'
}
});
const data = await response.json();
const shifts = data.data || [];
// Group shifts by employee
const employeeShifts = {};
shifts.forEach(s => {
if (s.user) {
const name = `${s.user.first_name} ${s.user.last_name}`;
if (!employeeShifts[name]) employeeShifts[name] = [];
employeeShifts[name].push(s);
}
});
let violations = [];
let warnings = [];
Object.entries(employeeShifts).forEach(([name, empShifts]) => {
// Check 1: Total weekly hours > 40 (overtime risk)
let totalHours = 0;
empShifts.forEach(s => {
const start = new Date(s.start);
const end = new Date(s.end);
totalHours += (end - start) / 3600000;
});
if (totalHours > 40) {
violations.push(`⚠️ OVERTIME: ${name} scheduled for ${totalHours.toFixed(1)} hours (exceeds 40)`);
} else if (totalHours > 35) {
warnings.push(`📋 ${name}: ${totalHours.toFixed(1)} hours (approaching overtime)`);
}
// Check 2: Clopening (less than 11 hours between shifts)
const sorted = empShifts.sort((a, b) => new Date(a.start) - new Date(b.start));
for (let i = 1; i < sorted.length; i++) {
const prevEnd = new Date(sorted[i-1].end);
const currStart = new Date(sorted[i].start);
const gap = (currStart - prevEnd) / 3600000;
if (gap < 11 && gap > 0) {
violations.push(`🚫 CLOPENING: ${name} has only ${gap.toFixed(1)}hr gap between shifts on ${prevEnd.toLocaleDateString()} and ${currStart.toLocaleDateString()}`);
}
}
});
// Check 3: Open/unfilled shifts
const openShifts = shifts.filter(s => s.open === true);
if (openShifts.length > 0) {
warnings.push(`📭 ${openShifts.length} open shift(s) still need to be filled for next week`);
}
let report = `📋 WEEKLY COMPLIANCE AUDIT\n`;
report += `Schedule Period: ${startDate} to ${endDate}\n`;
report += `Total Shifts Scheduled: ${shifts.length}\n\n`;
if (violations.length > 0) {
report += `🚨 VIOLATIONS (${violations.length}):\n${violations.join('\n')}\n\n`;
} else {
report += `✅ No compliance violations detected.\n\n`;
}
if (warnings.length > 0) {
report += `⚠️ WARNINGS (${warnings.length}):\n${warnings.join('\n')}\n`;
}
output = [{
report: report,
violation_count: violations.length,
warning_count: warnings.length,
period: `${startDate} to ${endDate}`
}];This workflow checks for the two most common Fair Workweek violations: overtime and clopening. Extend the code to check jurisdiction-specific rules. The MSP receives a copy of every audit report for documentation. This creates a paper trail demonstrating proactive compliance monitoring. Adjust the 11-hour clopening threshold based on jurisdiction (some require 10 or 12 hours).
Testing & Validation
- SHIFT REMINDER TEST: Create a test shift assigned to the MSP technician's phone number, set to start in 24 hours. Publish the schedule. Verify that a push notification is received on the technician's phone within 5 minutes. Then verify a second reminder arrives approximately 2 hours before the shift start time (if configured).
- OPEN SHIFT BROADCAST TEST: Create an open shift for the 'Server' role on tomorrow's schedule. Publish it. Verify that at least 3 employees with the Server role receive push notifications about the open shift within 5 minutes. Have one employee tap 'Pick Up' in the app and verify the manager receives an approval request notification.
- SHIFT SWAP TEST: Assign Employee A to a test shift. Have Employee A open the 7shifts app and offer the shift for trade. Have Employee B (same role) accept the trade. Verify the manager receives a swap approval notification, approves it, and both employees receive updated schedule confirmations.
- ZAPIER ESCALATION WORKFLOW TEST: Create an open shift and ensure no one claims it. Temporarily set the Zapier delay to 5 minutes (instead of 2 hours). Verify that the Assistant Manager receives an SMS from the Twilio number within 6 minutes. Continue waiting and verify the GM receives the Level 2 SMS within 12 minutes. After testing, reset delays to production values (2 hours and 4 hours).
- POS SALES DATA SYNC TEST: Log into the 7shifts admin dashboard and navigate to the Sales section. Verify that yesterday's total sales figure matches the POS system's daily sales report within a 1% tolerance. Verify that the labor cost percentage is displaying and calculating correctly (scheduled labor cost / sales revenue).
- COMPLIANCE GUARDRAIL TEST - OVERTIME: Attempt to schedule one employee for 42 hours in a single week using the 7shifts schedule editor. Verify that 7shifts displays an overtime warning before publishing. Document the warning message text and screenshot it.
- COMPLIANCE GUARDRAIL TEST - CLOPENING: Attempt to schedule an employee for a closing shift ending at 11:00 PM and an opening shift starting at 7:00 AM the next day (8-hour gap, less than 11 hours). Verify that 7shifts displays a clopening/rest period violation warning if Fair Workweek is configured for the jurisdiction.
- COMPLIANCE GUARDRAIL TEST - MINOR RESTRICTIONS: If the restaurant employs anyone under 18, attempt to schedule a minor for a shift ending after 10:00 PM on a school night. Verify that 7shifts blocks or warns against this assignment.
- DAILY BRIEFING WORKFLOW TEST: Manually trigger the Daily Manager Briefing Zap in Zapier (or run the n8n workflow manually). Verify that the GM receives an email within 5 minutes containing today's schedule summary with accurate shift counts, employee names, and open shift count. Verify the format is readable and all data matches the 7shifts schedule.
- NETWORK CONNECTIVITY TEST: On the wall-mounted iPad in the back office, force-close and reopen the 7shifts app. Verify it loads the current schedule within 10 seconds. Walk through the restaurant with a smartphone connected to the Staff Wi-Fi and verify signal strength remains above -65 dBm in the kitchen, dining area, and break room using the WiFiman app.
- EMPLOYEE NOTIFICATION DELIVERY AUDIT: After one full day of operation, log into the 7shifts admin panel and navigate to Reports → Notifications. Verify that all scheduled shift reminders were delivered successfully. Identify any employees who did not receive notifications and troubleshoot (app not installed, notifications disabled on phone, invalid phone number).
- GOOGLE SHEETS LOGGING TEST: After the escalation workflow runs at least once, verify that the Shift Fill Tracker Google Sheet has been populated with a row containing the correct shift ID, date, role, timestamps, and status. Verify that the 'Filled By' and 'Time to Fill' columns update correctly when the open shift is subsequently claimed.
- END-TO-END CALL-OFF SCENARIO TEST: Simulate a realistic call-off scenario: a scheduled Server calls off (manager marks them as absent in 7shifts), the shift becomes open, open shift broadcast fires to all Servers, one Server claims it, manager approves, the claiming Server receives confirmation, and the Google Sheet logs the entire event. Time the entire process from call-off to confirmed replacement.
Client Handoff
The client handoff meeting should be a 60–90 minute on-site session with the General Manager and any Assistant Managers. Cover the following topics:
Maintenance
Weekly Responsibilities
- Review Zapier task history for failed executions (Zapier → Zap History → filter by errors)
- Check 7shifts notification delivery logs
- Review the Shift Fill Tracker Google Sheet for trends
- Estimated time: 15–20 minutes per client per week
Monthly Responsibilities
- Run a comprehensive test of all automation workflows (shift reminder, escalation, daily briefing, compliance audit)
- Verify POS integration is syncing daily sales data
- Review Twilio usage and charges
- Update employee roster in 7shifts if there have been hires/terminations that the manager hasn't entered
- Review and update the compliance configuration if any labor law changes have occurred
- Generate a monthly KPI report for the client (fill rate, time to fill, compliance score)
- Estimated time: 1–2 hours per client per month
Quarterly Responsibilities
- Conduct a compliance regulation review — check for new or updated Fair Workweek laws in the client's jurisdiction
- Review 7shifts platform release notes for new features that could benefit the client
- Assess whether escalation timing or notification rules need adjustment based on 3 months of data
- Review network performance (Wi-Fi coverage, AP health, switch logs via UniFi dashboard)
- Meet with the client to review quarterly KPIs and discuss optimization
- Estimated time: 2–3 hours per client per quarter
Annual Responsibilities
- Renew 7shifts subscription (verify plan still meets needs; consider upgrading from Entrée to The Works if multi-location or advanced features needed)
- Review and renegotiate Zapier plan based on actual task volume
- Audit all user accounts and remove former employees
- Update the iPad (iOS update, app update)
- Full network health check
SLA Considerations
Scheduling system downtime during peak hours (Friday 4–8 PM, Saturday 5–9 PM) is critical — define a 1-hour response time for P1 issues during these windows.
- P1 issues: system completely down, notifications not sending, compliance engine disabled
- P2 issues: single workflow failure, one employee can't access app, reporting discrepancy
- P3 issues: feature requests, minor UI issues, documentation updates
Escalation Path
Model Retraining / Rule Review
Not applicable — this is deterministic automation, not ML-based. However, automation rules should be reviewed and adjusted quarterly based on data: if the average time to fill is consistently under 1 hour, the first escalation delay can be extended from 2 hours to 3 hours. If certain roles are harder to fill, role-specific escalation rules can be created.
Alternatives
Homebase as Primary Scheduling Platform
HotSchedules (Fourth) for Multi-Unit Chains
Replace 7shifts with HotSchedules for restaurant groups with 5+ locations. HotSchedules is the industry incumbent with the deepest enterprise features: labor demand forecasting, cross-location shift sharing, corporate-level reporting, and native integrations with Oracle MICROS and NCR Aloha POS systems. Requires annual commitment and custom pricing.
Microsoft Power Automate Instead of Zapier
Replace Zapier with Microsoft Power Automate for the workflow automation layer. Best suited for restaurants whose management team already uses Microsoft 365 (Outlook, Teams, SharePoint). Power Automate provides similar trigger-action workflows with deeper Microsoft ecosystem integration.
n8n Self-Hosted as Primary Automation Engine
Replace Zapier entirely with a self-hosted n8n Community Edition instance managed by the MSP. This provides unlimited workflow executions at a fixed infrastructure cost, can serve multiple restaurant clients from a single instance, and is fully white-labelable under the MSP brand.
Implement proper backups and consider a high-availability setup for production use to mitigate the single point of failure risk when serving multiple restaurant clients.
Sling for Budget-Conscious Single Location
Replace 7shifts with Sling, which offers the most generous free tier in the market: free scheduling for up to 30 users with no location restrictions. Sling includes shift alerts, shift offers, messaging, and basic time tracking at no cost.
Fully Custom Solution with Twilio + Google Sheets + Apps Script
Skip the scheduling platform entirely and build a lightweight custom solution using Google Sheets as the schedule database, Google Apps Script for automation logic, and Twilio for SMS notifications. Employees view their schedule via a shared Google Sheet or simple web app.
RECOMMENDATION: Almost never recommended. Only consider for a restaurant with 5 or fewer employees where the owner refuses all software subscriptions and only needs basic shift reminders via SMS. The long-term maintenance cost will likely exceed the cost of a proper scheduling platform subscription.
Want early access to the full toolkit?