Customers call because nobody told them. How field service teams make job status move with the crew, so the update goes out before the question does.
It is 2pm. A customer took the day off for a one-to-three window. They have no idea whether anyone is coming, so they call the office. The office cannot answer, because the office does not know either, so somebody texts the technician, who is under a house and does not reply for twenty minutes. One unanswered question has generated three phone calls, two interruptions to billable work, and a decent chance of a review that says nothing about the repair and everything about the waiting. Multiply that by your weekly job count and you have a full-time job nobody was hired to do.
The obvious cost is the phone time. The real costs are the ones that do not appear on anybody's timesheet:
There is also a reputational cost owners underestimate. Most status complaints are not about lateness. They are about not being told. A customer told at 11am that you are running forty minutes behind rearranges their afternoon. The same customer, told nothing, spends three hours deciding you are unreliable.
In most home services businesses the actual schedule lives in three incompatible places at once: a whiteboard in the office, a group chat on the crew's phones, and the dispatcher's head. The software of record says a job is booked for Tuesday. It does not say that the part did not arrive, that the technician is still on the morning job because the access panel was screwed shut, or that the afternoon customer has now called twice.
Nobody is lying. The system simply has no way to represent a job in motion. A booking is a static fact; a job is a sequence of states. Until the record can hold the difference between dispatched, on the way, arrived, started, waiting on a decision and waiting on a part, the only person who knows the truth is the one standing in the driveway. That is why "let me find out and call you back" is the default answer. It is not a service failure so much as an accurate description of the information architecture.
The fix is a single job pipeline that is the source of truth, with one design rule: every stage must be something a technician can trigger from their phone in one tap. A stage only a dispatcher can move will be wrong by mid-morning. That means stages for the states a job actually passes through, including the awkward ones:
Every stage move fires the customer message that would otherwise have been a phone call to the office. Those four timestamps, dispatched, en route, on site and complete, are also the only honest operational data most field service businesses will ever have. The technician dispatch and job status build guide has the full stage list, the field spine and all nine workflows.
Everything downstream depends on technicians reporting En Route, On Site and Complete. Run a two-week pilot with one crew and measure whether the taps happen. If they do not, fix the interface or the incentives first. A dispatch system fed by unreliable stage moves is worse than a whiteboard, because people trust it.
Set a duration per job type, taken from what jobs have actually taken rather than what anyone claims. Expect them to be longer. Add a non-bookable travel buffer after every job. Wrong durations are the root cause of most late-day collapse, and no amount of messaging compensates for a calendar that was never achievable.
Leave a two-hour block at the end of each technician's day, closed to online booking and opened only by the dispatcher. That is what absorbs the burst pipe without destroying three other appointments. Without it, every emergency is paid for by three customers who were already booked.
Early each morning, the technician gets one message: their jobs in window order, with address and map link, job type, access notes, the customer's description, and any parts already on the record. Flag any job with empty access notes or an unresolved parts hold so they can call before driving. The customer gets a short text naming the window, the job reference and the promise that the technician will text when on the way.
When a technician taps En Route they enter an estimate in minutes. If they skip it, prompt them rather than sending the customer a vague message. "Roughly twenty minutes out" is useful; "on the way" is not. Then set a watcher: if the job is still En Route well past that estimate, notify the dispatcher, because the technician is either stuck or forgot to tap arrival, and both need a human.
This is the workflow that saves the afternoon. When a job passes its configured duration by a set margin, flag it, post it to an internal exceptions channel, and message the next customer in that technician's day before they start wondering. Tell them the delay, tell them you still expect to make their window, and promise a confirmation when the technician sets off. If the next window becomes unreachable, that is a dispatcher decision, not an automated one.
When a technician finds something outside the original scope, they submit a short diagnosis form with photos, and the customer gets a page describing the extra work, with the photos, and an explicit approve or decline. The price on it is put there by the technician or the office, never by the assistant. Approval writes a timestamped record to the job.
Behind it, run an escalation on the clock: a phone walkthrough offered after ten minutes undecided, an office call after twenty. An on-site technician standing still is the most expensive idle time in the business. And make ambiguity count as nothing: anything that is not an explicit approve stays unapproved, and a deferral creates a dated follow-up so the quote is not lost.
BO answers "where are you?" from the live stage and timestamps, at any hour. Dispatched becomes a restatement of the window. En Route becomes the estimate the technician entered, with the word roughly. On Site at a prior job with an overrun flag becomes an honest explanation and a promise to text when they set off.
What BO must never do is the more important half. It never dispatches, reassigns or reschedules a dispatched job: those become dispatcher tasks. It never states a price for extra work, never authorizes work on a customer's behalf, and never interprets an ambiguous reply as approval. It hands off immediately on any safety concern, complaint, pricing dispute, property damage or insurance claim. Everything it says comes from the job record, not from inference.
The completion form captures what was done, photos, parts used, a signature and whether a return visit is needed. That triggers a completion summary, then the invoice for authorized work only, then a payment chase that stops after three attempts and hands collections to a human. Two hours later, a one-question satisfaction text gates the review request.
Use a customer line and a separate dispatch line. Crew notifications and customer threads in the same inbox makes it unusable within days, and technicians should never have to hand out a personal mobile. Mask outbound caller ID to the business number.
Decide which system is the record for scheduling and sync in one direction only. Two systems both writing appointment status will double-book crews and produce status messages that contradict each other. If an existing field service platform has to stay in play, keep the jobs pipeline authoritative for status or the whole point is lost.
Tag the contact as having an active job from dispatch to completion, and suppress every marketing and nurture send for the duration as a global condition on each campaign, not as something to remember. A promotional email arriving mid-job is a fast way to lose trust.
Gate the ask behind a one-question satisfaction score. A score of four is information, not a review opportunity: ask what would have made it a five and route the reply to the owner. A low score gets a phone call from a person and no review request, ever, for that job. Never offer anything in exchange for a review, and check the current terms of each review platform you use, because they differ and they change.
When a job is held for a part, confirm arrival with whoever ordered it the day before it is due, and if the date slips, tell the customer honestly with a revised date. Silence on a parts date is what produces the complaint, not the delay itself. Book the return visit in the driveway before the technician leaves, not from the office three days later.
When a new job is created at an address that already had the same job type recently, flag it for the owner before dispatch and suppress the review workflow for it. Repeat callbacks are a quality signal, and they belong in a private conversation rather than on an automated scoreboard.
Before you start, settle the human decisions this depends on: a named dispatcher who owns the board each day, pricing authority for additional work written down in advance, warranty terms per job type, and a policy for unhappy customers covering who calls and how fast. Job records hold gate codes, alarm information and interior photographs, so restrict visibility, set a retention period and document your deletion process. Messaging consent, call recording and e-signature rules vary by jurisdiction, so have your own counsel review your consent and authorization wording before launch.
If you want this built on your existing calendars and accounting stack, book a call and we will scope it against your crew size and job types. If customers are going quiet before the job exists, the instant quote request response build handles the front of the chain.
Some will immediately and some will not, which is why the pilot comes first. Two things decide it: the number of taps required, and whether the taps replace work rather than add to it. If tapping On Site means nobody texts asking where they are, and tapping Complete means no evening write-up, adoption follows. If it is extra admin on top of everything else, no amount of policy fixes it.
Often, yes. The constraint is that one system has to be authoritative for job status, and it has to be the one driving the customer messages. Existing platforms can stay in play for scheduling, inventory or invoicing, connected through a standard integration tool, as long as status flows in one direction. What does not work is two systems both claiming to know where a technician is.
The ones tied to a job happening right now are welcome: confirmation, on the way, arrived, delay, completion. Those are what the customer would otherwise call about. Everything else, invoice chasing and review requests included, belongs firmly inside daytime hours and capped. If reminders and nurture campaigns are also running, set a global ceiling per customer per week so they do not stack.
Honor it immediately and plan the consequence rather than quietly continuing because the messages are transactional. Record the preference, route that customer to a phone-call task for the updates they still need, and make sure the dispatcher can see why.
Every article on this blog sits on top of a build guide in the AppBO library. It is the same system, written out end to end: the problem it solves, the architecture behind it, every workflow with its triggers and conditions, and what measurably changes once it is live. If this piece made the case, the build guide shows you the wiring.
Open the build libraryBring us how your business actually runs today and we will tell you which system to put in first, what it will take, and what it should change.
Book a call