Technicians
Field-team profiles — skills, certifications, home base, hourly rate, truck inventory.
A technician record wraps a regular Workestra user with the field-service-specific data the dispatcher needs: skills, home location, hourly rate, and (optionally) a truck stock location. AI dispatch uses these to score recommendations.
Creating a technician
Go to /fsm/technicians → New technician.
| Field | Required | Notes |
|---|---|---|
| User | ✓ | Pick an existing Workestra workspace member (one technician per user per workspace) |
| Display name | ✓ | What shows on the dispatcher board + customer-facing reports |
| Email + Phone | Contact details (defaults from the user record) | |
| Employment kind | employee / contractor / partner | |
| Home service area | Default zone — used in proximity scoring | |
| Home latitude / longitude | The geographic point distance is measured from | |
| Hourly rate + Currency | Default labor billing rate | |
| Truck location | Stock location of kind=virtual that holds the tech's on-truck inventory | |
| Active | Inactive techs are hidden from dispatch + lists |
Creating a technician automatically also creates a resource_resources row (with owner_type='technician') — that's what lib/resource consults for the tech's calendar.
Skills
Skills come from Workestra's workspace-wide skill taxonomy (shared with the People, Recruiting, and Planning modules — so a tech who's also an employee on a project keeps one skill list).
On the technician detail page (/fsm/technicians/[id]):
- Click Add skill in the Skills card.
- Pick a skill from the taxonomy (or create a new one if you have permission).
- Set:
- Proficiency — 1 to 5 (self-rated)
- Is certified — yes/no
- Certified at / certified by — date + issuer (for tracked certifications like EPA 608, NEC 2023, etc.)
- Notes — free text
Skill match in AI dispatch checks for presence (not proficiency level) — every required skill that the tech has counts as 1. Proficiency + certification are surfaced as context, not as a scoring signal in v1.
Home location
Two ways to use it:
| Setup | Effect on AI dispatch |
|---|---|
| Home service area set | Same-service-area appointments score 0.9 on proximity |
| Home lat / lng set (no service area match) | Distance from appointment location decays linearly to 0 at 100 km |
| Neither set | Proximity defaults to 0.3 baseline (useless) |
Setting both is best — the service-area check runs first, the coordinate decay is the fallback.
Truck inventory
If you want AI dispatch to bias toward technicians who already carry the right parts on their truck:
- Create a Stock location with
kind=virtual(one per truck) — e.g. "Alex's truck", "Mobile #3". - On the technician's detail page, set Truck location to that stock location.
- Stock-managed parts pulled from the truck location on a previous job reduce its quantity; you re-stock from the warehouse.
When a work order's parts list overlaps with what's on a tech's truck, that tech gets a +0.1 boost in AI dispatch scoring. Without a truck location, techs score a neutral baseline on the truck-stock factor.
A dedicated kind=truck for stock locations (with explicit truck filters in the Stock UI) is queued for the next release. For now, mark trucks as kind=virtual and identify them by name.
Availability
The dispatcher checks the technician's resource calendar before suggesting them for an appointment. Three things mark a tech unavailable:
- Working pattern — recurring availability windows set on
resource_working_patterns(e.g. Mon-Fri 8:00-17:00, no weekends) - One-off unavailability — time off, sick days, training — captured on
resource_unavailability - Booked appointments — any other appointment overlapping the candidate window
AI dispatch hard-skips techs with overlapping unavailability — they never appear in the ranked list.
Removing / deactivating a technician
To take a tech out of rotation without losing history:
- Open the technician detail page.
- Toggle Active off.
- The tech disappears from dispatcher lists + AI suggestions but their historical appointments + work orders remain attached.
To permanently delete: use the delete action. Their appointments and work orders are preserved (with assigned_user_id set to NULL).
Related
- Dispatch — how skills + home base + truck inventory feed scoring
- Service Areas — what "home service area" refers to
- Appointments — what techs get assigned to