How to Send Automated Birthday SMS to Your Customers

Put a birth date on each contact, put those contacts in a contact group, tick Enable Birthday Messaging on that group and choose an SMS template. The platform then texts each of them on their birthday at 08:00, and nobody has to remember the date.
That is how to send birthday SMS to customers, start to finish. What catches people out is the next part: the message can carry the customer’s name, but only through six exact placeholders, and anything else you type between the delimiters vanishes from the text that goes out with no error to warn you.
What do you need to set this up?
Three things. One of them stops the setup dead if it is missing.
A contact group
Birthday messaging is switched on per group, not per contact and not account-wide. Put the customers you want to reach into one group — your whole customer list, or a narrower group if the messages are only for certain people.
A birth date on each contact record
Only contacts whose record holds a birth date are picked up. You can set it on the contact record itself, or supply it in the contact-list file when you import.
Do you need the customer’s birth year?
No. The birth year does not have to be right, or there at all. Recipients are matched on month and day only, and the stored birth year is ignored.
That makes the field easier to ask for: a customer who would rather not give you their birth year can still give you the day and the month.
If you do not hold birth dates yet, collect them where the customer is already giving you details — the loyalty card sign-up, the booking form, the warranty slip, the moment a new account is opened. Ask for the day and month only, and say what you will use it for.
You do not need the whole list before you switch this on. A group with a hundred birth dates in it starts sending tomorrow, and the rest fill in as customers come through.
An SMS template with a sender ID
This is the blocker. A template used for birthday messaging must have a sender ID set, or the platform rejects it with a validation error — so a group cannot be saved against a template that has none. If you have not set one up yet, our guide to sending SMS under your company name shows you how to register a sender ID first.
Plan for the wait. A sender ID goes through a review before it can be used, so start it well ahead of any date you want the first birthday messages to go out on.
How do you turn on automated birthday SMS?
Six steps, and the order matters — step 6 will not save without step 2.
- Add a birth date to each contact, either on the contact record or in the contact-list file you import.
- Create the SMS template you want sent, and set its sender ID.
- Put those contacts into a contact group, if they are not in one already.
- Open that group and edit it — the birthday settings live in the group’s edit window.
- Tick Enable Birthday Messaging.
- Pick your birthday template from the template picker, then save.

From the next morning’s run onward, every contact in that group whose birth date falls on the day receives the template. That is the whole of it: automatic birthday text messages, running off the contact list you already keep.
Can the birthday message include the customer’s name?
Yes. The daily job renders your template once for each contact, so every recipient gets their own version rather than one shared message.
Which placeholders can you use in a birthday SMS?
You do that with placeholders: short tokens you type into the template body, wrapped in <% and %>. Exactly six are supported.
| Placeholder | What it puts into the message |
|---|---|
<%First Name%> | The contact’s first name |
<%Last Name%> | The contact’s last name |
<%User Name%> | The contact’s user name |
<%Company%> | The contact’s company |
<%Phone Number%> | The contact’s phone number |
<%Email Address%> | The contact’s email address |

