Recurring Patient SMS Reminders: How to Set Up Birthdays, Braces and Recalls in OtterFlow

A closed appointment notebook, banded shut with a pen on top, sits on a dental clinic reception counter beside a phone showing one message and a small desk calendar.

Jen at the front desk of Smile & Skin Clinic in Mandaue keeps a notebook. One page lists braces patients and roughly when each is due back. Another page lists people who finished a cleaning and should return in six months. She checks it when the morning goes quiet, which in a busy week is never.

Nothing in the notebook is wrong. It only works on the days somebody opens it.

That is what the SMS reminders page is for. Not the reminder before an appointment, which you probably already have. The one for a patient with nothing booked at all, where the whole point is that there is no appointment to remind them about.

This is the full setup guide: every field on the screen, eight configurations you can copy, and the five behaviours that are not obvious until they catch you out.

The short version

  1. A reminder is one person, one start date, one rhythm, one time of day. That is the entire model.
  2. There are no reminder types. Birthday, braces, retainer and recall are the same thing with different numbers in the repeat box.
  3. Drafts are presets, not templates. A reminder takes its own copy of the wording, so editing a draft later never changes reminders you already made.
  4. The message accepts six placeholders in single braces. A misspelled one disappears silently rather than erroring.
  5. Everything runs in your clinic's timezone, and 9 AM stays 9 AM.
  6. Sends go out on a tick that runs every minute, so "9:00" means within a minute or so of nine.
  7. If a send falls more than three days late, the system skips it rather than delivering it, so an outage cannot produce a burst of stale texts.
  8. Patients cannot reply. Never write a message that asks them to.

Two reminder systems, and this page is the second one

OtterFlow sends SMS two different ways, and mixing them up is the single most common confusion.

Reminders attached to an appointment. A confirmation the moment someone books, a reminder 24 hours before and again an hour before, a check-in after the visit, a rebooking link after a no-show. These need an appointment to exist. They are set up once for your clinic and then run on their own, per booking, with nothing for you to manage patient by patient. If that is what you are looking for, how to automate dental appointment reminders covers the schedule and the delivery rules.

Recurring reminders for a person. This page. It needs a person and a date, and nothing else. No appointment, no booking, no entry in the diary.

The difference matters more than it sounds. The patients who most need a nudge are precisely the ones with nothing in your book: the braces patient between adjustments, the cleaning from March that was supposed to repeat in September, the crown that was fitted temporarily nine months ago. An appointment reminder cannot reach any of them, because there is no appointment.

There are no reminder types

Most software in this category hands you a list. Birthday reminders here, recall reminders there, follow-up reminders on a third screen, each with its own rules and its own limits. OtterFlow does not work that way, and the absence is the interesting part.

A reminder is four things:

  • a person
  • a start date
  • a rhythm: every N days, weeks, months or years, or no repeat at all
  • a time of day, in your clinic's timezone

A birthday greeting is a yearly rhythm anchored to a birth date. A braces adjustment is a monthly rhythm. A retainer check is every three months. A cleaning recall is every six. An aftercare check is no rhythm at all, one send, three days from today.

Same mechanism, different numbers.

It matters on the day you want something nobody wrote a preset for. Laser hair removal spaced every five weeks. An annual x-ray. A whitening top-up eleven months after the last one. A quarterly check on a patient with gum disease who needs closer watching than the standard six months. You type the number, pick the unit, and it exists.

The four tabs

The page lives under SMS reminders in your dashboard sidebar and splits into four tabs.

Reminders is the list of live schedules, grouped into Active, Paused and Finished. Each row shows who it is for, the rhythm, the next send date and how many have gone out.

Drafts is your preset library. A draft is a message plus a rhythm you reuse.

The people tab is your contact list. It is labelled Patients, Clients, Customers, Guests or Members depending on what you set on your Account page, so a derm clinic and a dental clinic each see their own word.

Sent is the log. Every text your account has delivered, both the booking-driven ones and your recurring ones, 50 most recent, click any row to read the full message.

One thing worth knowing before you start: if SMS is switched off across the whole site for maintenance, a banner says so at the top of every tab, and your reminders keep saving normally. Nothing queues up while it is off, so switching it back on cannot fire months of backlog at your patients.

