Tell the customer the moment you know the tech will miss the window, not when the window has already passed, and give a specific new time instead of an apology. "Running about 40 minutes behind, new arrival 11:10 to 11:30" keeps the customer. "Sorry, running late" at 12:05 loses them.
Most companies handle lateness at the wrong moment. The tech is behind, hopes to catch up, says nothing, and the customer calls the office ten minutes after the window closes. By then the customer has already taken time off work for nothing, and the call is about trust, not timing.
Why the timing matters more than the words
A customer waiting on a window is making decisions: whether to leave for lunch, whether to call a neighbor to let the tech in, whether to cancel and book someone else. Every one of those decisions needs a time, and they need it before the window ends.
The value of a late notice falls as the window runs out. Sent two hours ahead, the customer can rearrange their afternoon. Sent ten minutes before the end of the window, it's just an apology. Sent after, it's damage control. A wide arrival window doesn't fix this; it only moves the moment the customer gives up. And if you measure on-time arrival against the window you promised, an early update doesn't make a late arrival count as on time, but it does keep the customer.
So the rule is simple: the message goes out when you know, not when you're sure. You know a tech will be late the moment the job they're on runs long. Not when they get in the truck.
When you actually know
Lateness almost never starts on the drive. It starts on the job before.
Say a tech has a 9:00 job planned for 90 minutes, then a 25-minute drive to an 11:00 window that runs to 1:00. If the 9:00 job will run to 11:15, the next arrival is about 11:40. That customer is still inside the window. The one after isn't.
The overrun was visible halfway through the first job, when the tech found a seized valve. That is when the third customer should have heard. The arithmetic for how overruns stack up across a day is in arrival window math.
What to say
A good late message has three parts and no fluff.
- That the tech is behind. One clause. No reason needed unless it's short and true.
- A specific new time. A 20- or 30-minute range, not "later this afternoon."
- A choice. Keep the new time, or move to another slot. Some customers would rather rebook than wait.
What to leave out: long apologies, blaming traffic you haven't checked, and promises you can't keep. "We'll be there as soon as possible" is not a time.
Three scripts
Small delay, still inside the window. "Hi Dana, it's Northline Heating & Air. Your tech is running a little behind and will now arrive between 11:30 and 11:50, still inside your window. Reply if that doesn't work and we'll find another time."
Delay past the window. "Hi Dana, it's Northline. The job before yours is running long and your tech can't make your 9 to 11 window. The earliest new time is 12:15 to 12:45 today, or we can move you to tomorrow morning. Which works better?"
Rescheduling. "Hi Dana, it's Northline. We're not going to make it today, and we're sorry. We've held 8:00 to 9:00 tomorrow for you. Reply YES to keep it, or call us to pick another time."
Northline Heating & Air is an example company name. Swap in yours.
Who sends it
The worst setup is the tech texting customers from the cab. They're driving, they're behind, and they'll put it off.
Better: the office sends it, triggered by the tech's status. That only works if the office finds out early, which means the tech has to report the overrun when it happens, not after. A one-tap "I'm running long" on the phone is the difference between a message at 10:15 and a call at 11:10.
Best: the system does it. The ETA notification when the tech taps "on my way" covers the normal case. The late case needs something earlier, because by the time the tech is on the way, the delay is already baked in.
How CrewLink handles it
This is one place CrewLink has a specific answer. The tech phone app has a mid-job check-in: about halfway through a job the app asks if the tech is on track or needs +15, +30 or +60 minutes. An extension re-flows the rest of that tech's day right away: later jobs that no longer fit are handed to a teammate who can make the same time, or moved to the nearest open time, and the affected customers are texted. Customers also get a text when the tech is on the way, with an ETA.
The general practice works without software too: ask at halftime, re-plan, tell customers. More on the whole sequence of customer messages is in field service customer communication.
What to take away
- Send the late message when you know, which is usually halfway through the job before, not on the drive.
- Give a specific new time range and a choice to keep it or rebook. Skip the long apology.
- Don't leave it to the tech in the cab. Get the overrun reported early and send from the office or the system.
- Lateness compounds: one 45-minute overrun at 9:00 can push the third customer of the day out of their window.
Common questions
How early should a tech tell a customer they're running late?
As soon as the delay is known, which is usually during the previous job. Aim to give at least 30 to 60 minutes of notice before the original window would have ended, so the customer can still change their plans.
Should the message include the reason for the delay?
Only a short, true one, like "the job before yours is running long." Customers care about the new time far more than the reason, and detailed excuses read as stalling.
Text or call?
Text first for a small delay, because the customer can read it whenever. Call for a missed appointment or a reschedule, or if the customer doesn't reply to the text and the new time matters.
What if the tech might catch up?
Send the message anyway with the realistic time. Arriving earlier than a revised time is a pleasant surprise. Arriving later than a promise you didn't update is the complaint.