Copy them exactly as they appear above, spelling and spacing included.
A template written like this:
Happy birthday <%First Name%>! We hope the day treats you well.
goes out to one contact as Happy birthday Ama! We hope the day treats you well. and to the next as Happy birthday Kofi! We hope the day treats you well. You write the template once and the platform builds every version of it, contact by contact, at send time.
For a birthday text you will mostly want <%First Name%>. <%Phone Number%> and <%Email Address%> are rarely worth merging into a birthday message, since the customer already has both.
Birthday SMS personalisation stops at those six fields. Merging contact fields into a message is a wider idea than birthdays, and our guide to personalising bulk SMS covers segmenting your list and writing campaign templates. Before you write your first template, though, there is one behaviour worth knowing about, and it is the subject of the next section: an empty field has no default to fall back on.
What happens if you use a placeholder that isn’t supported?
It disappears, and nothing tells you.
Anything between <% and %> that is not one of the six is replaced with an empty string, and the delimiters are stripped along with it. A field name you assumed exists, a token you have used in another tool, a small misspelling of one of the six — all three are handled the same way.
The message still sends. It goes out with a hole where you expected a word, and there is no error, no warning and no failed-send notice to catch it. The first person who sees the gap is your customer, on their birthday.
A supported placeholder does the same thing when the contact’s field is blank. <%First Name%> on a record with no first name substitutes as nothing.
The platform has no fallback value for a placeholder. You cannot set a stand-in word that fills the gap when a field is empty, so never write a template that leans on one. Everything the message needs in order to make sense has to sit in the fixed text.
There is a way to see the delivered message before a customer does, and it follows from the two rules above. Because a contact is matched on month and day, and because every contact in an enabled group with a birth date is included, a test contact sitting in this group is treated exactly like a customer.
Pick a number that is not already a contact in this group. The group holds your customer list, so your own number may already be in there — if it is, write down the birth date currently on that record before you change anything, or run the test on a second number instead.
Now add that number to the group and set its birth date to tomorrow’s day and month, or today’s if it is still before 08:00. Either way the test lands on the next 08:00 run, and what arrives is exactly what your customers will receive: placeholders resolved, sender ID and all.
Read that message rather than the template. Then put things back: delete the contact if you added a new one, or restore the original birth date if you changed a record that was already there.
Birthday texts are one of several sends that run without anyone opening the dashboard. See how scheduled and automated sending works on Arkesel’s SMS Platform.
What should a business birthday message say?
Write the template so it reads correctly whether or not the name arrives. That rule has a specific shape: keep punctuation away from the placeholder, and never let the meaning of a sentence depend on it.
Here is the difference in practice. This template:
Happy birthday, <%First Name%>! Enjoy your day.
delivers as Happy birthday, Ama! Enjoy your day. to a contact with a first name, and as Happy birthday, ! Enjoy your day. to one without. The comma does the damage, and every contact with a half-finished record gets that second version.
Move the placeholder off the punctuation and the worst case is one extra space, which nobody notices.
For a salon
Happy birthday <%First Name%>! Everyone at Adepa Beauty Studio is thinking of you today. Come in any time this week and your next treatment is on us.
For a pharmacy
Happy birthday <%First Name%>. Wishing you a healthy year ahead, from all of us at Nsawam Community Pharmacy.
For a supplier or wholesaler
Happy birthday <%First Name%>. From everyone at Kwame Motors, thank you for another year of working together.
Three habits make these hold up.
- Put the offer in the fixed text, never inside a placeholder, so the message still says something useful to a contact with a sparse record.
- Keep it to one screen, because the fixed text is carrying the message and the merged name is only the greeting.
- If you want
<%Company%>in a trade template, check the field is filled across the whole group first — a blank company leaves the same gap a blank name does.
What time does the birthday message go out?
Once a day, at 08:00. The scheduled job picks up every contact group that has birthday messaging switched on and sends to whoever has a birthday that day. That single run is the whole of the automated birthday SMS schedule.
Four things follow from it.
- Matching is on month and day, as above — the birth year never affects who gets a message.
- Blacklisted numbers are filtered out before the send, so a customer who has opted out of your messages will not receive a birthday text from you.
- Contacts with no birth date on file are skipped, so a part-filled group still works.
- The message goes out on the birthday itself — there is no setting to send it a fixed number of days ahead.
When should you use the API instead?
A birthday is a date already sitting on a contact record, which is why the platform can act on it without you writing a line of code. A checkbox is enough.
Events inside your own systems work the other way round. A payment landing, a cart left behind, a new sign-up — the platform cannot see any of those, so your system has to fire them at it. Our guide to event-triggered SMS campaigns covers that side.
The two fit together neatly: dates on the contact go through the group, events in your system go through the API. For the wider picture, our guide to SMS marketing in Ghana shows where recurring messages like these sit alongside your campaigns.
Start with one group
One contact group, one template with a sender ID, one tick box — and your automated birthday SMS takes care of itself from the next morning’s run. The two things worth checking twice before you save are the sender ID and the placeholder spelling. Everything else is forgiving.
Birthday messages draw on the same SMS credit as any other send; see SMS credit pricing for current rates, and our comparison of bulk SMS providers in Ghana for how that sits against the rest of the market.
Ready to set yours up? Create a free Arkesel account, build your first birthday group and let the platform handle the dates.





