Skip to content
imessageapi

iMessage for pool service companies

You visit weekly, usually when nobody is home, take chemical readings the customer does not understand, and occasionally find a $900 pump problem. Reporting well is the whole business.

6 min readUpdated August 24, 2026By industry

Pool service is a recurring invisible service with an occasional large repair attached. The weekly visit needs to be visible, and the repair needs to be trusted — and the second depends entirely on how well you have done the first.

Make the weekly reading mean something

A customer does not know what a chlorine reading of 2.4 means. Sending raw numbers is technically transparent and practically useless. Sending a number and what it means turns a service call into evidence of expertise.

weekly service report
export const weekly = {
// Numbers plus interpretation. Either alone is much weaker.
serviced: (c: Ctx) =>
`${c.company}: serviced today. Chlorine ${c.cl}, pH ${c.ph}, ` +
`alkalinity ${c.alk} — all in range. Skimmed, baskets emptied, ` +
`vacuumed. Photo attached.`,
 
adjusted: (c: Ctx) =>
`${c.company}: pH was high at ${c.ph} — probably the rain last week. ` +
`Added acid, it'll settle by tomorrow. Everything else fine.`,
 
actionNeeded: (c: Ctx) =>
`${c.company}: chlorine won't hold — that usually means ${c.likelyCause}. ` +
`Worth looking at before it goes green. Want me to investigate ` +
`next visit? About ${c.diagnosticPrice} to diagnose.`,
};

'Probably the rain last week' is the line that keeps customers

It shows you thought about their specific pool rather than running a checklist. That one clause is the difference between a service the customer sees as a commodity and one they see as a relationship.

Equipment quotes need photos and a real choice

A pump or heater failure is a four-figure conversation with someone who has no way to verify what you are telling them. The photo does most of the persuading; giving them a genuine choice does the rest.

equipment
export const equipment = {
failure: (c: Ctx) =>
`${c.company}: your ${c.equipment} has failed — photo attached, ` +
`you can see ${c.visibleEvidence}. It's ${c.age} years old.\n` +
`Repair: ${c.repairPrice}, might buy you a season.\n` +
`Replace: ${c.replacePrice}, ${c.warranty} warranty.\n` +
`Honest view: ${c.recommendation}`,
 
interim: (c: Ctx) =>
`${c.company}: while you decide — run it ${c.interimAdvice} ` +
`to keep the water safe. Don't leave it more than ${c.maxDays} days ` +
`or you'll be paying for a chemical recovery on top.`,
};

Two prices and an honest recommendation converts better than one price, because it removes the suspicion that you picked the expensive option. It is the same approval pattern used by electricians and appliance repair.

Access problems and the seasonal close

Two recurring operational messages carry most of the value in this trade.

  • Access failures. A locked gate or a dog in the yard means a missed visit. Say so the same day, with what you did instead and what it means for billing.
  • Seasonal open and close. In climates that need them, these are the two biggest invoices of the year and the two most predictable bookings. Ask early, when the customer is not thinking about it and your diary is empty.

Both are the same pattern as landscaping: recurring outdoor work where the exceptions matter more than the routine.

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.