Back to All Guides
Workflow Guide

Shift Swap & Trade Complete Guide

Master shift drops, pickups, and trade approval workflows. Learn AUTO_APPROVE, CONDITIONAL, and MANAGER_APPROVAL modes with step-by-step instructions.

12 min read
3 Approval Modes
Employee & Manager Workflows

Overview - Shift Swap System

How shift trading works in XShift AI

What is Shift Swapping?

  • Employees can DROP shifts they cannot work
  • Other employees can PICK UP dropped shifts
  • Flexible approval workflow based on organization settings
  • Real-time notifications and updates
  • Complete audit trail of all trades

  • Use cases:
  • - Employee calls in sick
  • - Family emergency
  • - Schedule conflict
  • - Want to give shift to coworker
  • - Need extra hours (picking up shifts)

  • Benefits:
  • - Reduces manager workload
  • - Empowers employees
  • - Maintains schedule coverage
  • - Transparent process
  • - Automatic email notifications

Employee: How to Drop a Shift

Step-by-step guide for employees dropping shifts

Access & Navigation

  • Role required: EMPLOYEE (any employee can drop their own shifts)
  • Navigate to: /{orgId}/employee-trades
  • Page title: "Shift Drops & Pickups"
  • Subtitle: "Drop shifts you can't make and pick up available shifts from other employees"
  • Auto-refreshes: Every 30 seconds to show latest data

3 Tabs Available

  • TAB 1: My Shifts
  • - Shows all YOUR upcoming assigned shifts
  • - Only future shifts (today and onwards)
  • - Each shift card shows:
  • * Role (e.g., "Employee") at Location
  • * Date formatted (e.g., "Dec 25, 2025")
  • * Time range (e.g., "09:00 - 17:00")
  • * Calendar icon (blue)
  • * "Drop Shift" button (red with down arrow)
  • - Empty state: "No upcoming shifts - You don't have any upcoming shifts to drop."

  • TAB 2: Available Shifts
  • - Shows shifts dropped by OTHER employees
  • - Ready to be picked up
  • - Green background cards
  • - Shows original employee name and drop reason

  • TAB 3: History
  • - Past drops and pickups
  • - Shows status (Dropped or Picked Up)
  • - Red badge for drops, green badge for pickups

Drop Workflow - Step by Step

  • Step 1: Go to "My Shifts" tab
  • - Count shown in tab label (e.g., "My Shifts (5)")
  • - See all your upcoming shifts

  • Step 2: Click "Drop Shift" button on shift you can't work
  • - Button: Red background with down arrow icon
  • - Text: "Drop Shift"
  • - Opens drop form modal

  • Step 3: Drop Form Modal appears
  • - Modal title: "Drop Shift"
  • - Shows shift details (role, location, date, time) in gray box
  • - Reason textarea (REQUIRED):
  • * Label: "Reason for dropping shift"
  • * Placeholder: "Please provide a reason (e.g., sick, family emergency, etc.)"
  • * Required field - must enter reason
  • - Yellow warning box:
  • * "Note: Once you drop this shift, other employees in your organization can pick it up immediately."
  • - Two buttons:
  • * "Cancel" (gray) - closes modal without dropping
  • * "Drop Shift" (red) - confirms drop

  • Step 4: Confirm drop
  • - Click "Drop Shift" button
  • - System processes request
  • - API call to: /api/orgs/{orgId}/shift-drops (POST)
  • - Sends: assignmentId, reason

  • Step 5: Success confirmation
  • - Alert: "Shift dropped successfully! Other employees can now pick it up."
  • - Modal closes
  • - Assignment status changes: ASSIGNED → DROPPED
  • - Shift STAYS assigned to you (not deleted) but marked as DROPPED
  • - Shift appears in "Available Shifts" for other employees
  • - Manager notified via real-time update
  • - Manager schedule automatically refreshes

After Dropping

  • Assignment status changes to DROPPED (not deleted)
  • Shift STAYS assigned to you with DROPPED status
  • Appears in "Available Shifts" tab for coworkers
  • Your drop reason is visible to other employees
  • Manager sees update in their schedule immediately
  • Recorded in drop history

  • What happens next:
  • - Other employees can browse available shifts
  • - Someone may pick it up (see pickup workflow)
  • - Depending on approval mode, trade may be instant or need manager review

