AI prompt: running-late text for home services
A copy-and-paste AI prompt that writes the text a plumber, HVAC company, electrician, roofer, painter or other home services business sends when the crew is running late: the new arrival time you type in, the reason if you give one, a short sorry and how to change the visit, with no guessed times, invented reasons, discounts or promises.
When to use it
An earlier job ran long, traffic is bad or something urgent came up, you already know your new arrival time, and you want the customer to get one short, honest text with that time and a way to move the visit, instead of a call they miss or no word at all.
- Copy the prompt below.
- Replace every
{{VARIABLE}}with your own details (see the list under the prompt). - Paste it into the AI chat tool you already use.
- Read the result against the checklist before you use it.
The prompt
You are helping a home services business write the text message (SMS) it sends to a customer when the crew is running late for a booked job. The customer will rearrange their day around this text, so it must only contain the new arrival time the business typed in below and never guess one.
DETAILS
- Business name: {{BUSINESS_NAME}}
- Type of business: {{BUSINESS_TYPE}}
- Customer's first name: {{CUSTOMER_NAME}}
- What is booked (copy word for word): {{JOB}}
- New arrival time or window (copy word for word): {{NEW_ARRIVAL}}
- Reason for the delay (copy word for word), or "none": {{REASON}}
- What the customer can do if the new time does not work (copy word for word): {{CHANGE_LINE}}
- Opt-out line (copy word for word), or "none": {{OPT_OUT_LINE}}
LAYOUT
Write the text in exactly this layout, with each part on its own line. Do not leave any blank lines between parts. Parts in square brackets are instructions, not words to copy.
Hi {{CUSTOMER_NAME}}, this is {{BUSINESS_NAME}}. We are running late for your {{JOB}}.
Our new arrival time is {{NEW_ARRIVAL}}.
[Line 3, only if the reason above is not "none": the reason, word for word. If it is "none", leave this line out and go straight to the next part.]
[Line 4, always include this line, even when there is no reason: one short sentence in your own words saying sorry for the wait. Do not give a reason, a time or a promise in it.]
[Line 5: the line about what to do if the new time does not work, word for word.]
[Last line, only if the opt-out line above is not "none": that line, word for word. If it is "none", leave this line out.]
RULES FOR THE TEXT
1. Use only the details above. Do not invent or change any time, day, arrival window, name, phone number, link or price, and do not write any number that is not in the details above.
2. Do not add anything the business did not say: no reason unless one is given, no "we will text or call again", no "on the way" or "just around the corner", no technician names, no discounts, credits or anything free, no promises about how long the job will take.
3. Include every part of the layout that is not "none", and nothing else. Never write the word "none" in the text. Say each thing once and do not repeat any sentence.
4. Plain words, short sentences, no emojis, no hashtags, no exclamation marks.
Before you answer, check your text: if any line is the word "none", delete that line, and make sure the text has a line that says sorry for the wait.
Return only the finished text message and nothing else.What to fill in
- {{BUSINESS_NAME}}
- Your business name, as customers know it.
- {{BUSINESS_TYPE}}
- What you do and where, in a few words.
- {{CUSTOMER_NAME}}
- The customer's first name.
- {{JOB}}
- What is booked, in a few words, e.g. water heater replacement. The AI copies it word for word.
- {{NEW_ARRIVAL}}
- The new arrival time or window exactly as the customer should see it, e.g. between 11am and 11:30am. Only give a time you can keep. The AI copies it word for word.
- {{REASON}}
- One short sentence on why you are late, e.g. Our earlier job took longer than planned, or "none" to give no reason. The AI never makes one up.
- {{CHANGE_LINE}}
- One sentence on what the customer can do if the new time does not work, e.g. If that time no longer works, reply to this text or call (your number). The AI copies it word for word.
- {{OPT_OUT_LINE}}
- The opt-out line your texts use, e.g. Reply STOP to opt out, or "none" if your texting service adds its own.
Real example output
Fictional sample business. Cedar Line Plumbing, the customer and the phone number are fictional. They were made up to test this prompt; any resemblance to a real business or person is unintended.
Show the inputs used for Cedar Line Plumbing (fictional)
- BUSINESS_NAME
- Cedar Line Plumbing
- BUSINESS_TYPE
- plumbing company in Lowell, MA
- CUSTOMER_NAME
- Maria
- JOB
- water heater replacement
- NEW_ARRIVAL
- between 11am and 11:30am
- REASON
- Our earlier job took longer than planned.
- CHANGE_LINE
- If that time no longer works, reply to this text or call (978) 555-0163 and we will find a new day.
- OPT_OUT_LINE
- Reply STOP to opt out.
What the model returned
Hi Maria, this is Cedar Line Plumbing. We are running late for your water heater replacement. Our new arrival time is between 11am and 11:30am. Our earlier job took longer than planned. Sorry for the wait. If that time no longer works, reply to this text or call (978) 555-0163 and we will find a new day. Reply STOP to opt out.
Model: Qwen3-4B-Instruct-2507 (Q4_K_M GGUF), llama.cpp server b12110, run locally, temperature 0.4. Tested on . Edits: None. The words are exactly as the model returned them, apart from removing spaces at the ends of lines. All 8 runs with this prompt and these inputs passed the automatic checks (the first line, the new arrival time, the reason, the change line and the opt-out line copied exactly, a short sorry line written by the model, each part on its own line, no blank lines, no other numbers, days or times, no invented reasons, discounts, credits, technician names, "on the way" or "we will text again" promises, no repeated sentences) and a manual read. We ran the same prompt for 8 runs each on four other fictional businesses: a painter with no reason and no opt-out line, an HVAC company with its own opt-out wording, an electrician with no opt-out line, and a roofer with no reason. All 32 passed both checks. The runs were word for word the same for each business, and the only words the model wrote itself were "Sorry for the wait.", so the text is only as good and as true as what you put in. An earlier draft failed for the painter: with no reason and no opt-out line, the model also dropped the sorry line in all 4 runs. AI output varies between runs and models, so always review it before posting.
Check before you post
- The new arrival time is one you can actually keep. If you are not sure, give a window, not a single time, and send another text yourself if it slips again.
- The reason is true and short, or "none". The AI copies it as you type it, so leave out anything about other customers you would not want shared.
- The change line names a way that someone actually answers while the crew is on the road, and the phone number is copied exactly.
- No discounts, credits, refunds or promises unless you added them yourself and you mean them.
- Only text people who have agreed to get texts from you, and honor every opt-out. Check what your texting or dispatch software already sends, such as its own on-the-way alerts, so the customer does not get two different times.
- Before you switch it on, send a test to your own phone and read exactly what arrives.
Get the full set of local business prompts.
The pack has 40 prompts for Google review replies and review requests, Google Business Profile posts, ads, emails and social posts, plus a fill-in business context block. One-time purchase, $24.
Related tools
Zernio in the Digidle directory is one API for SMS, WhatsApp and social posts if you want to send texts like this from your own software. Retell AI builds AI phone agents, if you want calls answered by an agent. This example ran on a small open model on an ordinary computer: llmspeed previews local model speed.