These cookies are required for the website to function properly. They ensure security, enable basic features like page navigation, and store user session data. You cannot disable these cookies.
- Field Service Management
- Data model
The tables behind Field Service Management
Field Service Management ships with 35 tables, grouped here by the feature that uses them. Every record your team works with lives in one of them, and you can add fields and tables in Proto.
- Tables
- 35
- Features
- 6, plus shared settings
- Change it
- Add fields and tables in Proto
How the model is organised
People and capacity
Users, Technicians, technician skills, Crews, crew members, Schedules, schedule slots, schedule exceptions, technician availability days. Map real principals and participating technicians to usable working time.
Customers and agreements
Customers, service locations, service categories, service contracts, service contract items, credit policies. Keep customer locations, service obligations and versioned credit terms connected.
Visits and mobile work
Service calls, service call activities, service call labor, service call notes, service call photos, Routes, route stops, mobile sync queue. Retain accepted appointments, field evidence and original synchronization identities.
Parts and inventory
Parts, truck stock, warehouse stock, service call parts, stock movements, parts replenishments. Trace each draw, replenishment and compensating return to the exact stock source.
Commercial evidence
Estimates, Signatures, Invoices, invoice lines, Payments, Surveys. Connect exact customer-authorized scope to invoices, confirmed collection and actual feedback.
Every table, by feature
- Dispatch and scheduling9
- Routes and mobile work7
- Parts and truck stock6
- Estimates and signatures6
- Billing and payments9
- Service contracts and follow-up5
- Shared and settings2
- Technicians
The field-tech master. Every dispatched-and-on-site human is one row. Joined to the HRIS Employee record by
Linked to UsersEmployeeReffor payroll and benefits, but lifecycle here is operational: Active means schedulable, on leave drops out of the schedule-optimization pool, Inactive is gone. - Technician skills
Per-Tech skills and certifications with expiry. The schedule-optimization workflow filters the eligible-Tech pool by matching
Linked to TechniciansServiceCategories.RequiredSkillsagainst active (not expired) entries here. - Crews
Multi-tech crew for jobs that need more than one body — install days, rooftop unit swaps, big plumbing repipes. A Crew has a Lead (senior Tech) who owns the on-site call.
Linked to Technicians - Crew members
The roster of techs in a crew. A Tech can be in more than one crew (they can run their own calls solo most days and roll with the install crew on Fridays).
Linked to Crews, Technicians - Service calls
One on-site visit with a committed assignment, customer window and completion receipt. Created → Scheduled → Dispatched → en route → on site → Completed is the successful path. Cancelled and Rescheduled are controlled exception branches before completion, not transitions after a completed signed visit.
Linked to Customers, Service locations, Service categories, Service contracts (set when Source=ServiceContract) - Schedules
Daily / weekly schedule view header. One per Day per Technician (or per Crew). The Dispatcher’s working canvas.
Linked to Technicians (null if Crew schedule), Crews (null if individual schedule) - Schedule slots
Per-Technician time-slot configuration — when each tech is schedulable, in what windows, and how many calls per window. Drives schedule-optimization eligibility and route capacity.
Linked to Technicians - Schedule exceptions
Accepted technician unavailability for leave, training and nonworking time. Operations Manager records or cancels these operational intervals; an HR connector may import them only with a scoped service identity and source receipt. This is a scheduling mirror, not HR leave approval.
Linked to Technicians, Users
- Routes
Per-Tech daily route header. Generated by
Linked to Techniciansroute-planningnightly; revised throughout the day on cancellations and reschedules. - Route stops
The ordered stops on a day’s route. One per service call in the day’s plan, plus optional warehouse-stop entries for parts pickup.
Linked to Routes, Service calls (set when StopType=ServiceCall) - Service calls
One on-site visit with a committed assignment, customer window and completion receipt. Created → Scheduled → Dispatched → en route → on site → Completed is the successful path. Cancelled and Rescheduled are controlled exception branches before completion, not transitions after a completed signed visit.
Linked to Customers, Service locations, Service categories, Service contracts (set when Source=ServiceContract) - Service call labor
Labor entries — one per Tech per session on the call. The check-in / check-out workflow opens and closes a row automatically; manual entries are allowed for crew helpers.
Linked to Service calls, Technicians, Estimates - Service call notes
Free-form notes — Tech observations, dispatcher dispatch instructions, manager call-out. Visibility flag controls customer-receipt visibility.
Linked to Service calls, Users - Service call photos
Before / during / after photos — the dispute-killer. Required by service category configuration on most repair categories.
Linked to Service calls, Technicians - Mobile sync queue
Pending mobile commands captured while disconnected. Notes, labor, photos and signature captures wait for authenticated server validation and revision checks. Payments remain unconfirmed requests, and server completion is not claimed until all required checks succeed.
Linked to Technicians, Service calls
- Parts
The parts-and-materials catalog carries current approved warehouse cost and customer price. Changes retain an audit record; historical service call parts and billing revisions preserve the exact accepted price snapshot.
- Truck stock
Per-Technician parts inventory on the truck. The most-frequently written table in the app — every service call parts row triggers a decrement here.
Linked to Technicians, Parts - Warehouse stock
Central warehouse parts inventory. The source for replenishment runs out to truck. Read-only mirror if a separate
Linked to Partsscm-inventoryapp owns the master; local table here for FSM-only deployments. - Service call parts
Posted parts consumed on an assigned call, with immutable cost/price snapshots and an atomic stock movements posting. A draft mobile event is not a posted consumption record. Linked reversals compensate stock and trigger billing reconciliation.
Linked to Service calls, Parts, Truck stock (the row this drew from), Estimates - Stock movements
Immutable inventory postings for receipts, truck consumption, replenishment and compensating reversals. Balance projections and a posted movement commit atomically in local mode. Reversed originals remain in the signed ledger sum; the linked compensating row supplies the opposite effect.
Linked to Parts, Warehouse stock, Truck stock, Service call parts - Parts replenishments
Inventory requests prepared by the Inventory Clerk and independently approved by Operations Manager. Warehouse-to-truck moves progress through Approved, Picked and Loaded; procurement requests remain Sent until acknowledged. Posted stock is corrected by linked compensating movements.
Linked to Parts, Technicians (set on WarehouseToTruck), Users
- Estimates
Pre-work quote. Required when a Tech finds work beyond the original call’s scope. Customer signs Estimate before any extra labor / parts hits the call.
Linked to Service calls, Customers, Signatures (with SignedDocumentType=EstimateApproval), Users - Signatures
Immutable customer signature receipts bound to an exact displayed document, scope revision and authorized signer. Estimate approval and completion acknowledgment have separate purposes and cannot substitute for each other.
Linked to Service calls, Estimates, Users - Service calls
One on-site visit with a committed assignment, customer window and completion receipt. Created → Scheduled → Dispatched → en route → on site → Completed is the successful path. Cancelled and Rescheduled are controlled exception branches before completion, not transitions after a completed signed visit.
Linked to Customers, Service locations, Service categories, Service contracts (set when Source=ServiceContract) - Service call parts
Posted parts consumed on an assigned call, with immutable cost/price snapshots and an atomic stock movements posting. A draft mobile event is not a posted consumption record. Linked reversals compensate stock and trigger billing reconciliation.
Linked to Service calls, Parts, Truck stock (the row this drew from), Estimates - Service call labor
Labor entries — one per Tech per session on the call. The check-in / check-out workflow opens and closes a row automatically; manual entries are allowed for crew helpers.
Linked to Service calls, Technicians, Estimates - Service categories
The service taxonomy the dispatcher and the customer pick from. Each category snaps a default Duration (used for slot sizing) and required skills (used for tech-eligibility filtering).
- Invoices
The invoice generated from a completed service call. Header here; detail in invoice lines. Posted outbound to
Linked to Service calls, Customersfin-invoicing-ar, which is the system of record for AR. - Invoice lines
One row per service call parts line and one per service call labor session, plus optional adjustment lines (discounts, trip fees).
Linked to Invoices, Service call parts (when LineType=Parts), Service call labor (when LineType=Labor) - Payments
On-site payment record. Calls into
Linked to Service calls, Invoices, Customers, Techniciansfin-paymentsfor processor auth/capture, but the operational record (which Tech took it, which call, when) lives here. - Service calls
One on-site visit with a committed assignment, customer window and completion receipt. Created → Scheduled → Dispatched → en route → on site → Completed is the successful path. Cancelled and Rescheduled are controlled exception branches before completion, not transitions after a completed signed visit.
Linked to Customers, Service locations, Service categories, Service contracts (set when Source=ServiceContract) - Service call parts
Posted parts consumed on an assigned call, with immutable cost/price snapshots and an atomic stock movements posting. A draft mobile event is not a posted consumption record. Linked reversals compensate stock and trigger billing reconciliation.
Linked to Service calls, Parts, Truck stock (the row this drew from), Estimates - Service call labor
Labor entries — one per Tech per session on the call. The check-in / check-out workflow opens and closes a row automatically; manual entries are allowed for crew helpers.
Linked to Service calls, Technicians, Estimates - Signatures
Immutable customer signature receipts bound to an exact displayed document, scope revision and authorized signer. Estimate approval and completion acknowledgment have separate purposes and cannot substitute for each other.
Linked to Service calls, Estimates, Users - Credit policies
Versioned permission to finish a service visit with an unpaid balance. Admin publishes an exact category/customer policy revision; an independent Operations Manager still approves each call-specific exception. Published terms are immutable, and retiring a policy stops new decisions and prevents consumption of unused approvals; it preserves receipts already used for completed work. This records payment terms rather than a payment or cleared receivable.
Linked to Service categories, Customers, Users - Service call activities
Immutable audit of every status transition and assignment change on a service call. The disputed-call ledger.
Linked to Service calls, Users
- Service contracts
Recurring service contracts — an HVAC tune-up twice a year, a restaurant-chain quarterly hood-system service. Drives the generate-the-next-call workflow on the cadence.
Linked to Customers - Service contract items
The included services per contract. The cadence engine reads these to generate the right service call with the right service category on the right date.
Linked to Service contracts, Service categories, Service locations - Service calls
One on-site visit with a committed assignment, customer window and completion receipt. Created → Scheduled → Dispatched → en route → on site → Completed is the successful path. Cancelled and Rescheduled are controlled exception branches before completion, not transitions after a completed signed visit.
Linked to Customers, Service locations, Service categories, Service contracts (set when Source=ServiceContract) - Surveys
Post-call CSAT trigger. Lightweight mirror of the survey trip; the survey infrastructure itself lives in
Linked to Service calls, Customerssupport-csat-nps. - Service locations
The physical site the Tech is going to. A Customer can have many sites — a property manager has dozens. The dispatch-and-route engine uses the lat/long here to sequence the day.
Linked to Customers
Keys and references
Use unique source, occurrence, device and connector command identities. Customer/location/call ownership must agree across references. Preserve exact signed revisions and immutable posted movements; never use a display name as an authorization key.
Migration order
- Map Users, Technicians, skills, crews and service categories.
- Load customer locations, access controls, contracts and item recurrence.
- Configure working slots, dated unavailability, parts and the single inventory ownership mode.
- Load validated open calls, accepted assignments and opening stock evidence.
- Configure estimate/signature and versioned credit policy, payment requests, AR mapping and survey connection.
- Reconcile test visits, denied actions, mobile conflicts, stock reversals and billing acknowledgements before release.
Set up Field Service Management your way.
Start free, then use Proto to change fields, steps and approvals before your team goes live.