Employee: How to Pick Up a Shift

Step-by-step guide for picking up dropped shifts

Viewing Available Shifts

  • Go to "Available Shifts" tab
  • Tab label shows count: "Available Shifts (3)"
  • See all shifts dropped by coworkers

  • Each available shift card shows:
  • - Green background (green-50)
  • - Green border (green-200)
  • - Up arrow icon (green)
  • - Role and location (e.g., "Employee at Downtown Store")
  • - Date (e.g., "Dec 25, 2025")
  • - Time range (e.g., "09:00 - 17:00")
  • - "Dropped by: [Employee Name]"
  • - "Reason: [Drop reason text]"
  • - "Pick Up Shift" button (green with up arrow)

  • Empty state if no shifts:
  • - Calendar icon (gray)
  • - "No available shifts"
  • - "There are currently no dropped shifts available to pick up."

Pickup Workflow - Step by Step

  • Step 1: Browse available shifts
  • - Go to "Available Shifts" tab
  • - Review shift details, original employee, and reason

  • Step 2: Click "Pick Up Shift" button
  • - Button: Green background with up arrow icon
  • - Confirmation dialog appears:
  • * "Are you sure you want to pick up this shift from [Employee Name]?"
  • - Click "OK" to confirm or "Cancel" to abort

  • Step 3: System processes pickup
  • - API call: /api/orgs/{orgId}/shift-drops/{id}/pickup (POST)
  • - System checks approval mode setting
  • - Validates trade based on organization rules

  • Step 4: Response depends on approval mode
  • - AUTO_APPROVE mode:
  • * Instant: "Shift picked up successfully! It is now your shift."
  • * Shift immediately assigned to you
  • * Appears in your "My Shifts" immediately
  • - CONDITIONAL mode (Smart Approval):
  • * If qualified: Instant approval, shift assigned
  • * If NOT qualified: "Trade request submitted! Your manager will review it."
  • * Appears in pending trades banner
  • - MANAGER_APPROVAL mode:
  • * Always: "Trade request submitted! Your manager will review it and notify you when approved."
  • * Must wait for manager approval
  • * Appears in pending trades banner

  • Step 5: Track status
  • - If pending approval: Check "Pending Trade Requests Banner" at top
  • - If approved: Shift moves to your "My Shifts" tab
  • - Email notification sent when approved/denied
  • - Manager gets notification to review

Pending Trade Requests Banner

  • Appears at top of page when trades await manager approval
  • Yellow background alert box
  • Clock icon

  • Header shows count:
  • - "1 Trade Request Pending Manager Approval"
  • - "2 Trade Requests Pending Manager Approval" (plural)

  • Each pending trade shows:
  • - Date (bold)
  • - Time range
  • - Location name (if set)
  • - "Originally dropped by [Name]"
  • - "Requested [date]"

  • Bottom message:
  • - "Your manager will review these requests and notify you when they're approved or denied."

  • Auto-refreshes every 30 seconds
  • Disappears when manager approves/denies
  • Email notification sent when decision made

3 Approval Modes Explained

Understanding AUTO_APPROVE, CONDITIONAL, and MANAGER_APPROVAL

Mode 1: AUTO_APPROVE (Hands-Off)

  • Setting value: "AUTO_APPROVE"
  • Label in settings: "🟢 Auto-Approve All Trades (Hands-off)"
  • Description: "Employees can freely trade shifts without manager approval. Best for homogeneous teams where everyone has the same skills."

  • How it works:
  • - Employee drops shift
  • - Shift immediately available to all employees
  • - Any employee clicks "Pick Up Shift"
  • - Instant assignment - NO manager review
  • - Both employees notified via email
  • - Manager sees updated schedule immediately

  • No validation checks:
  • - Role matching not checked
  • - Schedule conflicts not checked
  • - Hours limits not checked
  • - Location access not checked

  • Best for:
  • - Teams where all employees can do any shift
  • - Simple organizations without roles
  • - High trust environments
  • - Managers who want minimal involvement

  • Risks:
  • - Unqualified employees may pick up shifts
  • - Schedule conflicts possible
  • - Employees might exceed hours limits
  • - Less manager control

