User Guide: Inspection Type Management
Last updated: January 15, 2026 Related Stories: US-39
Overview
Inspection Type Management allows administrators to dynamically add, modify, and organize inspection types without code changes. This feature uses the Entity Manager to define inspection codes that are linked to permit types, enabling flexible configuration of inspection requirements for different permit categories.
Prerequisites
Before configuring inspection types, ensure:
- User has System Administrator role
- Entity Manager App access is enabled
- Permit Types entity exists
- Inspection Codes entity is created
- Permit-Inspection Mapping entity is configured
Understanding the Inspection Type Architecture
Entity Relationships
| Entity | Key Fields | Relationship |
|---|---|---|
| Permit Types | permit_type_id, permit_name, entity_id, form_id | Source entity for permit categories |
| Permit-Inspection Mapping | permits_menu, inspection_codes, calendar_id | Links permit types to inspection codes and calendars |
| Inspection Codes | inspection_code, name, is_active, description | Master list of all inspection types |
Relationship Flow:
- User selects a Permit Type in the booking form
- System queries Permit-Inspection Mapping filtered by the selected permit type
- Available Inspection Codes are displayed based on the mapping
- The associated Calendar determines scheduling options
Key Entities
| Entity | Purpose |
|---|---|
| Inspection Codes | Master list of all inspection types |
| Permit Types | Categories of permits (Building, Electrical, etc.) |
| Permit-Inspection Mapping | Links permit types to allowed inspection codes |
Accessing Inspection Type Management
Navigation
- Log in to the GovAssist Admin Portal
- Navigate to Entity Manager
- Select the Inspection Codes entity from the sidebar
- View the list of current inspection types
Managing Inspection Types
Viewing Inspection Types
The Inspection Codes grid displays:
| Column | Description |
|---|---|
| Code | Unique identifier for the inspection type |
| Name | Display name shown to users |
| Active | Whether the type is available for scheduling |
| Description | Detailed explanation of the inspection |
| Created | When the type was added |
| Modified | Last update timestamp |
Adding a New Inspection Type
Step 1: Open Add Form
- Click the + Add Record button
- The inspection type form opens
Step 2: Enter Inspection Details
| Field | Type | Required | Description |
|---|---|---|---|
| Inspection Code | Text | Yes | Unique identifier (e.g., "BLDG-FOUND") |
| Inspection Name | Text | Yes | Display name (e.g., "Foundation Inspection") |
| Is Active | Boolean | Yes | Enable/disable for scheduling |
| Description | Textarea | No | Detailed inspection requirements |
Step 3: Configure Additional Fields
Depending on your entity configuration:
| Field | Description | Example |
|---|---|---|
| Typical Duration | Expected inspection time | 30 minutes |
| Required Certifications | Inspector qualifications needed | Building Inspector License |
| Checklist Template | Associated checklist form | Foundation Checklist Form |
Step 4: Save the Inspection Type
- Review all entered information
- Click Save to create the record
- The new type appears in the grid
Modifying Inspection Types
- Click on the inspection type row to open details
- Update the desired fields
- Click Save to apply changes
Note: Modifying inspection codes may affect existing appointments. Changes to the name will display on future bookings.
Deactivating Inspection Types
To remove an inspection type from scheduling without deleting:
- Open the inspection type record
- Set Is Active to false/unchecked
- Save the record
Deactivated types:
- No longer appear in scheduling dropdowns
- Existing appointments retain the type
- Can be reactivated later
Deleting Inspection Types
Warning: Only delete inspection types that have never been used.
- Select the inspection type record
- Click the Delete button
- Confirm deletion
Note: Deleting types with associated appointments will cause data integrity issues.
Inspection Result Statuses
When inspections are completed, results use these status options:
| Status | Value | Description |
|---|---|---|
| Pass | pass | Inspection requirements met |
| Fail | fail | Requirements not met, corrections needed |
| Conditional Pass | conditional_pass | Passed with minor items to address |
| Needs Reinspection | needs_reinspection | Follow-up inspection required |
Linking Inspection Types to Permit Types
Permit-Inspection Mapping
Each permit type can have multiple inspection types available:
Step 1: Navigate to Mapping Entity
- Go to Entity Manager
- Select Permit-Inspection Mapping entity
Step 2: Create a Mapping Record
| Field | Description | Example |
|---|---|---|
| Permit Type | Select the permit category | Building Permit |
| Inspection Code | Select the inspection type | Foundation Inspection |
| Calendar | Associated calendar for scheduling | Building Inspections Calendar |
| Sequence | Order in permit workflow (optional) | 1 |
| Required | Mandatory for permit completion | Yes |
Step 3: Repeat for All Applicable Types
A typical building permit might include:
| Sequence | Inspection Type | Required |
|---|---|---|
| 1 | Foundation Inspection | Yes |
| 2 | Framing Inspection | Yes |
| 3 | Electrical Rough-In | Yes |
| 4 | Plumbing Rough-In | Yes |
| 5 | Insulation Inspection | No |
| 6 | Drywall Inspection | No |
| 7 | Final Inspection | Yes |
Inspection Type Hierarchies
Category Structure
Organize inspection types by department:
| Category | Inspection Types |
|---|---|
| Building | Foundation, Framing, Final, Footing, Slab |
| Electrical | Rough-In, Service, Final, Pool/Spa |
| Plumbing | Rough-In, Sewer, Water, Final |
| Mechanical | Duct, Equipment, Final |
| Fire | Sprinkler, Alarm, Hood System, Fire Final |
Subcategories (Advanced)
For complex hierarchies, use a parent-child relationship via association fields:
| Parent Category | Subcategory | Inspection Types |
|---|---|---|
| Building Inspections | Structural | Foundation, Framing, Final Structural |
| Building Inspections | Non-Structural | Insulation, Drywall |
Note: To implement hierarchies, create a
parent_categoryassociation field on the Inspection Codes entity that references itself or a separate Categories entity.
Appointment Form Integration
How Inspection Types Appear
When booking an inspection, the system:
- Retrieves the permit type from the permit record
- Queries Permit-Inspection Mapping for available inspection codes
- Filters to show only active inspection types
- Displays in the appointment form dropdown
Field Extraction
The appointment form uses these field mappings:
| Appointment Field | Inspection Code Field |
|---|---|
| Inspection Type | inspection_name |
| Inspection Code | inspection_code |
| Is Active Filter | is_active (must be true) |
Common Inspection Type Configurations
Residential Building Permit
| Code | Name | Typical Duration | Required |
|---|---|---|---|
| RES-FOUND | Foundation Inspection | 30 min | Yes |
| RES-FRAME | Framing Inspection | 45 min | Yes |
| RES-ELEC-R | Electrical Rough-In | 30 min | Yes |
| RES-PLUMB-R | Plumbing Rough-In | 30 min | Yes |
| RES-MECH | Mechanical Inspection | 30 min | No |
| RES-INSUL | Insulation Inspection | 20 min | No |
| RES-FINAL | Final Inspection | 60 min | Yes |
Commercial Building Permit
| Code | Name | Typical Duration | Required |
|---|---|---|---|
| COM-FOUND | Commercial Foundation | 60 min | Yes |
| COM-STEEL | Structural Steel | 90 min | Yes |
| COM-FIRE | Fire Suppression | 60 min | Yes |
| COM-ELEV | Elevator Inspection | 45 min | Conditional |
| COM-ADA | ADA Compliance | 45 min | Yes |
| COM-FINAL | Commercial Final | 120 min | Yes |
Fire Permit
| Code | Name | Typical Duration | Required |
|---|---|---|---|
| FIRE-SPRINK | Sprinkler System | 60 min | Yes |
| FIRE-ALARM | Fire Alarm System | 45 min | Yes |
| FIRE-HOOD | Kitchen Hood System | 30 min | Conditional |
| FIRE-FINAL | Fire Final | 45 min | Yes |
Bulk Operations
Importing Inspection Types
For initial setup, use bulk import:
- Navigate to Entity Manager > Inspection Codes
- Click Import button
- Upload CSV with columns:
- inspection_code
- inspection_name
- is_active
- description
- Review mapping and confirm import
Exporting Inspection Types
- Click Export in the grid toolbar
- Select format (CSV, Excel)
- Download the file
Best Practices
Naming Conventions
- Codes: Use consistent prefixes (BLDG-, ELEC-, FIRE-)
- Names: Be descriptive but concise
- Avoid: Special characters, abbreviations users won't understand
Organization
- Group related inspection types
- Use sequence numbers for workflow order
- Document requirements in descriptions
Maintenance
- Review inactive types quarterly
- Archive rather than delete historical types
- Update durations based on actual inspection times
Troubleshooting
Common Issues
Q: New inspection type doesn't appear in booking form. A: Check that:
- Is Active is set to true
- Permit-Inspection Mapping exists for the permit type
- The mapping references the correct calendar
- Clear browser cache and refresh
Q: Cannot delete an inspection type. A: The type may have existing appointments. Deactivate instead of deleting.
Q: Inspection type shows wrong name. A: Verify the inspection_name field is updated. Existing appointments may retain the old name.
Q: Missing inspection types for certain permits. A: Create Permit-Inspection Mapping records linking the permit type to desired inspection codes.
Q: Inspectors don't see certain inspection types. A: Check inspector specialty assignments match the inspection type category.
Related Documentation
- Entity Builder Configuration
- Calendar Configuration Wizard
- Inspector Certification Tracking
- Inspection Result Recording
- Form Builder Configuration
Technical Reference
Source Components:
- Inspection Type Service:
apps/calendar-app/src/services/inspectionType/ - API Routes:
apps/calendar-app/src/services/inspectionType/inspectionTypeAPIRoutes.ts - Result Status Options:
apps/calendar-app/src/pages/Calendar/components/AppointmentListView/components/InspectionResultDialog/const.ts - Permit Field Extraction:
apps/calendar-app/src/pages/Calendar/components/BookAppointmentDialog/components/AppointmentForm/usePermitInspectionFields.ts
For additional assistance, contact your System Administrator.