Setting up your first reminder, field by field

Press New reminder.

Start from a draft

If you have any drafts, the screen opens with them as clickable cards. Picking one fills in the message, the rhythm, the send time and the booking link in a single click, and if the draft is the birthday kind it also switches the repeat to yearly and drops in the person's birth date.

You can change everything afterwards. The reminder keeps its own copy of whatever the draft gave it.

There is also a Write your own card if you want to start blank.

Who is this for?

Type two or more characters into the search box and it looks through everyone you can text. That includes people who have booked with you before. The results mark them "from a past booking", so for most existing patients you do not have to add anyone by hand.

If they are not there, the last row of the results offers to add them, or you can type a name and mobile number directly.

The form checks the number straight away. If it cannot read what you typed as a Philippine mobile, it refuses it on the spot with "Enter a Philippine mobile number, e.g. 0917 123 4567" instead of saving it and then silently never texting it. Both 0917 123 4567 and +63 917 123 4567 work, spaces and all.

If the person you pick is marked as opted out, the form tells you so on the spot and the reminder will not send.

What to send

What is this reminder for? is the title. It is for you, not the patient. "Braces adjustment", "Six-month cleaning", "Retainer check". It also fills the {title} placeholder if you use it.

Message is the text itself, capped at 480 characters. Below the box a live counter shows the length and the segment count as you type.

Booking link (optional) is a dropdown of your services. Pick one and {booking_url} in the message becomes a one-tap link to that service's booking page. Leave it on "No booking link" for a message that is not asking for a booking, like a birthday greeting.

When to send it

Starting on is the first send, and for a repeating reminder it is also the date every later occurrence is measured from. A repeating reminder may be anchored in the past, which is exactly what a birthday needs: put in the real birth date and the system works out this year's occurrence for itself. The form does refuse a one-off dated in the past, because it has nothing left to send.

Send at is a 24-hour time in your clinic's timezone.

Repeats every is a number from 1 to 99 beside a unit: days, weeks, months or years. The first option in the dropdown turns repeating off, for a message that goes once.

Stop after (optional) ends the series on a date, inclusive. Leave it blank and the reminder runs until you stop it. It must be on or after the start date.

Press Save reminder.

The message, and the six placeholders

Placeholders use single braces, not double:

Placeholder Becomes
{name}The person's name as saved on your people tab
{tenant_name}Your clinic's display name
{title}The reminder's own title
{date}The occurrence date, written like Sun, Mar 15
{booking_url}The booking page for the service you linked, or blank if none
{address}The linked service's address, falling back to your clinic address

A placeholder you spell wrong does not throw an error. It renders as nothing. Write {patient_name} instead of {name} and the text goes out reading "Hi , time for your braces adjustment", to a real patient, on schedule, forever. Nothing in the system flags it, because the system cannot tell a typo from a placeholder you have not invented yet.

So proof-read the placeholders on their own pass, separately from the sentence. They are the one part of the message that fails quietly.

About that segment counter

The counter divides the length by 160 and shows you the result. It does not know about encoding, and that is where it can mislead you.

A plain message gets 160 characters per segment. Put one emoji in it, or paste a curly apostrophe in from Word, and the whole message switches to a wider encoding where a segment holds 70 characters. A 150-character message that the counter calls one segment is then three. The counter still says one.

The fix is dull. Type your apostrophes into the box instead of pasting them in, and skip the emoji. Reminder SMS templates that actually arrive in the Philippines covers the character budget properly, including why a link costs more than you expect.

On that: {booking_url} expands to a full address, usually 40 to 60 characters depending on your clinic's username and the service name. Budget for it. It is why the samples below stay short.

Eight setups you can copy

Every one of these is the same four fields with different values.

What you are reminding about Repeats every Starting on Send at Booking link
Birthday greeting1 yearTheir birth date9:00No
Braces adjustment1 monthTheir next adjustment9:00Braces consultation
Retainer check3 monthsThree months after debond9:00Consultation
Cleaning recall6 monthsSix months after the last cleaning10:00Teeth cleaning
Post-extraction checkDoes not repeatThree days after the visit10:00No
Unfinished treatmentDoes not repeatThe date you want to ask10:00The relevant service
Aesthetic session spacing5 weeksTheir next session window11:00The treatment
Annual x-ray or whitening top-up1 yearA year after the last one9:00The service

