Clients & Properties
Crew Ops Pro models both Clients (customers) and their Properties (service locations). Properties are first-class entities that let you manage service locations, inspection status, property metadata, photos and map views
Jeremy Mckinney
Last Update 4 bulan yang lalu
Clients — quick overview
- Client records hold the primary contact, phone, email and address and a history of linked jobs, invoices and notes. Use client records to see a customer’s jobs and related properties.
- Clients are selectable when creating properties, jobs, estimates or invoices so relationships are maintained across the system.
Properties — what they are
Properties represent service locations (addresses) associated with a client. Each property stores:
- Address fields (address1, address2, city, state, zip) and geocoded coordinates (lat/lng). The UI attempts to geocode addresses automatically when a property is created or updated.
- Property metadata: property_type (rental, owner_occupied, commercial, other), bedrooms, bathrooms, square_footage, optional photo_url and freeform notes.
- Links to the owning client (client_id) and to property inspections (inspection history).
Adding & editing properties
- Use the Add Property action in the Properties page to open a property dialog. The dialog enforces required fields (client, address, city, state, zip, property type) and optional numeric fields (bedrooms, bathrooms, square footage). The component geocodes addresses to obtain coordinates; if geocoding fails the property is still saved but without coordinates.
- On successful save the app invalidates properties queries and logs an activity entry (create/update).
- The Properties screen supports both a list (table/cards) and a map view. Use the map for visual inspection of your portfolio or the list for bulk actions and details. The Properties page shows address, client, type, quick details (beds/baths/sqft) and an inspection status badge (for rental properties).
- In list mode clicking a property opens its details page (/properties/:id) for deeper actions and inspection history.
Inspection status & health
- Crew Ops Pro calculates an inspection status for properties (OK / Due Soon / Overdue / No History) based on the most recent inspection date and the property's inspection_frequency_months. The logic:
- If there is no inspection history → No History.
- Otherwise the code computes nextDue = lastInspection + frequencyMonths.
- If nextDue is in the past → Overdue; if within 30 days → Due Soon; otherwise → OK.
- This calculation is implemented centrally in calculateInspectionStatus.
- The Properties UI uses this status to filter properties (All / Due Soon / Overdue / No History) and to show a visual badge on list rows/cards for quick triage.
Portfolio & photos
- The system also includes a Job Portfolio view that aggregates job photos and links each photo back to the job and the property (address). The portfolio search allows searching by job #, title, client or address so photos can be found by property or client.
Best practices
Geocodeable addresses: For maps and routing make sure addresses are correct and complete. The dialog attempts to geocode on save, but good address data improves results.
Use property types: Mark rentals or owner-occupied properties correctly — inspection workflows and status badges use the property type.
Attach photos to jobs: Photos attached to job records appear in the portfolio and are searchable by property address.