Mode 2: CONDITIONAL (Smart Approval) - Recommended

  • Setting value: "CONDITIONAL"
  • Label in settings: "🟡 Smart Approval (Auto-approve if qualified) - Recommended"
  • Description: "Trades auto-approve if employee is qualified (same role, location access, no schedule conflicts, within hours limit). Issues require your review."

  • How it works:
  • - Employee clicks "Pick Up Shift"
  • - System runs 4 validation checks:
  • 1. Role match (if roles enabled)
  • 2. Location access permissions
  • 3. No schedule conflicts
  • 4. Within hours limit
  • - ALL checks pass → Instant auto-approval
  • - ANY check fails → Sent to manager for review

  • Validation checks in detail:
  • 1. Role Match:
  • - If "Use Roles" enabled in settings
  • - Employee role must match shift role requirement
  • - Example: Server can only pick up Server shifts
  • 2. Location Access:
  • - Employee must have access to shift location
  • - Prevents picking up shifts at restricted locations
  • 3. Schedule Conflicts:
  • - No overlapping shifts on same date/time
  • - Prevents double-booking
  • 4. Hours Limit:
  • - Ensures employee doesn't exceed weekly/daily hours caps
  • - Prevents overtime violations

  • If auto-approved:
  • - Message: "Shift picked up successfully! It is now your shift."
  • - Instant assignment
  • - No manager action needed

  • If sent to manager:
  • - Message: "Trade request submitted! Your manager will review it."
  • - Appears in pending banner
  • - Manager sees "Validation Issues" in review modal
  • - Manager can approve or deny with comment

  • Best for:
  • - Role-based organizations
  • - Balanced control and flexibility
  • - Reducing manager workload while maintaining quality
  • - Most organizations (RECOMMENDED)

  • Manager dashboard shows:
  • - Blue info banner: "Smart Approval Mode (Active)"
  • - "Qualified trades are approved instantly. Trades with issues appear here for review."

  • Auto-enables when:
  • - "Use Roles" turned ON in settings
  • - "Enable Role-Based Staffing" turned ON

Mode 3: MANAGER_APPROVAL (Full Control)

  • Setting value: "MANAGER_APPROVAL"
  • Label in settings: "🔴 Manager Approval Required (Full control)"
  • Description: "You review every trade request before it's approved. Best for specialized roles or when you want strict control over all schedule changes."

  • How it works:
  • - Employee clicks "Pick Up Shift"
  • - ALWAYS sent to manager for review
  • - No auto-approval under any circumstances
  • - Manager must approve or deny every single trade
  • - Employee notified of manager decision via email

  • Employee experience:
  • - Message: "Trade request submitted! Your manager will review it and notify you when approved."
  • - Request appears in pending trades banner
  • - Must wait for manager approval
  • - Cannot have shift until approved

  • Manager workflow:
  • - Trade appears in shift-trades page
  • - Shows pending count badge
  • - Must review and decide on each request
  • - Can approve or deny with comment

  • Best for:
  • - Specialized roles (medical, licensed)
  • - High-stakes environments
  • - Managers who want full control
  • - Compliance-heavy industries

  • Drawbacks:
  • - Higher manager workload
  • - Slower trade process
  • - Employees must wait for approval
  • - May discourage shift flexibility

  • Manager dashboard shows:
  • - Yellow warning banner: "Manager Approval Required (Active)"
  • - "All shift trades require your approval. When an employee tries to pick up a dropped shift, it will appear here for review."

