Skip to content
imessageapi

iMessage for veterinary clinics

Vaccination reminders, medication refills and post-op check-ins are all messages owners genuinely want. That makes this one of the easiest channels to get right — and to overrun.

6 min readUpdated August 23, 2026By industry

Vet practices have an unusual advantage: owners actively want the reminders. Nobody wants to be the person whose dog missed a vaccination. Recall messages here are useful information rather than marketing, and they get read.

Use the pet's name

It is not a gimmick. 'Milo is due for his booster' is processed instantly and emotionally in a way 'your pet is due for a vaccination' is not. You already have the name in your practice management system, and using it is the single biggest lift available in your templates.

clinic templates
export const clinic = {
vaccineDue: (c: Ctx) =>
`${c.clinic}: ${c.petName} is due for ${c.vaccineType} this month. ` +
`Book here: ${c.link} or call ${c.phone}.`,
 
postOp: (c: Ctx) =>
`${c.clinic}: how's ${c.petName} doing after yesterday? ` +
`Reply here — ${c.vetName} will see it.`,
 
refillDue: (c: Ctx) =>
`${c.clinic}: ${c.petName}'s ${c.medication} is about to run out. ` +
`Reply R and we'll have a refill ready.`,
};

The post-op check-in is worth more than it costs

It catches complications early, which is clinically better and cheaper than an emergency visit. It also generates a level of goodwill that no marketing message can buy — owners remember the practice that asked. Make sure a real person reads the replies: two-way texting.

Refills are the quiet revenue line

Owners on long-term medication routinely run out and then order from whichever online pharmacy appears first. A reminder timed a week before the supply ends, with a one-letter reply to order, keeps that revenue in the practice and keeps the animal on treatment without a gap.

Handle the hard messages carefully

This is a practice where some conversations are grief. Never automate anything touching end-of-life care, and make sure your recall system suppresses reminders for deceased patients — a vaccination reminder for a pet that died last month is a genuinely painful failure, and it happens more often than practices realise.

suppress.ts
// Check this before every automated send, not just at import time.
export function canSendRecall(patient: Patient) {
if (patient.status === "deceased") return false;
if (patient.status === "transferred") return false;
if (patient.owner.consent.status !== "opted_in") return false;
return true;
}

One more: keep marketing separate. A recall is treatment; a promotion on dental cleaning month is marketing and needs the corresponding consent. Consent scopes.

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.