What - The Personnel API now includes DELETE endpoint functionality, providing complete CRUD (Create, Read, Update, Delete) capabilities for personnel record management through programmatic API calls. This endpoint maintains consistency with existing GET and PATCH operations by using the same data structure, authentication patterns, and authorization controls to enable permanent removal of personnel records via API.
Why - This enhancement was implemented due to customer request to provide complete lifecycle management of personnel data through the API, eliminating the need for manual database intervention when removing personnel records from integrated systems.
How - To delete personnel records via API:
/fd-api/v1/personnel/{personnel_id}DELETE /fd-api/v1/personnel/{personnel_id}

Use Case - A fire department integrating FirstDue with their HR system needs to maintain synchronized personnel records across both platforms. When an employee separates from the department, the HR system can now programmatically remove that individual's personnel record from FirstDue through a DELETE API call, ensuring data consistency without requiring manual administrative intervention in the FirstDue interface.
What - Administrators can now configure off roster approval routing with granular control by selecting specific work type subtypes in addition to work types. This enhancement allows organizations to direct off roster requests to the appropriate approvers based on both work type and subtype combinations, providing more precise approval workflow management. The subtype selector appears dynamically when a single work type with available subtypes is selected, and supports multiple subtype selections within that work type.
Why - This feature was added due to customer request for more flexible approval routing that accounts for specialized work categories within broader work types, ensuring off roster requests reach the most appropriate approver based on the specific nature of the work.
How - To configure subtype-based approval routing:
Note: This feature only affects NEW approval routing configurations; all existing configurations remain unchanged. Subtype selection is only available for single work type configurations; selecting multiple work types automatically disables subtype selection and applies routing to all subtypes.Use Case - A fire department has an "Administrative" work type that includes subtypes for "Training," "Equipment Maintenance," and "Community Outreach." With this enhancement, the department can route training-related off roster requests to the Training Chief for approval, equipment maintenance requests to the Apparatus Officer, and community outreach requests to the Public Information Officer—all under the same "Administrative" work type but with appropriate approver assignments based on the specific subtype.
What - The scheduling system now supports additional rotation patterns to accommodate diverse shift scheduling requirements across public safety organizations. New patterns include: 1 on / 1 off / 1 on / 9 off, 1 on / 19 off, 1 On / 26 Off, 1 on / 4 off / 1 on / 8 off, various 2-day on/off combinations, multi-week patterns including PD 28 Weeks, and complex extended rotation sequences with alternating on/off periods.
Why - These rotation patterns were added due to customer request to support specialized scheduling needs across different public safety agencies with unique operational requirements and staffing models.
How - To use the new rotation patterns:
Use Case - A police department operating on a specialized 28-week rotation cycle can now accurately schedule their personnel using the PD 28 Weeks pattern, which alternates between 5-day and 6-day work periods with 2-3 day rest periods throughout the cycle. This ensures proper staffing coverage while maintaining compliance with their collective bargaining agreement and allows accurate tracking of work hours and rotation positions for all officers.
What - Administrators can now enforce time-based restrictions on when users can clock into incidents by defining a specific time window (in minutes, hours, or days) after a selected CAD dispatch status timestamp occurs. This feature validates clock-in attempts in real-time and prevents users from clocking into incidents outside the configured allowable time frame, displaying a clear error message when the window has expired or when the required CAD status timestamp is missing.
Why - This enhancement was implemented due to customer request to maintain accurate incident time tracking by preventing late or retroactive clock-ins that fall outside the operational window of an incident, ensuring payroll accuracy and compliance with time reporting requirements.
How - To configure incident clock-in windows:

