Skip to content
imessageapi

iMessage for painters and decorators

Colour approvals, daily progress, and a punch list at the end. Painting is the trade where the customer has the strongest opinions and the least ability to describe them in words — so send pictures.

6 min readUpdated August 24, 2026By industry

Nobody argues about whether a pipe is fixed. Everybody has an opinion about a colour. Painting is unusual among the trades in that the customer's subjective judgement is the acceptance criterion — which makes written, photographed agreement more valuable here than almost anywhere.

Get the colour in writing, with a photo, in their light

A colour code is not agreement. A photograph of the sample on their wall, in their light, at the time of day they will see it, replied to with a yes — that is agreement.

colour approval
export const colour = {
sample: (c: Ctx) =>
`${c.company}: three samples on the ${c.room} wall — photo attached, ` +
`taken about ${c.timeOfDay}. Left to right: ${c.options}. ` +
`Have a look this evening too, they shift a lot in artificial light.`,
 
// Reply to this message is the authorisation. Keep it.
confirm: (c: Ctx) =>
`${c.company}: confirming ${c.chosenColour} in ${c.finish} for the ` +
`${c.room}, and ${c.trimColour} on the trim. ` +
`Reply YES and I'll get it ordered — it's non-returnable once mixed.`,
 
variation: (c: Ctx) =>
`${c.company}: happy to change it, but the ${c.oldColour} is already ` +
`mixed — that's ${c.repriceAmount} for new paint plus ${c.extraDay}. ` +
`Fine either way, just want you to know before you decide.`,
};

'Non-returnable once mixed' has to be said before, not after

Custom-mixed paint is the most common source of billing disputes in this trade. One clause in the confirmation message prevents nearly all of them, and it reads as helpful rather than defensive when it arrives before the order.

Daily progress on a job that lives in someone's house

Interior work means you are in someone's home for days. Customers who are out at work all day come home to changes they did not see happen, and small anxieties compound. A photo at the end of each day resolves it.

  • End of each day: what got done, what tomorrow looks like, and one photo.
  • Anything unexpected: damp behind the wallpaper, a wall that needs more prep, plaster that has blown. Photograph it and price it before you carry on.
  • Drying and curing: when they can move furniture back, when they can wash the walls. Getting this wrong ruins finished work.
  • Access and pets: which rooms are wet, which doors must stay shut.

The punch list, before you ask for money

Every decorating job ends with a snag list. Inviting it explicitly, in the thread, is much better than waiting for it to arrive as a complaint alongside a withheld payment.

sign-off
export const signOff = {
walkRound: (c: Ctx) =>
`${c.company}: finished. Have a proper look in daylight tomorrow and ` +
`send me anything you're not happy with — photos are easiest. ` +
`I'd rather come back for an hour than leave you looking at something ` +
`that annoys you.`,
 
snagsDone: (c: Ctx) =>
`${c.company}: all ${c.snagCount} sorted — photos attached. ` +
`Invoice is ${c.link}. Thanks, it's come out well.`,
};

Inviting snags before invoicing shortens the payment cycle rather than lengthening it — the customer has nothing left to hold the money against. The payment collection playbook covers the rest.

Next step

Browse the other industry playbooks, compare the services that can send this on the providers page, or tag your links with the UTM builder.