Changing Approval Mode

  • HEAD_MANAGER only can change this setting
  • Navigate to: /{orgId}/settings
  • Section: "Scheduling Settings"
  • Setting: "Shift Trade Approval Policy" dropdown

  • 3 options with emojis:
  • - 🟢 Auto-Approve All Trades (Hands-off) = AUTO_APPROVE
  • - 🟡 Smart Approval (Auto-approve if qualified) - Recommended = CONDITIONAL
  • - 🔴 Manager Approval Required (Full control) = MANAGER_APPROVAL

  • Automatic mode switching:
  • - If current mode is AUTO_APPROVE
  • - AND you enable "Use Roles" or "Enable Role-Based Staffing"
  • - System automatically changes to CONDITIONAL mode
  • - Prevents unqualified employees from picking up role-specific shifts

  • Smart alerts shown:
  • - Blue tip if using roles but not CONDITIONAL:
  • "💡 Tip: Since you're using roles, we recommend 'Smart Approval' to prevent unqualified employees from picking up shifts."
  • - Yellow warning if CONDITIONAL active but roles OFF:
  • "ℹ️ Note: Smart Approval is active but role validation is disabled. Only schedule conflicts, hours limits, and location access will be checked."

  • Click "Save Settings" to apply changes
  • Takes effect immediately for all future trades
  • Does NOT affect pending trades (already submitted)

Manager: Reviewing Trade Requests

How managers approve or deny shift trades

Accessing Shift Trades Page

  • Role required: MANAGER or HEAD_MANAGER
  • Navigate to: /{orgId}/shift-trades
  • Page title: "Shift Trade Requests"
  • Subtitle: "Review and approve employee shift trade requests"
  • Pending count badge shown if any pending (yellow, e.g., "3 Pending Review")

Approval Mode Banner

  • Shows current mode at top of page

  • AUTO_APPROVE (Green banner):
  • - Checkmark icon
  • - "Auto-Approve Mode (Active)"
  • - "Shift trades are currently approved automatically. Employees can pick up dropped shifts instantly without manager approval."
  • - Link to settings to change mode

  • CONDITIONAL (Blue banner):
  • - Clock icon
  • - "Smart Approval Mode (Active)"
  • - "Shift trades are validated automatically. Qualified trades are approved instantly. Trades with issues (role mismatch, conflicts, hours limit) appear here for your review."

  • MANAGER_APPROVAL (Yellow banner):
  • - Clock icon
  • - "Manager Approval Required (Active)"
  • - "All shift trades require your approval. When an employee tries to pick up a dropped shift, it will appear here for review."

4 Filter Tabs

  • Filter icon shown
  • Horizontal pill buttons:

  • 1. Pending (default)
  • - Shows only PENDING requests needing review
  • - Active filter = blue background
  • - Most important filter

  • 2. All
  • - Shows all requests (pending, approved, denied)
  • - Good for audit trail

  • 3. Approved
  • - Shows only approved trades
  • - History of what was approved

  • 4. Denied
  • - Shows only denied trades
  • - History of what was rejected

  • Inactive filters = gray background
  • Click to switch filters
  • Table contents update immediately

Requests Table

  • White card with shadow
  • Table layout (6 columns):

  • Column 1: Status
  • - Icon + badge
  • - PENDING: Clock icon + yellow badge
  • - APPROVED: Checkmark icon + green badge
  • - DENIED: X icon + red badge

  • Column 2: From Employee
  • - Name (e.g., "John Smith")
  • - Email below name
  • - The person who dropped the shift

  • Column 3: To Employee
  • - Name (e.g., "Sarah Johnson")
  • - Email below name
  • - The person trying to pick it up

  • Column 4: Shift Details
  • - Date (e.g., "12/25/2025")
  • - Time range (e.g., "09:00 - 17:00")
  • - Location name (if set)

  • Column 5: Requested
  • - Date request was submitted
  • - Example: "12/20/2025"

  • Column 6: Actions
  • - If PENDING: Blue "Review" link
  • - If completed: Gray text showing reviewer name
  • * "By John" if manager named John approved/denied
  • * "Completed" if no reviewer name

  • Empty state:
  • - Clock icon (gray)
  • - "No trade requests"
  • - If pending filter: "No pending requests at this time"
  • - If other filter: "No [status] requests found"

  • Hover effect: Row turns light gray on hover