Use Case - A fire department configures a 2-hour clock-in window based on the "Dispatched" CAD status. When an incident is dispatched at 2:00 PM, firefighters can successfully clock into that incident until 4:00 PM. If a firefighter attempts to clock in at 4:30 PM (outside the window), they receive an error message and cannot create a time punch, preventing inaccurate retroactive time entries and ensuring all incident time is captured within the actual operational period of the emergency response.
What - Users can now filter the available personnel list in the Availability tab using multiple criteria simultaneously to quickly identify the right staff for shift assignments. The filtering system supports six categories (Group, Station, Shift, Rank, Division, District) that can be applied together using AND logic, with visual indicators showing the number of active filters and a one-click reset option to restore the full user list.
Why - This enhancement was implemented due to customer request to streamline workforce management and reduce the time required to locate appropriate personnel when making shift assignments, particularly for larger departments with extensive rosters.
How - To filter available personnel:
Use Case - A battalion chief needs to fill an unexpected vacancy on Engine 5's A-Shift and wants to find a qualified firefighter from Station 3 who holds the rank of Firefighter II. Using the filter system, they select "Station 3," "A-Shift," and "Firefighter II" rank, immediately narrowing the available personnel list from 50+ employees to 3 qualified candidates who meet all criteria, significantly reducing assignment time and ensuring appropriate staffing.
What - The chat interface now includes a restored close button (X) in the interface header, allowing users to dismiss the chatbot when needed to prevent interface obstruction and enable seamless navigation within the product. The close button provides intuitive control over chat visibility with one-click dismissal while preserving conversation context for future interactions.
Why - This enhancement was implemented due to customer request after users reported difficulty navigating the product with the chatbot remaining open and obstructing access to other features.
How - To close the chat interface:
What - Users can now edit and delete their own shift board entries without requiring administrator intervention through a new "Can edit self from shift board" permission with separate Edit and Delete sub-functions. This self-service capability allows users to modify entry times for individual days and remove entries, with automatic integration into existing time off and off roster approval workflows when users move themselves to those statuses.
Why - This enhancement was implemented due to customer request to empower users with greater schedule autonomy while reducing administrative workload and allowing faster schedule adjustments for individual personnel.
How - To enable self-service editing:
Use Case - A firefighter realizes they need to adjust their shift start time by 15 minutes for a single day due to a personal appointment. Instead of contacting their supervisor or administrator, they click the edit icon on their shift board entry, adjust the start time from 8:00 AM to 8:15 AM, and save the change. If they need to request time off instead, they can move themselves to time off status, which automatically triggers the department's standard time off approval workflow.
What - Resolved a critical validation error that prevented users and administrators from submitting vacation bids when users had prior Time Off entries on their rotation schedule. The system was incorrectly rejecting valid rotation assignments with false "Rotation does not occur on [date]" errors, blocking the entire vacation bidding workflow.
Why - This fix was implemented due to customer request after users with legitimate rotation assignments were unable to complete vacation bid submissions, causing workflow disruptions during vacation bidding periods.
How - The fix applies automatically to all vacation bidding workflows:
Use Case - A firefighter assigned to A-Shift rotation submits a vacation bid for March 15-20. They previously used a Kelly Day (Time Off) on March 10. Before this fix, the system incorrectly flagged the March 15 rotation date as invalid due to the earlier Time Off entry, preventing bid submission. Now the system properly recognizes the valid rotation assignment for March 15-20 and allows the vacation bid to be submitted successfully.
What - Corrected the Shift Board's validation logic when dragging and dropping unassigned personnel to assignments by evaluating actual activity time frames instead of calendar dates. The system now properly assesses time overlap, allowing users to schedule personnel accurately regardless of calendar date boundaries—especially for activities spanning midnight.
Why - This fix was implemented due to customer request after users encountered false validation errors when scheduling overnight shifts, preventing valid personnel assignments that crossed midnight into the next calendar day.
How - The fix applies automatically to drag-and-drop operations:
Use Case - A paramedic has unassigned availability from 6:00 PM on Monday to 6:00 AM on Tuesday (overnight shift). A supervisor needs to assign them to an ambulance that operates from 2:00 AM to 6:00 AM on Tuesday morning. Before this fix, the system incorrectly rejected this assignment because the calendar dates didn't match, even though the times overlapped. Now the system correctly recognizes the 2:00 AM - 6:00 AM window falls within the paramedic's 6:00 PM - 6:00 AM availability and allows the assignment.
What - Resolved an issue that prevented users from updating rotation end dates when a user had multiple consecutive assignments to different vacancy positions within the same shift board assignment using identical rotations. The system now properly handles scenarios where users fill different positions across the same assignment, allowing seamless rotation management without error messages.
Why - This fix was implemented due to customer request after users encountered validation errors when attempting to update rotation end dates for personnel assigned to multiple consecutive vacancy positions.
How - The fix applies automatically to rotation management:
Use Case - A firefighter is assigned to fill Position 1 (January 1-15) and Position 2 (January 16-31) within the same engine company assignment, both using the same 24-hour rotation pattern. The department needs to extend the rotation end date from January 31 to February 28. Before this fix, attempting to update the rotation end date generated a validation error. Now the system properly recognizes both consecutive position assignments and allows the rotation end date to be updated successfully.
What - Corrected critical issues in the approval routing logic for Time Off and Shift Trade requests when users are assigned to multiple roles with varying permissions. The system now accurately evaluates permissions across all user roles and properly routes approval requests to on-duty users, ensuring that users with at least one qualifying role receive notifications and appear in approver selection dropdowns as intended.
Why - This fix was implemented due to customer request after users with multiple roles and appropriate permissions in at least one role were not receiving approval notifications or appearing as available approvers in the system.
How - The fix applies automatically to Time Off and Shift Trade workflows:
Use Case - A battalion chief holds two roles: "Operations Chief" (with Time Off approval permissions) and "Training Officer" (without approval permissions). Before this fix, the system incorrectly excluded them from receiving on-duty approval notifications because not all their roles had the permission. Now the system correctly recognizes they have the required permission in their Operations Chief role and properly routes Time Off approval requests to them when they are on duty.
What - Resolved a bug that prevented users from selecting vacation bid dates across multiple months when chosen in non-chronological order. Users can now freely select dates from any months in any sequence without encountering errors, improving flexibility in the date selection workflow while maintaining the 1-year maximum range validation.
Why - This fix was implemented due to customer request after users encountered blocking errors when naturally selecting vacation dates based on their needs rather than calendar order.
How - The fix applies automatically to date selection:
Use Case - A firefighter wants to use vacation time strategically throughout the year, selecting December 20-25 for holidays, then jumping to July 4-10 for summer vacation, then back to January 2-5 for New Year's. Before this fix, this non-sequential month selection triggered an error and prevented bid submission. Now the system accepts all date selections regardless of the order in which months are chosen, and the vacation bid is successfully saved.
What - Corrected the call shift ranking system to properly apply the "last date worked" tie breaker rule when multiple users have identical hours. The system was incorrectly sorting tied users by User ID instead of prioritizing users based on when they last worked, which prevented fair distribution of call shift assignments according to configured business rules.
Why - This fix was implemented due to customer request to ensure equitable rotation of call shift assignments by properly prioritizing users who worked furthest in the past when multiple users have the same accumulated hours.
How - The fix applies automatically to existing call shift rules:
Use Case - Three paramedics are tied at 24 accumulated call shift hours: Brandon last worked January 1, Sarah last worked January 15, and Mike last worked January 20. Before this fix, the system incorrectly ranked them alphabetically by User ID. Now the system correctly ranks Brandon #1 (oldest work date), Sarah #2, and Mike #3 (most recent work date), ensuring Brandon receives priority for the next call shift assignment as intended by the department's fair rotation policy.