You write a clean 158-character promo. It reads well, the offer is clear, the link is short. Then you drop in a 🎉 and let autocorrect swap a straight apostrophe for a curly one. Without any warning, your message stops being one text. It splits into three, costs three times as much to send, and lands in broken pieces on some phones. The copy was fine. The choices around it were not.
Learning how to write SMS for marketing is really two skills at once: writing words people act on, and writing inside the character, encoding, and consent limits that decide whether those words ever arrive whole. This guide covers both. You get a reusable message formula, the encoding math that quietly triples a bill, the compliance rules you cannot skip, and 20 copy-paste templates you can adapt today. It will not rank ten platforms for you, and it is not legal advice.
Part 1: What SMS Marketing Is, and the Three Message Types You'll Write
SMS marketing is the practice of sending promotional or informational text messages to people who have opted in to hear from you. That opt-in is the whole game: a text lands in the same inbox someone uses for family and their bank, so the bar for being welcome is high, and the cost of being annoying is a fast unsubscribe.
The most useful way to picture an SMS is not as a short email. It's an envelope with three walls. A character budget decides how much fits before the cost jumps. Explicit consent decides whether you're allowed to send at all. Carrier filtering decides whether the message is delivered or quietly dropped. What you can write is whatever survives inside all three walls at once.
Before you write a word, know which of the three message types you're sending, because each one changes the rules:
- Promotional: offers, launches, and re-engagement. Needs prior marketing consent and a visible opt-out on every send. For example, a 25%-off code with a shop link.
- Transactional: event-triggered and time-sensitive, like an order confirmation, shipping update, or one-time passcode. Consent is lighter because the person triggered it, and an opt-out usually isn't expected. For example, "Order #1234 confirmed, ships tomorrow."
- Conversational: a message that invites a reply and expects a back-and-forth. Standard marketing SMS is a one-way channel, so if you need real two-way threads, run them on a conversational channel such as WhatsApp rather than expecting inbound SMS replies to route anywhere.
Part 2: The Anatomy of a Marketing SMS That Converts
A marketing text that works almost always has the same four parts, in the same order. Treat them as a character budget, not just a checklist, because every part competes for the same 160 characters.
| Part | What it does | ~Chars | Example fragment |
|---|---|---|---|
| Brand / sender | Instant recognition and trust; also a compliance signal | 8-15 | Bloom Co: |
| Front-loaded value | The reason to care, visible in the preview before anyone taps | 40-70 | 24h only, 25% off your favorite denim |
| One CTA + short link | A single action and a short, trackable URL | 25-40 | Shop: blm.co/denim |
| Opt-out | Required on promotional sends | 18-22 | Reply STOP to opt out |
Put together, those parts become one clean, single-segment message of 91 characters, well inside one GSM-7 segment. Here's the worked example:
Bloom Co: 24h only, 25% off your favorite denim. Shop: blm.co/denim. Reply STOP to opt out.
Front-load the value, because most phones preview only the first 40 or so characters on the lock screen, and a greeting like "Hi there, hope you're well" wastes every one of them. Then commit to a single call to action, because a text is a one-tap moment; give someone two links and most will tap neither. The short link earns its place twice over: it saves characters and it lets you measure the click.
Part 3: Character Limits and Encoding, or What Silently Doubles Your Cost
This is the part most SMS copywriting advice skips, and it's the one that costs real money. A text isn't billed by the message; it's billed by the segment , and how many segments you use depends on which character encoding your message triggers.
| Encoding | When it kicks in | Single message | Per segment when concatenated |
|---|---|---|---|
| GSM-7 | Plain Latin letters, digits, and basic punctuation | 160 characters | 153 characters |
| Unicode (UCS-2) | Any emoji, curly quote, accented or special character | 70 characters | 67 characters |
| MMS | Images, or long text beyond SMS limits | ~1,600 characters + media | Billed as MMS, not per segment |
According to the GSM-7 and UCS-2 encoding standards (Twilio SMS character-limit documentation, 2026), a single stray Unicode character re-encodes the entire message, not just that one character. That is the trap. Add one 🔥 to a tidy 155-character promo and you don't lose a few characters; you drop from a 160-character budget to a 70-character budget, so the same text now needs three segments and bills at roughly three times the cost. On older handsets it can also arrive as separate broken messages.
A few habits keep you on the cheap side of that line. Write and check the encoding before you fall in love with the copy. Count the link against your budget and keep it short. Watch for curly quotes and em dashes that sneak in when you paste from a document, since both force Unicode. Remember that your sender ID and any personalization token spend characters too.
Catch it before you send: EngageLab's console shows real-time character statistics and an estimated price as you compose, so you can see a message flip from one segment to three before it ever reaches a carrier. If your delivery rate is the deeper problem, the mechanics of routing and carrier filtering are covered in SaaS SMS delivery rate optimization .
Part 4: 10 Rules for Writing SMS That Convert
The formula tells you what to include. These rules tell you how to make the words earn their place. None of them are long, because a text isn't the medium for nuance.
- One message, one goal. If a sentence doesn't push toward the single action, cut it. Two asks in one text usually means zero taps.
- Front-load the value. The offer or reason belongs in the first 40 characters, where it shows in the preview. The greeting can wait or disappear.
- Say who you are. Lead with your brand name. An unbranded text reads as spam and gets deleted before the offer is read.
- Write one clear CTA. Use an action verb and a short, trackable link: "Shop now," "Book," "Reply YES." Vague endings get vague results.
- Aim for the 75-115 character sweet spot. You have 160, but shorter messages read faster, stay single-segment, and respect the medium. Length is a cost, not a feature.
- Personalize beyond the first name. A name in front of a generic blast isn't personalization. Purchase history, location, or recent behavior is what makes a text feel one-to-one.
- Make urgency specific and real. "Ends tonight at 11pm" or "first 100 orders" beats "hurry, limited time." Manufactured urgency trains people to ignore you.
- Keep the tone human but on-brand. Match the voice of your email and site. A technical brand forcing chirpy exclamation points reads as someone else wrote it.
- Use emojis and caps sparingly. Beyond taste, one emoji can flip your encoding and triple your cost, and ALL CAPS reads as shouting and can trip spam filters.
- Respect frequency. Around one to three sends a week is a common guardrail. The real signal is your opt-out rate: when it climbs, you're texting too often or saying too little.
Part 5: Stay Compliant, from Consent to Opt-Out to Quiet Hours
Compliance isn't a legal appendix you bolt on at the end; it shapes what you're allowed to write and when you can send it. Get it wrong and carriers filter you or regulators fine you, and no amount of clever copy survives that. This section describes common US practice and is not legal advice, so check the rules that apply in your market.
- Get explicit opt-in first. Marketing texts require prior express consent. A checkbox at checkout or a text-to-join keyword works; a purchased list does not.
- Make every message identifiable and easy to leave. Include your brand and a clear opt-out, usually "Reply STOP to opt out," especially on the first and every promotional message.
- Respect quiet hours. The US TCPA restricts marketing messages to 8am-9pm in the recipient's local time zone, and several states are stricter, so schedule against the recipient's zone, not yours (FCC TCPA rules and CTIA messaging principles, 2026).
- Register for 10DLC. In the US, application-to-person traffic on standard long codes must be registered by brand and campaign regardless of volume; unregistered traffic gets heavily filtered (CTIA and The Campaign Registry, 2026).
Your sender identity is a compliance decision too, and it changes throughput and trust:
- 10DLC long code: a standard local number, registered for A2P. Good default for most businesses; moderate throughput.
- Toll-free: higher throughput than a long code, requires verification, works across US and Canada.
- Short code: a 5-6 digit number built for high-volume campaigns; fastest throughput, higher cost and longer approval.
- Alphanumeric sender ID: your brand name as the sender in many countries outside the US; display-only, so it can't receive replies.
Part 6: 20 Copy-Paste SMS Templates by Lifecycle Stage
Here are 20 templates you can copy and adapt, grouped by where the customer is in their journey. Replace anything in brackets, starting with [Brand] for your sender name, plus [Name] , [link] , and the rest. Keep them single-segment by avoiding emojis and curly quotes, and add your own opt-out on promotional sends. Every phone shows a sample brand, and the character count on it is what the message costs you at send time.
1 Grow Your List and Pre-Purchase
These earn the opt-in and warm someone up before they buy. The tone is welcoming, not pushy.
Welcome / opt-in confirmation. Send instantly after someone subscribes.
[Brand]: You're in. Thanks for subscribing. Here's 10% off your first order with code WELCOME10 at checkout. Shop: [link]. Reply STOP to opt out.
Text-to-join keyword. Use on signage, receipts, and social to build the list.
[Brand]: Reply JOIN for early access to drops and subscriber-only deals. Msg & data rates may apply. Reply STOP to cancel.
Event / webinar RSVP. Send when registration opens; one reminder before it starts.
[Brand]: Your seat for [Event] on [Date] is open. Save it here: [link]. We'll text one reminder before we start. Reply STOP to opt out.
Educational / content. Use to give value between offers so you're not only selling.
[Brand]: New guide: 5 ways to make denim last twice as long. Free, no sign-up: [link]. Reply STOP to opt out.
2 Promotions and Launches
The workhorses. Keep the offer in the first line and the urgency honest.
Discount code. Your everyday promo; personalize the code where you can.
[Brand]: Hi [Name], here's 25% off just for you. Use SAVE25 at checkout, ends Sunday. Shop now: [link]. Reply STOP to opt out.
Flash sale. Short window, single clear deadline, no code friction.
[Brand]: Flash sale, today only. 30% off everything until 11pm, no code needed: [link]. Reply STOP to opt out.
Buy one, get one. Name the category so the value is instant.
[Brand]: Buy one, get one free on all denim this weekend, in stores and online: [link]. Reply STOP to opt out.
New arrival / seasonal. Pair a launch with a reason to act now.
[Brand]: [Name], the new fall collection just dropped. First 100 orders get free shipping: [link]. Reply STOP to opt out.
Price drop. Trigger when an item a shopper viewed or saved gets cheaper.
[Brand]: Good news [Name], the jacket on your wishlist just dropped to $59. Grab it before it's gone: [link]. Reply STOP to opt out.
3 Order and Post-Purchase
These are transactional and expected, so they run on lighter consent and usually skip the opt-out line. They're also your highest open moments, so keep them useful, not salesy.
Order confirmation. Send the moment an order is placed.
[Brand]: Order #1234 confirmed, [Name]. Total $86. We'll text you when it ships. Track anytime: [link].
Shipping update. Send at dispatch, with a live tracking link.
[Brand]: Your order #1234 is on its way and arrives [Date]. Track it here: [link].
Pickup ready. Send when a click-and-collect order is ready.
[Brand]: [Name], your order is ready for pickup at [Store] until [Time]. Show this text at the counter: #1234.
Review request. Send a few days after delivery, with a small thank-you.
[Brand]: Hi [Name], how's your new denim? Leave a quick review and get 15% off next time: [link]. Reply STOP to opt out.
4 Retention and Win-Back
This is where SMS earns its keep, and where most brands stop writing. Every template below is triggered by a specific behavior, which is exactly why it converts.
Abandoned cart. Send 1-4 hours after a cart is left.
[Brand]: [Name], you left something in your cart. It's still here, but selling fast. Check out now: [link]. Reply STOP to opt out.
Back in stock. Trigger for shoppers who asked to be notified.
[Brand]: Good news, the item you wanted is back in stock. You asked us to tell you, so here it is: [link]. Reply STOP to opt out.
Replenishment reminder. Time it to when a consumable typically runs out.
[Brand]: Running low, [Name]? You bought [Product] about [X] weeks ago. Reorder in one tap: [link]. Reply STOP to opt out.
Win-back. Send after a defined lapse, such as 90 days with no order.
[Brand]: We miss you, [Name]. Here's 20% off to come back, good for 7 days. Use MISSYOU20: [link]. Reply STOP to opt out.
Birthday. Trigger from the birthday field you collected at opt-in.
[Brand]: Happy birthday, [Name]. Here's a gift: 25% off anything this week with code BDAY25: [link]. Reply STOP to opt out.
Referral. Send to happy customers after a positive order or review.
[Brand]: [Name], give $10, get $10. Share your link and your friend saves on their first order: [link]. Reply STOP to opt out.
VIP / loyalty early access. Reward your loyalty segment with a head start.
[Brand]: VIP early access, [Name]. Shop the sale 24 hours before everyone else, starts now: [link]. Reply STOP to opt out.
Part 7: Set Up, Send, and Measure Your First Campaign
Writing the message is one skill; getting it out the door and reading what it did is the rest of how to do SMS marketing. You can run every step below inside EngageLab SMS , an outbound SMS service with template and signature review, a console that shows your character count and price before you send, scheduled sending, and delivery-status callbacks. Here's the path from an empty account to a sent campaign you can learn from.
-
Step 1: Set up your sender and opt-in list
Goal: a trusted sender and a list that agreed to hear from you. Action: pick a long code, toll-free, or short code from Part 5, register for 10DLC in the US, then collect opt-ins through a text-to-join keyword, web form, or checkout box. Failure check: never buy a list, and don't skip 10DLC; unregistered traffic is filtered before anyone reads it.
-
Step 2: Create a signature and template in EngageLab
Goal: reusable, approved content. Action: in EngageLab, create a signature, then build a marketing template with variables for the parts that change, like name and code. Expected result: the signature and template clear review and are ready to send. Failure check: a template stuck in review usually has a missing signature or a link that needs allow-listing, so build that lead time into your schedule.
-
Step 3: Write it and watch the character count
Goal: a single-segment message at the price you planned. Action: write with the Part 2 formula, then read the real-time character statistics, segment count, and estimated price EngageLab's console shows as you compose. Failure check: if the count jumps to Unicode, hunt down the emoji or curly quote before you send, not after.
-
Step 4: Test, schedule, and send
Goal: proof it renders and lands. Action: send a test to your own phone, confirm the link and merge fields resolve, then schedule the send inside the recipient's quiet-hours window. Expected result: the message arrives whole, on one line, with a working link.
-
Step 5: Measure and improve
Goal: turn results into your next edit. Action: read delivery rate, click-through, conversion, and opt-out rate from EngageLab's delivery-status callbacks and console. Expected result: each number points at one layer of the writing to fix next.
Read those numbers as a diagnosis of your writing, not just a report card. A low delivery rate points at encoding or routing before it points at content. A weak click-through rate points at the offer or the CTA. A high opt-out rate points at frequency or relevance. Conversion tells you whether the value you promised matched the page you sent people to.
EngageLab SMS is built for this loop end to end: an outbound send-message API with delivery-status callbacks, templates and signatures with built-in review, the console character and price preview from Step 3, scheduled sending, and direct-carrier routing across 190+ countries with per-segment pricing. It fits teams that need one-to-many sending they can measure and keep compliant. For real two-way conversations, use a channel like WhatsApp; run SMS as one channel in a program that pairs it with email, push, and WhatsApp on one platform.
Create a template, watch the character count and price as you type, and test-send in minutes.
Before You Hit Send
The path holds no matter what you're selling. Fit the message inside the encoding envelope, build it with the four-part formula, clear it against the compliance checklist, adapt a template to the moment, then send, test, and read the numbers back into your next draft. Do that and your texts arrive whole, bill as one segment, and drive one clear action.
There's a simpler test for everything above. Before you schedule a campaign, read your own message on your own phone and ask whether you'd actually tap it. If the answer is no, the offer, the timing, or the words need another pass before your list ever sees them.
Free to start. See the character count, segment, and price before every send.







