The Sailup team · · 11 min read
10 SMS Call-to-Action Tips for Ghanaian Businesses (With Copy You Can Steal)
A good SMS call to action fits in one 160-character segment, leads with a real offer, asks for one action, and carries a deadline and an opt-out line. Ten tips with Ghana-set copy you can reuse.
A working SMS call to action does four things in one 160-character segment: it leads with the offer, asks for exactly one action, gives a deadline the reader can act on today, and says how to opt out. Everything else in the message is either supporting one of those four or wasting characters. Below are ten tips, each with a message set in Ghana that you can copy, and a table of five weak messages rewritten.
Every example is GSM-7 safe and fits in a single segment, so each costs one credit per recipient at Sailup's flat ₵0.02 rate. Swap 0XX XXX XXXX for a number you actually answer.
What a call to action has to do in an SMS
The reader has a small screen, a preview that shows the first line, and about four seconds of attention before deciding whether to read on or delete. The message also arrives under a name (your sender ID) rather than a face, so nothing in it can rely on charm.
That leaves the copy with one job: make the next step obvious. A call to action in SMS is not a slogan. It is the specific thing you want the reader to do, where, and by when. If a reader can't repeat those three things back after one glance, the message needs another pass.
Ten tips, each with a message you can reuse
1. Keep it to one segment
One segment is 160 GSM-7 characters. A message that runs to 161 characters costs two credits per recipient, for no extra effect. Write to the limit, then cut. If you want the mechanics, they are in SMS character limits in Ghana.
Kofi, GHS 20 off any phone repair at our Madina shop till 6pm today. Show this SMS at the counter. Opt out: text STOP to 0XX XXX XXXX
133 characters. Note the "GHS 20", not "₵20": the cedi sign is not in the GSM-7 alphabet, and one of them turns the whole message into Unicode, where a segment holds 70 characters.
2. Lead with the offer, not the greeting
"Dear valued customer, we hope this message finds you well" spends 57 characters saying nothing, and it is exactly what the preview shows. Put the offer in the first ten words. A name is fine if you have it; a pleasantry is not.
Braids at GHS 80 this Saturday only at Adwoa's Salon, Madina. Call 0XX XXX XXXX to book. Opt out: text STOP to 0XX XXX XXXX
123 characters. The offer, the place, the day and the action all fit before the phone number.
3. One action per message
"Visit our shop, follow us on Instagram, call for enquiries and check our website" is four calls to action, which is the same as none. Pick the one that moves sales for this campaign and leave the rest for another day.
Ama, our Tamale shop has fresh shea butter in stock. Come in today before 6pm and get 10% off. Opt out: text STOP to 0XX XXX XXXX
129 characters. One thing to do: come in.
4. Say exactly what to do
"Don't miss out" is not an instruction. "Show this SMS at the till", "call 0XX XXX XXXX" and "walk in to the Adum shop" are. Verbs that name a place or a number are what the reader acts on.
Kwame, buy 2 bags of rice at Nana's Provisions, Adum, today and get GHS 15 off. Show this SMS at the till. Opt out: text STOP to 0XX XXX XXXX
141 characters. Where to go, what to buy, what to do at the counter.
5. A deadline that fits the sending window
Promotional SMS in Ghana goes out between 8am and 7pm, Monday to Saturday. The window comes from the NCA's Unsolicited Electronic Communications Code and the NCA's consumer guidance, and every Ghanaian provider applies it to promotional traffic. So "midnight tonight" asks the reader to act in hours you can't send in, and "this Sunday only" advertises a day you can't message about. "Till 6pm today" or "till 6pm Saturday" is urgent and inside the window. The promotional vs transactional rules are in a separate post if you want the clauses.
Adwoa, 15% off all school shoes at Kofi Kids, Accra Mall, till 6pm today. Walk in and show this SMS. Opt out: text STOP to 0XX XXX XXXX
135 characters. Sent at 9am, that gives the reader a full working day.
6. Personalise with merge fields, then count with real names
A campaign sent to a saved contact list can use {{first_name}}, {{last_name}} and {{attributes.<key>}} for any custom column you imported, such as {{attributes.branch}}. Merge fields only work with a list audience; typed-in numbers have no contact to merge from, and the campaign form won't let you combine the two.
{{first_name}}, GHS 10 off lab tests at our {{attributes.branch}} clinic this week. Book on 0XX XXX XXXX. Opt out: text STOP to 0XX XXX XXXX
With "Nana Yaa" and "Kumasi" filled in, that is 119 characters. Count with your longest first name and your longest branch name, not the shortest, because the merged message is the one the carrier bills.
7. Let the sender ID do the branding
A registered sender ID puts your business name where the phone number would be, on MTN, Telecel and AirtelTigo alike. Once that is in place, the body doesn't need to say who you are. Compare tip 2's message sent from Adwoa Salon:
Braids GHS 80 this Saturday, Madina. Call 0XX XXX XXXX to book. Opt out: text STOP to 0XX XXX XXXX
98 characters, and the name is still there, above the message. Sender IDs are 3 to 11 characters, must be your own business name, and take 1 to 3 business days to approve. The rules, and the names that get rejected, are in SMS sender IDs in Ghana.
8. Use a real number
"Amazing savings" and "huge discounts" cost characters and earn nothing, because the reader can't act on them. "GHS 25 off every GHS 200" is a decision they can make in the shop. Percentages work when the reader knows the base price; cedi amounts work every time.
Efua, GHS 25 off every GHS 200 you spend at Yaw Fabrics, Makola, Mon to Sat this week. Show this SMS. Opt out: text STOP to 0XX XXX XXXX
136 characters.
9. A visible opt-out line, pointed at a channel you actually monitor
The NCA Code requires a free way to unsubscribe in every commercial message. The line has to be there, and it has to work. Here is the part that matters on Sailup: Sailup sends SMS but cannot receive it, and an alphanumeric sender ID can't be replied to anyway. So "Reply STOP" on its own goes nowhere. Point the instruction at a number or WhatsApp line your staff watch, and when a STOP comes in, open the contact in the Sailup dashboard (or call the API with opted_in: false) and mark them opted out. Campaigns sent to a list skip opted-out contacts from then on and count them under "Opted out" in the report; a number typed straight into a campaign bypasses that check, so only type numbers you have confirmed yourself.
Kwame, 2 for 1 on monthly gym passes at FitZone Osu till 6pm Saturday. Sign up at the front desk. Opt out: WhatsApp STOP to 0XX XXX XXXX
136 characters. Budget about 35 characters for the opt-out line in every promotional message and write the offer into the rest.
10. Test on your own phone, then send to a small list
Send the message to yourself and one colleague first from the dashboard (Messages, then Send message). Read it on a cheap Android and on an iPhone. Check that the segment counter in the send form says one (the campaign editor only counts characters), that the number is right, and that the deadline will still be true when you press send.
Then send it to a small list before the whole list: 100 or 200 contacts, ideally from one branch. Look at the delivery count and at how many people showed up or used the code. If the small send looks wrong, fix the copy and duplicate the campaign; a duplicate opens as a new draft.
Ama, use code OSU10 for GHS 10 off at Bliss Pharmacy, Osu, till 6pm today. Show it at the counter. Opt out: text STOP to 0XX XXX XXXX
133 characters. The code is what you count at the till.
Five rewrites, before and after
The weak versions are the kind of message most of us have received. Each rewrite fits one segment; the count is for the rewrite.
| Weak copy | Better copy | Characters |
|---|---|---|
| Hello valued customer, we are excited to announce amazing savings on all items in our store this weekend. Don't miss out! | Ama, GHS 20 off every dress at Efua's Boutique, Osu, Fri and Sat till 6pm. Walk in and show this SMS. Opt out: text STOP to 0XX XXX XXXX | 136 |
| Our new branch in Kumasi is now open. Visit us today for great deals and offers. Thank you for your continued patronage. | Kwame, our new Adum branch opens Saturday. First 50 customers get GHS 10 off. Come by 9am to 6pm. Opt out: text STOP to 0XX XXX XXXX | 132 |
| Flash sale! Rice ₵5 off per bag till midnight tonight at Nana's Provisions. | GHS 5 off every bag of rice at Nana's Provisions, Madina, till 6pm today. Show this SMS. Opt out: text STOP to 0XX XXX XXXX | 123 |
| Reminder: Term 2 fees are due. Please pay as soon as possible to avoid any inconvenience. Contact the school office for details. | Adwoa, Term 2 fees of GHS 850 for Kofi (JHS 2) are due Fri 18 Sep. Pay by MoMo to 0XX XXX XXXX, ref KOFI-JHS2, or at the office. | 128 |
| Get 50% off on selected items. T&Cs apply. Visit our website for more information www.example.com/promo/summer-sale-2026 | Yaw, half price on all sandals at Kojo Footwear, Tamale, till 6pm Saturday. Walk in, no code needed. Opt out: text STOP to 0XX XXX XXXX | 135 |
Three things to notice. The third weak message is only 75 characters, but the cedi sign makes it Unicode, so it bills as two segments; the rewrite bills as one. The fourth is a fee reminder, which is transactional (the child is enrolled, and the message is about that account), so it needs no opt-out line and can go out any day; what it was missing was the amount, the date and a way to pay. The first, second and fifth spend their opening words on the sender's feelings; the rewrites spend them on the reader's.
What not to do
- Links in OTPs. A one-time code should be a code and nothing else. A link next to a code teaches your customers that messages from you contain links to tap, which is exactly what someone impersonating you wants them to believe.
- ALL CAPS. It reads as shouting, it is harder to scan than sentence case, and it makes a registered sender ID look like a scam.
- Emoji. One emoji flips the message to Unicode: 70 characters per segment instead of 160, and most emoji count as two. A 120-character message with a single emoji bills as two segments.
- Links from public shorteners. Sailup has no link shortener and no click tracking, and we'd advise against public ones anyway: the reader can't see where the link goes, and an unfamiliar domain undoes the trust a registered sender ID earns. If a link is needed, use a short path on your own domain, and remember that the customer may be on a feature phone with no browser. A place, a number or a code usually does the job better.
Measuring without open rates
There is no dependable way to measure whether an SMS was opened, so we don't report one, and we'd treat any open-rate figure for SMS with suspicion. What you can measure:
- Delivery. The campaign report shows sent, delivered, failed and opted out, with a delivery rate that counts carrier-confirmed deliveries only. If delivered is low, the problem is the list, not the copy. SMS delivery reports explained covers the failure reasons.
- Calls and messages to your line. If the action was "call" or "WhatsApp", count what came in during the window. Sailup can't count this for you, because replies don't come to Sailup.
- Redemptions. A code (OSU10) or "show this SMS" gives the till a way to count. Use a different code per campaign and per branch and you have a comparison that costs nothing.
Sailup has no A/B testing feature. To compare two versions, split the audience into two lists in the dashboard, send one version to each with its own code, and compare redemptions. It's manual, and it works.
Write your next promotional message against the ten tips, send it to yourself, and check the segment count before it goes to a list. If you don't have an account yet, signing up is free, and you can register your sender ID while you write.
Frequently asked questions
How long should a promotional SMS be?
One segment: 160 characters if every character is in the GSM-7 alphabet, 70 if any character is not. Cedi signs, emoji, curly quotes and em-dashes all push a message onto the 70-character rule. Aim for 120 to 140 characters so there is room for a name from a merge field and an opt-out line, and check the segment counter before sending.
Can customers reply STOP to a message sent through Sailup?
No. Sailup sends SMS but cannot receive it, and an alphanumeric sender ID cannot be replied to. Put a phone number or WhatsApp line you monitor in the opt-out line instead, for example 'Opt out: text STOP to 0XX XXX XXXX'. When a request comes in, mark the contact opted out in the Sailup dashboard or through the API, and campaigns will leave them out.
What time of day can I send promotional SMS in Ghana?
Between 8am and 7pm, Monday to Saturday. The NCA's Unsolicited Electronic Communications Code sets the 8am to 7pm window and the NCA's consumer guidance adds that promotional messages should not be sent on Sundays. Transactional messages such as OTPs, receipts and reminders for something the customer booked are not bound by the window. Write deadlines to match: 'till 6pm today' rather than 'midnight'.
Should I put a link in a promotional SMS?
Only if the action needs one, and then on your own domain. Sailup has no link shortener or click tracking, and public shorteners hide the destination from the reader, which undermines a registered sender ID. Many recipients are on feature phones with no browser. A shop location, a phone number or a promo code is usually a better call to action, and it can be counted at the till.
How do I measure an SMS campaign without open rates?
There is no reliable way to measure SMS opens, so count what can be counted. The Sailup campaign report gives sent, delivered, failed and opted out. Count calls or WhatsApp messages to the number in the message during the offer window, and count redemptions of a code that is unique to the campaign. To compare two versions, send each to a separate list with its own code.
Do I need an opt-out line in every SMS?
In every promotional message, yes. The NCA Code requires a free means to unsubscribe in all commercial messages, and the Data Protection Act expects consent that can be withdrawn. A transactional message that the customer's own action triggered, such as an order update, a fee reminder or a one-time code, does not need one, which frees around 35 characters for the content.
Send your first SMS in five minutes.
No setup fees, no contracts — pay only for what you send, and volume discounts when you scale.