Review Modal (Click "Review")

  • Modal overlay (dark gray background)
  • White card centered on screen (600px wide)
  • Title: "Review Shift Trade Request"

  • Section 1: Employee Info (Blue box)
  • - Two-column grid
  • - Left: "Original Employee"
  • * Name
  • * Email
  • - Right: "Wants to Trade To"
  • * Name
  • * Email

  • Section 2: Shift Details (Gray box)
  • - Date
  • - Time range
  • - Location (if set)

  • Section 3: Validation Issues (Yellow warning box - if any)
  • - Only shows if CONDITIONAL mode detected issues
  • - Header: "Validation Issues:"
  • - Details what failed:
  • * "Employee does not have required role"
  • * "Schedule conflict detected"
  • * "Would exceed hours limit"
  • * "No location access"

  • Section 4: Manager Comment
  • - Label: "Manager Comment"
  • - Note: "(Optional for Approve, Required for Deny)"
  • - Textarea (3 rows)
  • - Placeholder: "Add a comment explaining your decision..."
  • - Required if clicking Deny
  • - Optional if clicking Approve

  • Bottom Buttons (3 buttons):
  • 1. Cancel (gray):
  • - Closes modal without action
  • - No changes made
  • 2. Deny (red with X icon):
  • - Requires comment to be filled
  • - Text: "Deny" or "Processing..." when loading
  • - Disabled while processing
  • 3. Approve (green with checkmark icon):
  • - Comment optional
  • - Text: "Approve" or "Processing..." when loading
  • - Disabled while processing

Approve Workflow

  • Step 1: Click "Approve" button in modal
  • - Button shows "Processing..." and disables

  • Step 2: System processes approval
  • - API call: /api/orgs/{orgId}/shift-trades/{id}/approve (POST)
  • - Sends manager comment (if provided)

  • Step 3: Shift assignment updated
  • - Original employee assignment status: DROPPED (NOT deleted - stays assigned)
  • - New employee assigned to shift (new assignment created)
  • - Trade status = APPROVED
  • - Reviewer name recorded

  • Step 4: Notifications sent
  • - Original employee notified: "Your dropped shift was picked up by [Name]"
  • - New employee notified: "Your trade request was approved by [Manager Name]"
  • - Email notifications sent (if enabled in settings)

  • Step 5: Manager sees confirmation
  • - Alert: "Trade request approved successfully!"
  • - Modal closes
  • - Table refreshes
  • - Request moves to "Approved" filter
  • - Pending count decreases

Deny Workflow

  • Step 1: Enter denial reason in comment field
  • - REQUIRED - cannot deny without comment
  • - Example reasons:
  • * "Employee not qualified for this role"
  • * "Would create understaffing"
  • * "Schedule conflict"
  • * "Prefer different coverage"

  • Step 2: Click "Deny" button
  • - If comment empty: Alert "Please provide a reason for denying this request"
  • - If comment provided: Button shows "Processing..." and disables

  • Step 3: System processes denial
  • - API call: /api/orgs/{orgId}/shift-trades/{id}/deny (POST)
  • - Sends manager comment as denial reason

  • Step 4: Trade status updated
  • - Status = DENIED
  • - Reviewer name recorded
  • - Manager comment saved
  • - Shift remains with original employee
  • - Shift still available for others to pick up

  • Step 5: Notifications sent
  • - New employee notified: "Your trade request was denied by [Manager]"
  • - Denial reason shown in email
  • - Original employee NOT notified (shift still available)

  • Step 6: Manager sees confirmation
  • - Alert: "Trade request denied"
  • - Modal closes
  • - Table refreshes
  • - Request moves to "Denied" filter
  • - Pending count decreases

  • After denial:
  • - Shift remains in "Available Shifts" for other employees
  • - Different employee can try to pick it up
  • - Denied employee can try again if issues resolved

Drop & Pickup History

Viewing past trades and audit trail

Employee History Tab

  • Located in employee-trades page
  • Third tab: "History"
  • Title: "Drop & Pickup History"

  • Shows ALL your past activity:
  • - Shifts you dropped
  • - Shifts you picked up
  • - Chronological order (newest first)

  • Each history item shows:
  • - Icon: Down arrow (red) for drops, Up arrow (green) for pickups
  • - Role and location
  • - Date and time
  • - Employee name
  • - Reason for drop/pickup
  • - Status badge:
  • * "Dropped" (red badge)
  • * "Picked Up" (green badge)

  • Empty state:
  • - Clock icon (gray)
  • - "No history"
  • - "No shift drops or pickups yet."

  • Use cases:
  • - See what shifts you've dropped in past
  • - See what shifts you've picked up
  • - Audit your own trade activity
  • - Reference past reasons

