ChatGPT for Contractors: Five Customer Messages to Draft and Check

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for ChatGPT for Contractors: Five Customer Messages to Draft and Check.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for ChatGPT for Contractors: Five Customer Messages to Draft and Check.

Five customer messages are safe to draft with ChatGPT: quote follow-ups, delay notices, snag replies, payment chasers and review requests. You supply the facts; it supplies the wording. Before sending, check every date, amount and promise against your own records, because ChatGPT fills gaps with plausible guesses and an accidental promise costs more than a slow reply.

These five work because the content is yours and only the phrasing is borrowed. A delay notice has a reason, a new date and an apology, and the risk sits in the details. Keep ChatGPT away from messages where the content itself is in dispute: an injury, a safety defect, a threatened claim, a formal notice. Those need a phone call or an adviser first.

Follow me on Instagram@sagnikteaches

Each message below follows the same shape: when to send it, the prompt, an illustrative result and a send-check. The jobs, amounts and dates are invented, and every customer is "[first name]". Change the facts, never the structure.

Connect on LinkedInSagnik Bhattacharya

All five draw on the same short record of the job, and that record does more to prevent a bad message than any wording in the prompts.

Subscribe on YouTube@sagnikteaches

A facts block and a project that holds your voice

ChatGPT writes confident sentences whether or not it has the facts. A facts block stops that by listing everything the message may say and telling it to flag anything missing. Paste the block at the bottom of every prompt and fill it from your own records (the quote, the invoice, the diary), never from memory.

FACTS (use only these; add nothing):
- Customer: [first name]
- Job: [one line, e.g. "new bathroom, three weeks"]
- Dates I have confirmed: [weekday and date, or "none"]
- Amounts from my paperwork: [quote or invoice figures]
- What I can promise: [list]
- What I cannot promise: [list]
If a fact the message needs is missing, write [CHECK: what is missing] instead of guessing.

Fill in "cannot promise" honestly. Typical entries: a start date before the supplier confirms, that the paint will match exactly, that a crack is harmless. That one line prevents the commonest accident, a pleasant-sounding sentence that turns into a commitment.

To avoid re-teaching your voice each time, keep the instructions in a ChatGPT Project. OpenAI's help page describes projects as keeping related chats, files and instructions together, with the instructions under Project settings. Paste three messages you were pleased with into the project files, and these rules into the instructions:

You draft short messages from a small contracting firm to its customers.
Match the tone and length of the sample messages in this project: plain words, first person, no corporate phrases.
Use only the facts I give you. If something is missing, write [CHECK: ...]. Never invent dates, amounts, names, guarantees or reasons.
Never admit fault, promise a result or describe anyone's legal rights. Never mention interest, fees or legal action unless I put them in the facts.
Keep each message under 120 words unless I say otherwise.

On data, use first names, a one-line job description and the amounts, and leave out addresses and phone numbers. OpenAI's Data controls page sets out the default: on personal plans, chats may be used to improve its models until you turn off Improve the model for everyone under Settings, then Data controls. A Business workspace isn't used for training by default. Skip the thumbs buttons on any chat with customer details, because feedback can send the whole conversation for training even after you opt out.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

1. Quote follow-up: one question, not a nudge

A follow-up that says "just checking in" gives the customer nothing to answer, so silence is the natural reply. The better draft asks one question that moves things on: is it the price, the timing or the scope? Send the first a few days after the quote and a second about a week later. Following up unapproved repair estimates with AI goes further on this one.

Write two follow-up messages for a quote I sent: a text message under 50 words and an email under 100 words. Ask exactly one question that lets the customer reply in a line (timing, price or scope). No pressure, no "just checking in", no invented deadlines.
[paste facts block]

A filled facts block for a fascia and gutter job reads: customer [first name]; job: replace rotten fascia and gutters on a two-storey house; dates confirmed: quote sent last Tuesday; amounts: $3,950, valid for 30 days; can promise: the price until the quote expires; cannot promise: a start date. The text message that comes back (illustrative):

Hi [first name], it's [your name] about the fascia and gutter quote. Is it the price, the timing or the scope you're weighing up? A one-word answer is fine and I can adjust whichever it is.

Read the last clause as a customer would. "I can adjust whichever it is" tells them the price might move, and you never said that. Delete it unless it is true. This is the typical failure: the draft is friendly and quietly generous with your margin.