Four of them written out, with the character count so you can see the headroom.

Birthday, 89 characters, no link:

Happy birthday, Ms Reyes! Wishing you a great year from all of us at Smile & Skin Clinic.

That message sells nothing, which is the point of a birthday greeting. Adding a booking link is how one stops being a greeting.

Braces adjustment, 78 characters plus the link:

Hi Mr Lim, time for your braces adjustment at Smile & Skin Clinic. Book here: {booking_url}

Cleaning recall, 94 characters plus the link:

Hi Ms Reyes, it's been six months since your last cleaning at Smile & Skin Clinic. Book here: {booking_url}

Post-extraction check, 142 characters, no link, set to send once:

Hi Mr Cruz, checking in after your extraction at Smile & Skin Clinic. If anything still hurts or the swelling is worse, call the clinic today.

Notice what that last one does not say. It never asks the patient to reply, because a reply has nowhere to go.

Drafts, and the thing about them that surprises people

A draft is a message and a rhythm you reuse. "Braces adjustment, every month." "Birthday greeting, every year." When you create a reminder from one, it fills everything except the person and the date.

You can add six ready-made drafts: Birthday greeting, Braces adjustment, Monthly check-up, Cleaning recall, Retainer check and Follow-up check. None of them is switched on for you. Press Add and from then on it is an ordinary row you own and can edit.

A reminder copies from a draft. It does not follow it. Fix a typo in the Braces adjustment draft today and the forty braces reminders you already created keep their old wording. New ones get the corrected text.

That is the right default. The alternative is one edit quietly rewriting live messages to forty patients. It does mean a real correction has to happen twice: once in the draft, so new reminders come out right, and once on each running reminder you want changed. If the wording is badly wrong across a lot of them, ask us to sort it out rather than clicking through forty screens.

One draft setting is worth calling out. Start date comes from offers "A date I pick" or "Their birthday". The birthday option fills the start date from the person's saved birth date and is only valid on a yearly rhythm, so the form refuses anything else with "A birthday reminder has to repeat yearly". For that to work, the birthday has to be on their record, which is the optional Birthday field on the people tab.

What happens after you save

Your reminder sits there until it comes due. A job runs every minute, collects whatever has come due, and sends it.

So a reminder set for 9:00 goes out within about a minute of nine, not at nine exactly. For a birthday greeting nobody will ever notice. Worth knowing anyway, because on some hosting plans the smallest interval available is five minutes, in which case sends land up to five minutes late.

Times are local and stay local. Your clinic's timezone decides what 9:00 means, and a reminder set to 9:00 stays at 9:00 for the patient regardless of anything shifting underneath it.

Monthly clamps at month ends, then comes back. Anchor a monthly reminder on the 31st and February lands on the 28th, then March returns to the 31st. Each occurrence is measured from your original start date rather than from the previous send, so the series cannot drift a day earlier every month.

A send more than three days late is skipped. If the job stops over a weekend, you do not want Monday to deliver Friday's braces reminder along with Saturday's and Sunday's. Past three days the system drops that occurrence and moves to the next one. That is the cautious choice, and the right one. A text that has gone out cannot be taken back.

Editing, pausing and sending now

Editing the wording does not restart the cycle. Change the message, the title, the booking link or the stop date and the schedule carries on exactly as it was. Change the start date, the rhythm or the interval and it re-seats itself from today, because those three are what define when the series falls.

Switch a monthly reminder to every two months and it does not rewind to the original start date and grind through the months in between. It picks up from now.

Send now fires the message immediately, out of band. It does not advance the schedule, so the next regular send still happens on its normal date. It is the closest thing to a test send. If SMS is off, the person is opted out, or their number is not textable, it tells you rather than pretending to have sent.

Pausing stops it. Resuming does not deliver a backlog: the schedule catches up to today first, then continues. Un-pause something that sat idle for six months and you get the next occurrence, not six.

Deleting cancels anything queued and keeps everything already sent in your history. Removing a person deletes their reminders the same way, and their sent messages stay.

When a reminder pauses itself

