Everything you need to run the field
Dispatch, capture, and invoice — one login shared with the rest of the Hosting suite.
Dispatch & Scheduling
A dispatch board built for the way crews actually work. See the day per technician, track skills on each tech, and keep unscheduled work visible.
- Per-technician day view
- Technician roster with skill tags
- Unassigned queue so nothing slips
- Schedule jobs with start & end times
- Flag urgent jobs and triage your day — set job priority, sort and filter the dispatch board, and carry priority straight through from maintenance plans
- Block out breaks, training & PTO on the dispatch board — and get warned before you double-book a tech
Estimates & Quotes
Quote the work before you do it. Build a quote from your price book, email the customer a link they approve or decline online, automatically follow up if they go quiet, then turn an approved quote into a job in one click.
- Build a quote with labor, parts & expense line items and live totals
- Reuse your service & parts catalog to fill a quote in a tap
- Email the quote link straight to your customer — they review and approve or decline online, no app and no login
- Automatically nudge a customer who hasn't answered in a few days, so more quotes get a yes
- Approve/decline status flows straight back to your dashboard, with an optional decline reason
- One-click convert an approved quote into a job, copying the line items
- It's an online approval workflow — a clear yes/no record, not a legal e-signature
Online Booking
Turn your website into a 24/7 booking desk. Publish a public "Request Service" link customers use to ask for work — every after-hours request is captured instead of lost, and lands in a dispatcher review queue where one click turns it into a scheduled job.
- Public, login-free "Request Service" form at /book/<your-org> — name, contact, address, service type, description & preferred time
- Requests land in a dispatcher review queue as pending — never a live job until you say so
- Accept converts a request into a draft job in one click, matching an existing customer by email or phone (or creating one) and carrying the address across as a service site
- Decline with an optional reason; the requester stays in your records
- Confirmation email to the customer on submit and an optional heads-up to your dispatch inbox
- Off by default and opt-in per org — you choose when to publish your link
- Built to be safe on the open internet — the public page never exposes your customer list, pricing, or internal data, and a honeypot + rate limit blunt form spam
Public Reviews & Website Widget
Turn happy customers into your best salespeople. Field already collects a star rating on every completed job — now you can publish the ones you're proud of on a branded reviews page and drop them straight onto your own website with a copy-paste widget.
- A branded public reviews page at /reviews/<your-org> — aggregate star rating, review count, and a list of approved reviews with privacy-safe attribution (first name + last initial only)
- Moderation you control — every review is Pending until you Approve it; you can Hide a published review or Feature a standout one to pin it to the top
- Nothing goes public until you approve it — unapproved and hidden reviews are enforced server-side (the public read only ever returns approved rows), never just hidden in the UI
- Drop-in website widget — copy one snippet and paste it onto your site or booking page; it renders your average rating and recent approved reviews, self-contained with zero dependencies
- Indexable by design with AggregateRating + Review structured data, so your star rating can surface in Google results
- Reads only owner-approved, privacy-limited data — never your customer list, contact details, job or technician ids, or any dashboard data
Jobs, Start to Invoice
Every job runs the same predictable path with a server-enforced status workflow — no jobs stuck in limbo, no skipped steps.
- Status flow: draft → scheduled → en route → on site → complete → invoiced
- One-click job → invoice — line items flow straight into Hosting Books as a real, sendable invoice
- On-site customer sign-off — capture the signature on your phone as timestamped proof of completion, optionally required before you invoice
- Job checklists — build reusable task-list templates once and drop them onto any job in a tap; techs check off steps on site, the office sees live progress; optional gate blocks marking complete until required steps are done
- Cancel from any open state, reopen as draft
- Line items: labor, parts, expenses with live totals
- Sales tax per line — set a tax rate on any line item (or default it on a price-book entry) and it flows straight onto the Books invoice, correct to the cent
- On-job time tracking — clock in/out on the job, turn worked hours into billable labor
- Job comments for crew handoffs
- Maintenance plans — set up recurring jobs that auto-spawn on flexible cadences (daily through annual, with custom intervals); dispatchers manage templates, the daily cron does the rest. Put a customer's registered unit (HVAC, furnace, pump) on a plan once and every auto-scheduled visit is filed to that unit's service history automatically — no re-tagging
- Duplicate a job to kick off one-off repeat work
- Role-gated transitions keep the workflow honest
- Customer notifications — automatic appointment, en-route & completion emails fired off the status workflow
- Day-before reminders — an automated reminder email ~24h before the appointment, the single most effective no-show prevention; one per appointment, deduped
- Customer tracking page — every appointment email links to a live "where's my tech" status page; no app to install, no login
- Customer appointment confirmation — the customer confirms (or asks to reschedule) with one tap on that same tracking link, and your dispatch board shows exactly which of tomorrow's jobs are confirmed before the truck rolls
- Customer satisfaction reviews — collect a star rating and feedback on every completed job, straight from the tracking link, and see each technician's average
- Parts inventory & stock tracking — flag any price-book part to track on-hand counts; adding it to a job auto-decrements stock, and a low-stock badge tells the office what to reorder (opt-in per part, not a full WMS)
- Purchase orders & suppliers — when parts run low, create a PO to your distributor in a tap, then receive it to put stock straight back on the shelf; on-order counts so you never double-order (closes the loop on parts inventory)
Customers & Sites
A customer book with multi-site support, so a single account can carry many service locations.
- Customers with contact, company & address
- Multiple service sites per customer
- Edit and remove customers and sites
- Customer records shareable across the suite (read-only)
Reporting
Know where the work and the money are without exporting a thing.
- Live ops dashboard: jobs today, in progress, awaiting dispatch, completed
- Revenue trend over a window you choose (7–180 days)
- Completion rate
- Top customers by revenue
- Accounts receivable — every unpaid invoice you raised from a job, aged into Current / 1–30 / 31–60 / 61–90 / 90+ buckets, so you can see who owes you and chase past-due invoices first
- Automated overdue-invoice payment reminders (dunning) — turn it on and Field politely chases every past-due invoice by email on a schedule you don't have to remember (due date, +7, +14, +30 days), one email per milestone, stopping the moment it's paid; opt-in per org, off by default
- Job profitability & margin report — revenue minus true cost (parts, labor hours & fuel) per job, sorted worst-margin first, with CSV export
- Technician timesheets & payroll-ready CSV export for any pay period
Team & Roles
Bring the whole crew in with role-based access and per-organization data isolation — and put each tech's skills to work matching them to the right jobs.
- Five roles: owner, admin, dispatcher, technician, viewer
- Tag each tech with their skills and each job with the skills it needs
- Skill-based matching surfaces best-fit techs at dispatch — so the HVAC job never lands on the electrician
- Invite members, change roles, remove access
- Run multiple organizations from one login
- Row-level security on every record
Fleet Management
The trucks, vans, and EVs your techs drive are first-class data. Track mileage per job, log fuel and charge sessions, set service intervals, and never let an insurance or DOT card lapse.
- Vehicle roster with VIN, plate, make/model, fuel type & odometer
- Service intervals with auto-spawn for overdue work
- Per-job drive legs with start/end odometer and route capture
- Fuel + EV-charge logs with receipt attachments and MPG/MPGe rolling
- Insurance, registration, DOT-card expiry tracking for vehicles and techs
- Geofenced "arrived on site" suggestions (FSM-respecting)
Equipment & Asset History
Register every unit you service — the HVAC system, furnace, water heater, generator, pump — with make, model, serial, install date and warranty. On the next visit a tech sees exactly which unit it is, whether it's still under warranty, and everything you've ever done to it.
- One record per physical unit, attached to the customer's site
- Make, model, serial, install date, warranty expiry & notes
- Warranty badge — in-warranty / expiring-soon (≤30 days) / expired, computed live
- Expiring warranties surface in the daily digest email — the office is flagged 60 days out so you can pull the visit forward and reclaim the cost
- Tag any job to the unit it services, right on the job form
- Per-unit service history — every job on that unit, newest first, with status & technician
- Deleting a unit never deletes a job — its history is preserved
One Login Across the Suite
Field shares one account and one billing spine with the rest of the Hosting suite. Sign in once; your subscription stays independent per product.
- One Hosting login across all products
- Independent per-product billing — pay only for Field
- Encryption at rest & in transit
- Cancel or resume billing any time, in-app
The job lifecycle
Every job moves through the same predictable path.
Request
A customer submits a request from your public booking link — or you add them and their sites yourself.
Quote
Build an estimate and send a link the customer approves or declines online.
Job
Convert the approved quote into a job, attach it to a site, tag the skills it needs, and assign the best-fit tech.
Dispatch
Schedule it on the board; skill matching surfaces the right tech for the job and the tech sees their day.
On site
Tech runs the status flow and logs parts + labor.
Invoice
Turn a finished job into a real invoice in one click — line items flow straight into Hosting Books, ready to send.
Everything that’s included
No tiers hidden behind a sales call — this is the whole product.
Customers & sites
- Customer book — name, email, phone, company, address
- Multiple service sites per customer
- Create, edit and delete customers and sites
- Read-only shared customer records across the Hosting suite
Online booking
- Public, unauthenticated "Request Service" form at /book/<your-org-slug> — no app, no login for the customer
- Collects name, email, phone, service address, service type, a description and a preferred date/time window
- Opt-in per org and off by default — flip it on (and set an optional notify email) in Settings → Booking, and copy your shareable link
- Every submission lands in the dispatcher Requests queue as a pending request — it never becomes a live job automatically
- Accept a request to convert it into a draft job in one click: it matches an existing customer by email or phone (or creates a new one), spins up a service site from the address, and stamps the new job back onto the request
- Decline a request with an optional reason; nothing is scheduled and the record is kept
- Automatic confirmation email to the requester on submit, plus an optional heads-up email to your dispatch inbox (both degrade gracefully when email isn't configured)
- Safe on the open internet by design — the public page returns only your business name and offered services, never your customer list, pricing, line items or internal ids; a hidden honeypot field and a per-IP rate limit blunt spam; the request row is written server-side and has no public read access
Public reviews & testimonials
- Branded public reviews page at /reviews/<your-org-slug> — no app, no login, indexable by search engines
- Aggregate average star rating + review count shown at the top, computed only over approved reviews
- Per-review moderation — every collected review starts Pending; Approve to publish, Hide to pull it back, Feature to pin it to the top
- Privacy-safe attribution — reviewers show as first name + last initial only ("John S."); no surname, email or phone ever leaves the server
- Only owner-approved reviews are ever exposed — the public read filters to published rows server-side (enforced by the API + RLS), so unapproved reviews can't leak even if the UI is bypassed
- Copy-paste embeddable website widget — one snippet renders your average rating + recent approved reviews on your own site or booking page, self-contained with zero dependencies and safe to serve anywhere
- AggregateRating + Review structured data (JSON-LD) so your rating can appear as rich results in search
- Built on the reviews Field already collects from the customer tracking link after every completed job — nothing new for customers to install
Equipment & asset history
- Customer equipment register — one record per physical unit (HVAC, furnace, water heater, generator, pump) attached to a customer site
- Capture category, make, model, serial number, install date, warranty-expiry date and free-text notes
- Live warranty status badge — "In warranty", "Expiring soon" (≤30 days), "Expired", or "No warranty on file" — derived from the warranty-expiry date
- Expiring & expired warranties are rolled into the daily Fleet digest email (60-day horizon) so the office is warned before a unit drops out of warranty
- Tag any job to the unit it services from the new-job form or the job detail page (picker filtered to the job's site) — or attach the unit to a maintenance plan once and let every recurring visit tag itself
- Per-unit service history — open any unit to see every job ever tagged to it, newest first, with title, status, completed date and technician
- Cross-org and cross-site references are rejected (422); a job can only reference a unit at its own site
- Deleting a unit nulls the link on its jobs but never deletes a job — the service history stays intact
Estimates & quotes
- Create and edit estimates with labor, parts and expense line items and live quantity × price totals
- Prefill quote line items from the service & parts catalog (price book) in a tap, or type a free-text one-off
- Send a quote to the customer as a tokenized public /quote link — they review the itemized quote and approve or decline online, no app and no login required
- The public page shows only the quote itself (org, title, line items, total) — never your customer list, contact details, or internal data
- Approve / decline records the customer's decision (with an optional decline reason) and surfaces it on your dashboard
- Set a quote expiry date — past the date the link auto-expires and can no longer be approved, so a stale price never becomes a job
- Convert an approved quote into a job in one click, copying the line items as independent rows ready to dispatch
- This is an online approval workflow — a clear, timestamped yes/no record — not a legally binding e-signature
Jobs
- Create jobs with customer, site, technician, description & schedule
- Server-enforced status workflow with role gating
- Status timestamps stamped automatically (en route / on site / completed)
- Customer notifications — automatic appointment-confirmation, technician-en-route ("on my way"), and job-complete emails, fired straight off the job status workflow. Per-event toggles, opt-in per org
- Day-before appointment reminders — a scheduled task emails the customer ~24 hours before the appointment (the most effective no-show prevention), exactly once per appointment via an idempotent event-log key; follows the appointment-confirmation toggle and can be turned off per org
- Line items: labor, parts and expenses with quantity × price totals
- On-job time tracking — techs clock in and out right on the job, log multiple segments across visits (and lunch breaks), and roll the worked hours into a billable labor line item in one tap using the tech's hourly rate; no separate timesheet app
- Service & parts catalog (price book) — save your common services and parts once with a default price, then add them to any job in a tap; descriptions and prices stay consistent and you can still edit anything or type a free-text one-off
- Edit and remove line items — fix a typo or drop a charge before it hits the invoice; the running job total recomputes instantly and items lock once the job is invoiced
- Sales tax per line item — charge sales tax the right way: set a tax rate on any line (or give a price-book item a default rate that pre-fills the line when added), see a live subtotal / tax / total on the job, and have the tax flow straight onto the one-click Books invoice, computed to the cent; default 0 so tax-exempt jobs are unaffected
- On-site customer sign-off — capture the customer's signature on a phone or tablet the moment work is done, stored as timestamped proof against the job; optional org-level "require a signature before invoicing" toggle
- Job checklists (task lists) — build reusable checklist templates once (furnace tune-up, panel inspection, move-in turnover) and drop them onto any job in a tap; items are independent rows so editing a template never rewrites historical job records; tech checks each step off on their phone; live checked/total progress visible to the office; optional org-level gate blocks on_site → complete until all required items are checked
- Comments timeline with edit/delete and an edited marker
- Customer tracking page — every appointment & en-route email links to a live, tokenized "where's my tech" status page showing the milestone bar (Scheduled → On the way → On site → Complete), scheduled time and the technician's first name; no app to install, no login
- Customer appointment confirmation — while the appointment is still upcoming, that same tracking link lets the customer confirm they'll be there (or ask to reschedule) in one tap; the answer stamps the job and shows on the dispatch board and job detail as Confirmed / Awaiting confirmation / Reschedule requested, and the reminder + confirmation emails carry a one-tap Confirm button, so dispatch chases only the unconfirmed jobs
- Customer satisfaction reviews — once a job is complete, the same tracking link invites the customer to leave a 1–5 star rating and optional comment; dispatchers see the org-wide average in Reports and each technician's average on their detail page
- Maintenance plans — define recurring job templates (daily, weekly, monthly, quarterly, biannual, or annual; custom interval multiples supported); the daily cron auto-spawns a draft job per due template, with an on-demand "Generate now" button for dispatchers. Attach a registered equipment unit to a plan and its equipment_id is stamped onto every spawned job, so each auto-scheduled visit lands in that unit's service history automatically (a deleted or reassigned unit is safely dropped — the spawn never fails)
- Duplicate a job (copies details + line items as a new draft)
- Delete a job (line items and schedule slots removed with it)
- Parts inventory & stock tracking — flag a price-book part to count it; adding it to a job auto-decrements on-hand stock; a low-stock badge tells the office what to reorder before a tech is stuck on site without it; opt-in per part, not a WMS
- Purchase orders & suppliers — keep a vendor directory and raise a PO (draft → ordered) to your distributor; the low-stock list has a one-tap "Create PO" that pre-fills every below-reorder part with a suggested quantity. Receiving a PO (in full or in part) writes a stock-in movement to the exact same inventory ledger and bumps on-hand counts — re-receiving never double-counts. On-order totals show on the low-stock view so you never double-order. Procurement only — no margin or cost-rollup reporting
Dispatch & scheduling
- Dispatch board with a per-technician day view
- Technician roster with skill tags
- Skill-based technician matching — tag a job with the skills it needs and the dispatch board ranks active techs by how well they cover them (all skills / missing X / no match), best-fit first; a private dispatcher hint that never blocks assignment, no certification claims
- Job priority & urgency — flag a job low / normal / high / urgent, sort and filter the dispatch board and jobs list by priority, and see a colored badge at a glance; maintenance-plan templates carry their priority straight through to every spawned job
- Schedule jobs with start and end times
- Unassigned work stays visible until it’s dispatched
Reporting
- Operations dashboard: jobs today, in progress, awaiting dispatch, completed today & last 30 days
- Revenue series over a configurable window (7–180 days)
- Job completion rate
- Top customers by revenue
- Accounts-receivable aging — the read-back half of the job→cash loop: every invoice you generated from a completed job is reflected back with its live Books payment status and aged by days past due into Current / 1–30 / 31–60 / 61–90 / 90+ buckets. Paid, void and written-off invoices drop out automatically; you get per-bucket totals, an overall outstanding figure, and a collections worklist that links straight back to each job — no leaving Field to answer "who owes me, and what's overdue?"
- Automated payment reminders (dunning) — the read-back A/R aging view can now act on its own: opt in per org and a daily scheduled task emails the customer a friendly, escalating reminder for every still-unpaid invoice on a milestone ladder (due date, one week, two weeks, one month past due), each with the invoice number, amount and due date and a link to their live job page. Exactly one email per invoice per milestone (idempotent on an event-log key), and it stops the instant the invoice is paid, void, or written off. Off by default — existing orgs never start emailing customers about money until they turn it on
- Technician timesheets & payroll export — roll every clock-in/out into per-tech hours and billable totals for any pay period, and download a payroll-ready CSV in one click; running timers are reported but excluded from totals
- Job profitability & margin report — see revenue minus true cost (parts, labor hours and fuel) for every job, sorted worst-margin first, so you stop losing money on the jobs that just look busy. Give catalog parts an internal cost basis (never shown to customers or on invoices); jobs still missing a labor rate or part cost show as "partial" rather than a fake 100% margin. Headline revenue / cost / gross-profit / average-margin tiles for any date window, plus one-click CSV export
Fleet — vehicles
- Vehicle roster: VIN, plate, make/model, year, color, fuel type, current odometer
- Active/inactive flag and primary-technician assignment
- Depot location with geofence radius for "back at base" detection
- Battery capacity (kWh) for EVs and plug-in hybrids
- Job attachment: every job optionally records which vehicle ran it
Fleet — service & maintenance
- Service intervals by miles, days, or both — oil, tires, brakes, inspection, registration & more
- Service records: cost, vendor, odometer, notes — receipts attachable
- Auto-spawn draft jobs for every overdue interval with one click
- "Due soon" warnings at 500 miles or 14 days before the next service
Fleet — drive logs & telemetry
- Per-job drive legs (to_site / from_site / between_sites)
- Captured automatically when the tech transitions en_route → on_site with odometer/lat/lng
- Distance computed from odometer pair, with haversine fallback when only GPS is supplied
- Mileage rollup per vehicle over a configurable window (7–180 days)
Fleet — fuel & charge
- Unified log for gasoline, diesel, LPG, and electric (kWh) sessions
- Optional evcc integration pulls completed charge sessions automatically
- MPG / MPGe computed between full-tank fills
- Per-vehicle and per-job spend reporting
Fleet — documents & compliance
- Vehicle documents: insurance, registration, inspection, DOT card, lease/finance, warranty, permit
- Technician documents: driver's license, CDL, trade license, certifications, safety cards, I-9
- Expiry tracking with a 60-day "expiring soon" rollup on the Fleet dashboard
- Attach a file URL to any document for one-click access during an audit
Fleet — dashboard & integrations
- One-page Fleet overview: on-duty count, mileage leaderboard, services due, expiring docs, fuel spend
- Anomaly alerts: implausible drive legs, oversized fuel fills, odometer rollbacks, idle vehicles
- Job-transition event log — append-only audit you can replay
- Optional MQTT publisher — pushes job.transition events to your broker for home-automation / SCADA hooks
- evcc charge controller integration (Beta)
Fleet — data ops
- CSV export — vehicles, fuel logs (with date + vehicle filters), per-vehicle service records
- CSV bulk-import for vehicle onboarding (dispatcher+, ≤5MB, RFC-4180 with formula-injection guard)
- Per-vehicle QR codes — print and stick a deeplink that opens the fuel/service/visits tab when scanned
- Visits map — Leaflet/OSM map of every GPS-stamped drive-leg endpoint per vehicle
- Reverse-geocoded leg start/end addresses (cached, Nominatim-backed)
- Daily Fleet digest email — admin morning summary of expiring docs + due services + expiring equipment warranties (Resend-gated)
Fleet — costing
- Per-job trip-cost rollup: fuel + drive miles + labor cost — priced from real clock-in/clock-out time entries when techs track their hours, falling back to the en_route→complete estimate when they don't
- Per-tech hourly rate — set on the technician detail page, drives all trip-cost labor math
- Labor breakdown hidden from viewer/technician roles to protect pay-rate privacy
Team, access & billing
- Five roles: owner, admin, dispatcher, technician, viewer
- Invite members, change roles, remove access
- Multiple organizations from a single login
- Row-level security and per-org data isolation
- Encryption at rest and in transit
- 14-day free trial; cancel or resume any time in-app
Travel-Time Estimator
Pro & BusinessSee drive time between every stop before the day starts. Enter your technician's stops and get a per-leg distance and time breakdown — then hit Optimise route to reorder them for the shortest total drive using nearest-neighbour routing.
- Haversine great-circle distance for every leg
- Estimated drive time at configurable average speed
- One-click nearest-neighbour route optimisation
- Total distance and human-readable time label (e.g. "1 h 23 min")
Job Photo Gallery
Available nowTechs snap on-site photo evidence straight onto the job from the job detail page — every shot captioned with author and timestamp, surfaced in a chronological grid. Open the gallery view. Included on Pro and Business.
Customer Sign-Off
Available nowCapture the customer's signature right on the tech's phone or tablet the moment the work is done. The signature is stored as timestamped proof of completion against the job — surfaced as "Signed by {name} on {date}" on the job detail — and you can optionally require it before a job can be invoiced. This is on-device customer-acceptance capture; it ends "I never approved that" disputes before they start.
- Canvas signature pad — finger, stylus, or mouse; no app install, no extra hardware
- Stored privately with the same signed-URL discipline as your job photos — never a public link
- Optional "require a signature before invoicing" toggle per organization
On-device acceptance capture — proof the customer accepted the work. Not a legally-binding e-signature service.
Job Cycle-Time Analytics
Available nowSee where the time actually goes. For every completed job, the rollup shows dispatch lag (created → en route), travel time (en route → on site), and on-site time (on site → completed) — with mean / median / p90 per phase plus a per-technician breakdown and a "slowest phase" indicator. View it at /dashboard/cycle-time. Included on Pro and Business.
Fleet Module
Available nowTreat your trucks, vans, and EVs as first-class data. The Fleet dashboard surfaces on-duty vehicles, mileage leaderboards, services due, document compliance, and fuel/charge spend in one place. Per-vehicle tabs cover service intervals, records, documents (insurance/registration/DOT), fuel logs, and recent jobs.
- Service intervals by miles, days, or both — overdue intervals auto-spawn draft jobs
- Drive legs captured when the job transitions en_route → on_site, with odometer + GPS
- Document expiry tracking with 60-day "expiring soon" warnings
- Geofenced arrival suggestions — preserves the FSM-as-source-of-truth contract
evcc Integration · MQTT Event Bus
BetaSelf-hosting an evcc charge controller? Sync completed charge sessions into Hitt Field as electric fuel logs against the matching vehicle. Plus an optional MQTT publisher pushes every job state transition to your broker so SCADA, Home Assistant, or your own automation can react in real time.
Configure in Settings → Integrations. MQTT publishing is env-var gated — no-op when not configured. Events still persist to field_event_log for replay.
Honest, flat pricing
14-day free trial, then flat monthly tiers. No enterprise sales call, cancel any time, and your data leaves with you.
See pricing