Send-checkWhy
Amount and validity period match the quoteA wrong figure in writing can be held against you.
No hint that price or dates can move, unless you mean itFriendly wording often implies flexibility you haven't offered.
One question, answerable in a lineTwo questions get no reply.
Your name, and the quote's job description, not a generic oneThe customer should know which quote you mean at a glance.

The second follow-up has a different job, which is to close the loop. About a week after the first, ask permission to stop. A draft from the same facts block (illustrative):

Hi [first name], I haven't heard back about the fascia and gutter quote, so I'll assume the timing isn't right and close it on my side. The price stands until [CHECK: expiry date], so if things change, reply to this message and we'll pick it up. Thanks for the chance to quote. [your name]

It works because it takes the pressure off. A customer who meant to reply has an easy way to do it, and you get a clean ending either way. The check is the same as before: the expiry date comes from the quote, not from ChatGPT.

2. Delay notice: the reason, the new date, what you need

Customers forgive a delay faster than silence. A good notice has four parts, in this order: what has changed, why in one plain sentence, the new date (or the day you will confirm one), and anything you need from the customer. For the scheduling side, see AI software for construction scheduling and programme updates after delays.

Draft a delay notice under 120 words in a calm, plain-spoken tone.
Parts, in order: what has changed; why, in one sentence with no blame on any named person or company; the new date, or the exact day I will confirm one; anything I need from the customer.
Apologise once. Offer no compensation. Do not give a date unless the facts block marks it confirmed.
[paste facts block]

A realistic mistake shows why the facts block carries weekdays. In one run the notice said "we'll be back on Monday", because the block said "new date: next week" and the model chose a day for you. The fix was in the block, not the message: "Dates I have confirmed" now takes a weekday and date, or the word UNCONFIRMED. With that in place, a worktop delay produces this (illustrative):

Hi [first name], a quick update on the kitchen. The worktop supplier has told us the order will arrive later than planned, so the fitting day moves from Tuesday to [CHECK: new date]. I'll confirm the exact day by Friday afternoon. When we do come, could you keep the kitchen clear and the water isolation tap reachable? Sorry for the change, I know you planned around Tuesday. [your name]

The draft keeps its [CHECK] tag because the new date isn't confirmed, which is correct behaviour. Run this checklist before you send:

  • Has the supplier confirmed the delay in writing, and does the reason you gave match what they said?
  • Is every [CHECK] tag replaced by a real fact or removed along with its sentence?
  • Does the message avoid blaming a named supplier or subcontractor?
  • Has nothing been offered (credit, discount, compensation) that you haven't decided to give?
  • If your contract sets how and when you must give notice of a delay, does this message and the way you send it meet that? If you aren't sure, ask your adviser.

3. Snag reply: sort the list before you answer it

A snag is a minor defect or unfinished item (also called a punch-list item). Customers send them as a photo and a sentence each, usually in one long message. A single reply to everything produces promises you can't keep, so let ChatGPT sort the list first and draft second. A longer treatment of snag lists and client updates is in writing client updates and snag lists with AI for builders.

