Skip to content
imessageapi

iMessage for dog groomers and pet services

Owners want to know their dog is fine, want the photo at the end, and need reminding roughly every six weeks. It is an appointment business with an unusually emotional customer.

6 min readUpdated August 24, 2026By industry

Grooming is a straightforward appointment business with one unusual feature: the customer has left a family member with you and is mildly anxious for two hours. Everything that works in this trade follows from taking that seriously rather than finding it funny.

The ready photo is the entire brand

A photo of the dog looking pleased with itself, sent the moment the groom is finished, is the most shared, most screenshotted, most word-of-mouth-generating message in this industry. It costs ten seconds.

the messages that matter
export const groom = {
arrived: (c: Ctx) =>
`${c.salon}: ${c.petName} is settled in with ${c.groomer} — ` +
`all happy. We'll have her ready about ${c.readyTime}.`,
 
// The one that gets screenshotted and sent to the family group chat.
ready: (c: Ctx) =>
`${c.salon}: ${c.petName} is done and looking very pleased with ` +
`herself 😊 Photo attached. Ready whenever you are.`,
 
rebook: (c: Ctx) =>
`${c.salon}: ${c.petName}'s coat will be ready for another groom ` +
`around ${c.nextDue}. Want the same slot with ${c.groomer}? ` +
`Reply YES and it's booked.`,
};

Rebook at pickup, or by text the same evening

Grooming intervals are predictable — six to eight weeks for most coats. Booking the next one while the owner is looking at a freshly groomed dog converts far better than a reminder six weeks later when the dog looks scruffy and they are irritated about it.

Difficult conversations, handled well

Sometimes a groom does not go to plan: matting that has to be shaved out, a dog too stressed to finish, a lump found while brushing. These are hard conversations and text is genuinely better for some of them — it gives the owner a moment to absorb it before responding.

difficult news
export const difficult = {
matting: (c: Ctx) =>
`${c.salon}: ${c.petName}'s coat is matted close to the skin in ` +
`${c.areas} — photo attached. Brushing it out would hurt her. ` +
`Kindest thing is to clip short and grow it back properly. ` +
`That's ${c.price}. Is that OK?`,
 
stopped: (c: Ctx) =>
`${c.salon}: ${c.petName} got quite stressed so we stopped early — ` +
`she's fine, just had enough. We've done ${c.completed}. ` +
`Only charging ${c.partialPrice}. Worth a shorter, more frequent ` +
`schedule next time so it's less of an ordeal for her.`,
 
// Observe. Never diagnose.
foundSomething: (c: Ctx) =>
`${c.salon}: while brushing we felt a small lump on ${c.petName}'s ` +
`${c.location}. Probably nothing, but worth your vet having a look. ` +
`We're not qualified to say more than that.`,
};

Report what you felt, never what you think it is

Groomers find lumps, skin conditions and injuries regularly, and owners will push for an opinion. 'We felt something, please see your vet' is the entire safe message. Speculating is both outside your competence and a liability — veterinary clinics is the other side of that conversation.

Vaccination records and the boring admin

Most salons require up-to-date vaccinations and most owners forget. Asking in the confirmation message, rather than at the door, avoids turning a dog away on the day — which is bad for everyone and usually loses the customer.

The photo you sent also does double duty as a review prompt. Ask the evening of the groom, while the dog still looks immaculate — the review requests playbook has the wording.

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.