Manager History (Approved/Denied Filters)

  • In manager shift-trades page
  • Use "Approved" or "Denied" filters

  • Approved filter shows:
  • - All trades you or other managers approved
  • - Green checkmark icons
  • - Green status badges
  • - Reviewer name shown
  • - Manager comment (if provided)

  • Denied filter shows:
  • - All trades you or other managers denied
  • - Red X icons
  • - Red status badges
  • - Reviewer name shown
  • - Manager comment (denial reason)

  • All filter shows:
  • - Complete audit trail
  • - Every trade request ever made
  • - Mixed statuses (pending, approved, denied)
  • - Sortable and searchable

  • Audit benefits:
  • - See who approved what
  • - Review denial patterns
  • - Compliance documentation
  • - Performance analysis

Stats & Real-Time Updates

Dashboard stats and live data

3 Stats Cards (Employee Page)

  • Located at bottom of employee-trades page
  • 3-column grid (responsive: 3→1 columns on mobile)

  • Card 1: My Upcoming Shifts
  • - Blue calendar icon
  • - Count of your assigned future shifts
  • - Label: "My Upcoming Shifts"
  • - Number updates when you drop/pickup

  • Card 2: Available to Pick Up
  • - Green up-arrow icon
  • - Count of shifts dropped by coworkers
  • - Label: "Available to Pick Up"
  • - Number updates when shifts dropped/picked up

  • Card 3: Recent Activity
  • - Purple clock icon
  • - Count of your history items
  • - Label: "Recent Activity"
  • - Total drops + pickups

  • All cards:
  • - White background
  • - Shadow effect
  • - Rounded corners
  • - Large number display

Real-Time Updates

  • Employee page auto-refreshes every 30 seconds
  • - Fetches latest available shifts
  • - Updates drop history
  • - Refreshes pending trades banner
  • - Updates stats cards

  • Manager schedule real-time sync:
  • - When employee drops shift: localStorage event triggered
  • - Manager schedules listening for "shift-update" event
  • - Manager schedule refreshes automatically
  • - No manual refresh needed

  • Notification triggers:
  • - Drop shift: Manager notified
  • - Pick up shift: Original employee + manager notified
  • - Approve trade: Both employees notified
  • - Deny trade: Requesting employee notified

  • Email notifications (if enabled):
  • - emailNotifyShiftDropped: Manager gets email when shift dropped
  • - emailNotifyShiftAvailable: Employees get email when shifts available
  • - emailNotifyShiftPickedUp: Manager notified of pickup
  • - emailNotifyShiftTradeApproved: Employees notified of approval
  • - emailNotifyShiftTradeDenied: Employee notified of denial

  • Configured in: /{orgId}/settings
  • Email Notifications section
  • Category: "Shift Trades"

Best Practices & Tips

How to use shift trading effectively

For Employees

  • Dropping shifts:
  • - Provide clear, honest reasons
  • - Drop as early as possible (not last minute)
  • - Check if coworkers are available to pick up
  • - Don't abuse the system (managers track history)

  • Picking up shifts:
  • - Verify you're qualified (correct role)
  • - Check for schedule conflicts first
  • - Don't exceed your hours limits
  • - Respond quickly to available shifts (first-come basis)

  • Communication:
  • - Message coworkers if you need someone specific to cover
  • - Contact manager if urgent or special circumstances
  • - Be responsive to notifications

  • Approval awareness:
  • - Know your org's approval mode
  • - If CONDITIONAL/MANAGER_APPROVAL, allow time for review
  • - Don't assume instant approval
  • - Check pending trades banner regularly