Below is a customer's snag list. Sort every item into one of four groups:
A) We fix it: clearly our work, unfinished or damaged.
B) We need to look: cause unclear (for example seasonal movement or settling).
C) Not a defect: explain politely what was done and why.
D) Change request: new work to be priced separately.
For group B, say which photo or measurement I should ask for. Do not say whether anything is covered by a guarantee or warranty. Then draft a reply under 150 words that confirms the groups and promises no dates.
SNAG LIST:
[paste the customer's message]

Run on a six-item list, the sorting comes back like this (illustrative):

Customer's itemGroupWhy, and what to ask for
Paint chipped by the kitchen door frameAClearly finish damage; fix on the next visit.
Bathroom door sticks in damp weatherBCould be seasonal swelling; ask for a photo of where it catches.
Grout colour looks different from the sampleCCheck against the approved sample before explaining.
Hairline crack above the patio doorBAsk for a photo with a ruler beside it; inspect in person.
Hall socket cover looseASimple fix.
"Could the shelves move 10 cm?"DA change, not a snag; price separately.

The reply drafted from that sorting looks like this (illustrative):

Hi [first name], thanks for the list. Two things I can fix on my next visit: the chipped paint by the kitchen door frame and the loose cover plate in the hall. For the bathroom door and the crack above the patio door, could you send a photo of each, with a ruler beside the crack? Then I can see what is causing them. The grout is the colour on the approved sample ([CHECK: compare with the approved sample before sending]). The shelf change is a good idea and I'll send a separate quote. [your name]

The reply confirms two quick fixes, asks for two photos, explains the grout against the sample and says the shelf change will be quoted separately. What you check: the draft never says "covered" or "not covered" until you have read your contract's wording on defects; every date comes from your diary; and each group C explanation is true when you look at the approved sample. Moving the shelves is a sale, so group D often earns money instead of costing it.

4. Payment chaser: three steps, each with its own tone

Late invoices need a sequence, because the right words on day one are the wrong words on day 28. The three steps below start from the assumption that the customer forgot and end with a clear request for a reply, with no threats anywhere.

StepWhenPurposeTone
1Day 1 after the due datePrompt a payment from someone who may have missed itFriendly, assumes an oversight
2Day 14Get a payment date in writingFirm and specific
3Day 28Say clearly that you need a reply before discussing next stepsFormal, calm, no threats
Write three messages about an overdue invoice, for day 1, day 14 and day 28 after the due date. Use only the facts block. Do not write bank details: say they are on the invoice.
Day 1: friendly, assume it was missed. Day 14: firm, name the amount and how long it is overdue, ask for the date payment will be made. Day 28: formal and calm, say I need a reply by [date] so we can discuss what happens next.
Do not threaten legal action, mention interest or fees, or mention contacting anyone else.
[paste facts block, with invoice number, amount and due date]

With invoice 0231 for $4,860 due on the 3rd, the day-14 message reads (illustrative):

Hi [first name], invoice 0231 for $4,860 was due on the 3rd and is now 14 days overdue. Could you tell me by Friday the date you expect to pay? If anything on the invoice is unclear, or you want to talk through any part of it, call me and we'll sort it out. Payment details are on the invoice. Thanks, [your name]

The day-1 version is lighter and the day-28 version stays calm (illustrative):

Day 1: Hi [first name], a quick reminder that invoice 0231 for $4,860 was due on the 3rd. If it's already on its way, please ignore this. Payment details are on the invoice. Thanks, [your name]

Day 28: Hi [first name], I haven't had a reply to my earlier messages about invoice 0231 for $4,860, which is now 28 days overdue. Please reply by [CHECK: date] so we can agree how to settle it. If there is a problem with the work or the invoice, tell me what it is and I will respond. [your name]

Three rules sit in the send-check. The invoice number and amount are pasted by you from the invoice, never typed by ChatGPT. Interest and fees appear only if your contract states them, and a message that relies on them should be read by an adviser first. And stop the sequence the moment a customer disputes the work, because a third message that lands in the middle of a dispute turns a disagreement into a grievance. Phone before you send step 3. Chasing unpaid invoices with AI covers polite reminders for trades in more depth.

5. Review request: ask everyone, offer nothing

The wording is the easy part. The rules are not. Google's contribution policy says merchants may not selectively solicit positive reviews from customers, and may not offer incentives for reviews. It also lists staff quotas for reviews and requests for reviews with specific content as breaches, and says not to pressure people to leave a review on the premises. In practice that means one message, sent to every finished customer, with nothing in return and no suggested wording.

Write a short text message asking a customer to review our work on Google. Under 40 words. Thank them for the job and include the placeholder [link]. Do not offer anything in return, suggest what to write, mention star ratings or imply that only happy customers are being asked.
[paste facts block: first name and job only]

The result is short enough that there is little to fix (illustrative):

Hi [first name], thanks again for letting us do your bathroom. If you have a minute, we'd appreciate an honest review on Google: [link]. Thank you, [your name]

Decide the trigger once and apply it to every customer: for example, seven days after the job's completion date. Never choose recipients by how happy they seem, because selective asking is the very thing the policy rules out. A customer with an open snag gets the same request on the same day as everyone else, and the snag is dealt with on its own track. Keep it a single, light ask, because pressure is a problem too.

  • Was it sent to every customer whose job finished this month, including the ones who raised snags or complained?
  • Is there nothing in it that offers a discount, a gift or an entry into a draw?
  • Does it avoid suggesting words, a rating or a topic (such as a named member of the crew)?
  • Was it sent after the job, rather than put to the customer on site?
  • Does the link open the right profile when tested on a phone?

Replying to what arrives is a separate routine. For more on asking in the first place, see getting more reviews after every job with AI follow-ups.

One bathroom job through all five messages

The samples above used different jobs so you could see the range. Real life is one job at a time, and the strength of the facts block shows when the same record feeds every message. Here is a bathroom refit, with the figures that connect the messages (illustrative):

MessageTriggerFacts pulled from the job recordWhat the send-check caught
Quote follow-upQuote of $6,400 sent, no reply after three daysPrice $6,400, valid 30 days, deposit 30% ($1,920)The draft said "I can sort the price out". Removed.
Delay noticeTile delivery slips by a weekOriginal tiling day Tuesday; supplier's confirmed delivery day ThursdayThe draft promised a Monday restart. Replaced with the confirmed Thursday and a [CHECK].
Snag replyCustomer sends six items two days after completionSix items, approved grout sample on fileThe draft called a crack "covered by the warranty". Removed until the contract was read.
Payment chaserInvoice 0231 unpaid on the due date$6,400 + $380 shower niche - $1,920 deposit = $4,860Asked to work out the balance itself, one draft said $4,680. The amount was pasted from the invoice instead.
Review requestSeven days after the completion dateFirst name and job onlyLink tested on a phone; the same message went to every customer finished that week.

The sum behind message four is worth a second look: the $6,400 quote plus a $380 variation for the shower niche, minus the $1,920 deposit, leaves $4,860. Every figure in the later messages should reconcile with that record. When a deposit in one message and a balance in another don't add up, one of them is wrong, and finding the odd one out takes a minute with the job record open beside the drafts.

Five situations where you phone instead

ChatGPT drafts well for routine news. These five are not routine, and a written message can make them worse:

  • Anything involving an injury or a safety defect. Call, then confirm in writing in words you have checked with your adviser or insurer.
  • A money dispute where you may be at fault. A friendly draft can read as an admission or a promise.
  • A customer who hasn't answered two written messages while the work is blocked. A call settles in two minutes what messages haven't in two weeks.
  • Anything with the flavour of a formal notice. If a message might be used later to show that notice was given, ask an adviser to read it.
  • Bad news bigger than a date, such as a price rise or a change of scope. Tell the customer on the phone, then use ChatGPT to turn your call notes into the written confirmation.

That last use is worth keeping: dictate your call notes, ask for a confirmation message that uses only those notes, and send it after checking that every figure and date matches what was said.

How much time the routine saves in a week

Take a small contractor who sends about 25 customer messages a week: eight quote follow-ups, two delay notices, three snag replies, six payment chasers and six review requests. Written from scratch, a message takes about eight minutes including the pause to think of wording, which makes 200 minutes. With the facts block, a draft and a proper check it takes about four: one minute filling the facts, one generating, two reading and checking. That is 100 minutes, so about an hour and 40 minutes saved a week. These are illustrative figures; time yourself on five real messages before believing anyone's numbers, mine included.

The saving is real but small. What makes the routine worth keeping is consistency: the follow-up that always gets sent, the review request that always goes to everyone, the delay notice that arrives on the day you know.

Questions contractors ask before letting ChatGPT write to customers

Should I tell customers a message was drafted with ChatGPT?

For routine messages there is nothing to announce, but the message becomes yours the moment you send it, so you stand behind every date and promise in it. If a customer asks, say yes: you use it to draft and you check every line. Your contract or your insurer may say more, so read both if you are unsure.

Which ChatGPT plan do I need for these five messages?

The free plan can draft all five. A paid plan mostly adds higher usage limits and more features, which short messages hardly need. The choice that matters is the data setting: on personal plans the model-training switch starts on, so turn it off, or use a Business workspace. Keep names, addresses and phone numbers out of every prompt whichever plan you use.

How do I stop the messages sounding like a robot wrote them?

Paste three real messages you were pleased with and tell ChatGPT to match their length and plain words. Then cut anything you would never say aloud: stock openers, three-word flourishes, apologies repeated twice. Read the message out loud before sending. If you stumble on a sentence, the customer will notice it too.

What if the draft makes a promise I cannot keep?

Delete it, then add that promise to the cannot-promise line of your facts block so every later draft starts without it. A written promise can bind you, and a customer will quote it back. Typical culprits are 'we'll be back Monday', 'the colour will match' and 'that's covered', none of which you should write unless you have checked.

Further reads

Sources: Google's contribution policy and Google Business Profile help pages, OpenAI help pages (Data controls in ChatGPT; Projects in ChatGPT), all read on 1 November 2026.

Want your customer messages drafted and checked properly?

On a 1:1 call we'll go through the messages you send most, decide which are safe to draft with AI, and set up a facts block and send-check that your whole crew can follow.

Book a 1:1 call with me