Some of these problems are about the person rather than the schedule. When one comes up, the reminder pauses itself and puts the reason in red on the list, instead of failing quietly every month for a year.

What you see What happened What to do
"Ms Reyes is opted out of SMS." That person has the do-not-text box ticked Untick it on the people tab if it was a mistake, otherwise delete the reminder
"Ms Reyes's number is not one we can text. Check it on the People tab." The saved number stopped resolving to a Philippine mobile Fix the number on their record, then resume
"The contact for this reminder no longer exists." The person was removed Delete the reminder, or re-add them and build it again

Fix the cause, then press Resume on the reminder. Saving an edit to it does the same thing: the error clears and it goes back to active.

Common mistakes

Writing a message that asks for a reply. On the patient's phone the message arrives from a short sender name, SmileSkin rather than a mobile number, and nothing they send back reaches you. "Reply YES to confirm" is a dead end for the patient and invisible to you. Ask them to call, or give them the booking link and let them tap it.

Anchoring forty recalls to the same date. Set every six-month cleaning recall to start today at 9:00 and in six months forty texts leave at once, forty people phone the clinic the same morning, and you have twelve slots. Automating dental patient recalls covers metering the queue to the chairs you actually have. The short version for this page: spread the start dates, and use the send time as a second lever.

Assuming "sent" means "delivered". The Sent tab shows what the gateway accepted. Philippine networks drop messages for reasons nobody reports back, particularly ones carrying links. Send a real test to a real handset on each network before you trust a template at volume.

Treating opt-out as automatic. There is no STOP keyword, because nothing comes back. Opt-out is a checkbox on the person's record, which means when a patient tells Jen at the desk to stop texting them, somebody has to tick it. Make that part of the routine, not an afterthought. It is also a good reason to keep the volume low enough that nobody wants to.

Reminding people who already booked. This page does not know your appointment book. A patient who books their cleaning in March still gets the September recall you set, which is fine. They also get the monthly braces nudge the week after their adjustment, which is not. Pause or re-date a reminder once a patient is back in a rhythm.

Letting a good message get long. Three segments cost three times what one does. The counter is right about length and blind about encoding, so keep messages short enough that the difference never comes up.

Where OtterFlow fits

Everything above is a description of a screen, which makes it sound like a job for you. It mostly is not.

We set this up with you: your services, the rhythms that match how you actually treat, the wording in the language your patients write in, the people already in your list. What the screen gives you is control afterwards, when a patient asks to be left alone or a braces case finishes early and you want that reminder to stop today rather than next month.

The recurring reminders sit alongside the rest of it. A patient gets the nudge, taps the booking link, lands on a page showing times that are genuinely open, and books. The confirmation goes out immediately, the appointment reminder goes out the day before, and the check-in follows the visit. That is one path, and the recurring reminder is what starts it for a patient who had nothing in your book at all.

Pricing is on the home page. Setup: ₱0. Then 4,975 a month, which includes an SMS allowance.

Questions clinics ask

Can I text someone who has never booked with us?

Yes. Add them on the people tab with a name and a mobile number. Booking history is a convenience, not a requirement.

Can one patient have several reminders?

Yes, and they run independently. A braces patient can have a monthly adjustment reminder and a yearly birthday greeting at the same time.

What if I change the message on a reminder that is already running?

It keeps running on the same dates and the next send uses the new wording. Nothing restarts.

Does a reminder need a booking link?

No. Leave it on "No booking link" and {booking_url} renders as nothing. A birthday greeting and an aftercare check are both better without one.

Do reminders use my SMS allowance?

Yes, the same allowance as your booking messages, counted per 160-character segment. A message with a booking link in it is usually still one segment if you keep the sentence short.

Can I see what actually went out?

The Sent tab, 50 most recent, with the full text of each one and the reason for any failure.

Start with the one you are already doing by hand

Do not build all eight. Pick the reminder somebody at your clinic is currently tracking on paper, usually braces adjustments or six-month cleanings, and set that one up for the patients on that page. Give it a month. You will learn more about the wording from four real sends than from an afternoon of drafting, and the rest will take ten minutes each once you know the shape.

If you would rather not do the first one alone, that is what the setup call is for. Bring the notebook.