Skip to main content

Custom Statuses

The Custom Statuses module allows departments to define their own personnel statuses, staffing levels, and unit states. It is managed by the CustomStatusesController.

Overview

Authorization: CustomStates_View policy

The index page displays all custom states organized into three categories:

  • Unit States — Custom operational statuses for units
  • Personnel Status — Custom action/response statuses for personnel
  • Personnel Staffing — Custom availability/staffing levels for personnel

Custom State Categories

Unit States

Define custom operational statuses for units (replaces default statuses like Available, Responding, On Scene, etc.).

Personnel Status

Define custom response/action statuses for personnel (replaces default statuses like Standing By, Responding, On Scene, etc.).

Personnel Staffing

Define custom availability levels for personnel (replaces default levels like Available, Delayed, Unavailable, etc.).

Creating Custom States

Authorization: CustomStates_Create policy

State Set Configuration

FieldRequiredDescription
NameYesState set name
DescriptionNoState set description
TypeYesUnit, Personnel, or Staffing

State Details (Options/Buttons)

Each state set contains multiple detail options. At least one is required.

FieldDescription
Button TextDisplay text on status buttons
Button ColorBackground color (hex)
Text ColorForeground color (hex, default #000000)
OrderDisplay order
Base TypeMapping to a standard status for system behavior
GPS RequiredWhether GPS location is required when setting this status
Note TypeType of note required (None, Optional, Required)
Detail TypeDestination type (None, Calls, Stations, CallsAndStations)

Detail Type Behavior

The Detail Type determines what destination options appear when a user selects this status:

Detail TypeBehavior
NoneNo destination selection
CallsDropdown of active calls
StationsDropdown of station groups
CallsAndStationsDropdown of both calls and stations

Editing Custom States

Authorization: CustomStates_Update policy + CanUserModifyCustomStatusAsync runtime check

Editing State Sets

Modify the state set name, description, and all detail options. Handles both existing detail IDs (update) and new details (create).

Editing Individual Details

The EditDetail action allows editing a single state detail option for fine-grained control.

Creates AuditEvent (CustomStatusUpdated / CustomStatusDetailUpdated).

Deleting Custom States

Authorization: CustomStates_Delete policy + CanUserModifyCustomStatusAsync runtime check

Creates AuditEvent (CustomStatusRemoved).

Default Fallback Statuses

When no custom states are defined, the system provides built-in defaults:

Default Personnel Statuses

IDStatus
0Standing By
1Not Responding
2Responding
3On Scene
4Available Station
5Responding to Station
6Responding to Scene

Default Personnel Staffing Levels

IDLevel
0Available
1Delayed
2Unavailable
3Committed
4On Shift

Default Unit Statuses

13 built-in statuses from Available through Enroute.

JSON API Endpoints

These endpoints are consumed by views throughout the application for building dynamic status dropdowns:

EndpointPurpose
GetPersonnelStatusesForDepartmentPersonnel statuses (custom or default)
GetPersonnelStaffingLevelsForDepartmentStaffing levels (custom or default)
GetUnitStatusesLevelsForDepartmentUnit statuses for a specific unit type
GetUnitStatusesLevelsForDepartmentCombinedAll unit statuses combined across types

All endpoints support an includeAny parameter to add an "Any" option to the list.

Interactions with Other Modules

ModuleInteraction
DashboardCustom statuses and staffing levels displayed on main dashboard
UnitsCustom unit states define unit status options
DispatchCustom statuses shown during dispatch operations
ReportsCustom state names resolved in all reports
MappingStatus colors used for map markers
NotificationsCustom states used for availability alert configuration
Department SettingsSuppressed staffing levels reference custom states