For Managers

  • Choose right approval mode:
  • - Simple teams: AUTO_APPROVE
  • - Role-based teams: CONDITIONAL (recommended)
  • - Specialized roles: MANAGER_APPROVAL

  • Review trades promptly:
  • - Check shift-trades page daily
  • - Respond to pending requests within 24 hours
  • - Don't leave employees waiting

  • Provide clear feedback:
  • - Always add comments when denying
  • - Explain why trade was rejected
  • - Suggest alternatives if possible

  • Monitor patterns:
  • - Watch for employees who frequently drop shifts
  • - Identify coverage gaps
  • - Address reliability issues
  • - Use history for performance reviews

  • Enable smart features:
  • - Use role-based staffing if team has specialized roles
  • - Enable CONDITIONAL mode to reduce workload
  • - Configure email notifications
  • - Set up staffing requirements to prevent understaffing

Common Scenarios

  • Scenario 1: Employee calls in sick last minute
  • - Employee drops shift with reason "Sick"
  • - If AUTO_APPROVE: Coworker picks up instantly
  • - If MANAGER_APPROVAL: Manager gets notification, approves quickly
  • - Coverage maintained

  • Scenario 2: Employee wants to swap shifts with specific coworker
  • - Employee 1 drops their shift
  • - Employee 2 picks it up (pre-arranged)
  • - If CONDITIONAL: Auto-approves if both qualified
  • - Swap completed

  • Scenario 3: Unqualified employee tries to pick up shift
  • - Server shift available
  • - Cook tries to pick it up
  • - If CONDITIONAL mode: Blocked with "role mismatch" validation issue
  • - Sent to manager for review
  • - Manager denies with comment: "You're not qualified as a Server"

  • Scenario 4: Employee picks up too many shifts
  • - Employee at 38 hours this week
  • - Tries to pick up 8-hour shift (would be 46 hours)
  • - If CONDITIONAL: Blocked with "hours limit" validation issue
  • - Sent to manager for review
  • - Manager approves with comment: "Approved for overtime due to short staffing"

  • Scenario 5: Emergency coverage needed
  • - Employee drops shift for family emergency
  • - No one picks it up for 2 hours
  • - Manager sees dropped shift in schedule
  • - Manager manually assigns someone
  • - Or manager uses AI Copilot: "Assign John to the morning shift on 12/25"

Troubleshooting

Common issues and solutions

Employee Issues

  • Issue: "Drop Shift" button not showing
  • - Only future shifts can be dropped
  • - Shift must be assigned to you
  • - Past shifts cannot be dropped
  • Solution: Check shift date is today or later

  • Issue: "Pick Up Shift" fails with error
  • - May have schedule conflict
  • - May not have required role
  • - May exceed hours limit
  • Solution: Check error message for specific issue

  • Issue: Trade stuck in "Pending" for days
  • - Manager approval mode active
  • - Manager hasn't reviewed yet
  • Solution: Contact your manager to review trade requests

  • Issue: Dropped shift not showing in available
  • - May have been picked up instantly (AUTO_APPROVE mode)
  • - Check your History tab
  • Solution: Refresh page, check available shifts tab

  • Issue: Can't see any available shifts
  • - No one has dropped shifts recently
  • - All dropped shifts were already picked up
  • Solution: Check back later, ask coworkers

Manager Issues

  • Issue: Trade requests not showing up
  • - Check approval mode setting
  • - If AUTO_APPROVE: Trades approve automatically (no manager review)
  • - If CONDITIONAL: Only problem trades show up
  • Solution: Review approval mode in settings

  • Issue: Can't approve trade - validation issues shown
  • - Validation issues are warnings, not blockers
  • - Can still approve if you override the validation
  • Solution: Review issue, add comment explaining override, approve

  • Issue: Employee complains trade was denied but didn't see reason
  • - Check email notifications enabled
  • - Ensure you added comment when denying
  • Solution: Enable emailNotifyShiftTradeDenied in settings

  • Issue: Too many trade requests to review
  • - MANAGER_APPROVAL mode creates high workload
  • Solution: Switch to CONDITIONAL mode to auto-approve qualified trades

Ready to Empower Your Team with Flexible Shift Trading?

XShift AI makes shift swaps seamless with smart approval workflows and real-time updates.

How to Let Employees Trade Shifts & Find Coverage | XShift AI