The shift swaps page is the central hub for managing shift trade requests and pending time-off approvals. It combines two functions: processing shift swap requests between staff members and reviewing time-off override requests.
Page sections
The page displays two sections:
- Pending Time Off Requests (manager-only) -- a table of staff availability overrides awaiting approval.
- Swap Requests Panel -- incoming and outgoing shift swap requests.
Shift swap workflow
Shift swaps follow a three-step process with notifications at each stage:
Step 1: Staff requests a swap
A staff member initiates a swap from either the schedule page or the staff portal:
- Select the shift they want to give up.
- Optionally choose a specific colleague to swap with, or leave it open for anyone.
- Add an optional message explaining the reason.
- Submit the request.
The request is created with a pending status and expires after 7 days if no action is taken. If a target colleague was specified, they receive a push notification.
Step 2: Target accepts
The target staff member (or any eligible colleague for open requests) reviews the swap:
- View the incoming swap request with the shift details and message.
- Select one of their own upcoming shifts to offer in exchange.
- Click Accept.
The request status changes to accepted and the original requester is notified that the swap is pending manager approval.
Step 3: Manager approves
A manager with the staff_schedule_access permission reviews the accepted swap:
- View both the requester's and target's shift details.
- Click Approve to execute the swap, or Reject with an optional reason.
When approved, the system automatically:
- Swaps the
staffIdon both schedule records so each person now owns the other's shift. - Sends push notifications and in-app notifications to both staff members.
- Updates the swap request status to approved.
When rejected, the requester receives a notification with the rejection reason.
Swap request statuses
| Status | Meaning |
|---|---|
| Pending | Request submitted, waiting for target to accept |
| Accepted | Target accepted, waiting for manager approval |
| Approved | Manager approved, shifts have been swapped |
| Rejected | Manager denied the swap |
| Cancelled | Requester cancelled the request before it was processed |
| Expired | Request expired after 7 days without action |
Incoming vs. outgoing requests
The swap panel shows two views:
- Incoming -- swap requests targeting the current user, plus any open (unassigned) requests from colleagues. Your own requests are filtered out.
- Outgoing -- swap requests you have submitted. You can cancel pending requests from this view.
Cancelling a request
A requester can cancel their own swap request at any time before it is approved. Click Cancel on the outgoing request. Only the original requester can cancel -- not the target or another staff member.
Pending time-off requests
The top section of the page (visible to managers only) shows a table of pending availability overrides from staff. Each row displays:
| Column | Description |
|---|---|
| Staff | The staff member's name |
| Date | The requested date |
| Type | "Off" (unavailable) or "Available" (modified hours) |
| Hours | Full day or the specific time window |
| Reason | The staff member's explanation |
| Actions | Approve or Deny buttons |
Click Approve to confirm the time-off request or Deny to reject it. The staff member receives a push notification with the decision.
Notifications
The swap system sends notifications at each transition:
| Event | Recipient | Channel |
|---|---|---|
| Swap request created | Target staff | Push notification + in-app |
| Swap accepted | Requester | Push notification + in-app |
| Swap approved | Both staff | Push notification + in-app |
| Swap rejected | Requester | Push notification + in-app |
| Time off approved | Staff member | Push notification |
| Time off rejected | Staff member | Push notification |
Permissions
- Any staff member with
staff_schedule_accesscan view and create swap requests. - Manager approval and time-off decisions require the same permission plus Admin or SuperAdmin role.
Encourage staff to submit swap requests early so there is adequate time for the target to accept and the manager to review. Open requests (without a specific target) are visible to all eligible colleagues, which can fill swaps faster. Review pending time-off requests promptly -- they block staff from planning until resolved.
Cannot approve a swap -- The swap must be in "accepted" status first. The target staff member needs to accept before the manager can approve.
Swap request disappeared -- Check if it expired (7-day expiry) or if the requester cancelled it. Expired requests are no longer shown in the active list.
Both staff do not see the updated schedule -- After approval, both staff should refresh their schedule view. The shift reassignment happens immediately on approval.
Manager cannot see pending time-off requests -- The section only appears when there are pending requests. If no overrides are waiting for review, the section is hidden.

