How to do SMS marketing: plan, write, send and measure
How to do SMS marketing for an online store: consent, 10DLC, quiet hours, a segment, a 160-character text, UTM tracking and 10 example campaign texts.

Table of contents (16)
- SMS marketing in seven steps
- Step 1: one goal, one offer
- Step 2: get consent and register
- Step 3: build the segment
- Step 4: write the text
- The anatomy of a campaign text
- 160 characters, or 70
- The cost, in one line
- Step 5: pick the day and time
- Step 6: test, send and handle replies
- Step 7: measure the campaign
- Tag the link
- The metrics, on Maison Brume's example
- 10 SMS marketing campaign examples
- Run the campaign with Kanal
- The short version
Key takeaways
- SMS marketing for a store runs in seven steps: one goal, consented recipients, a segment, a text of 160 characters or fewer, a send inside quiet hours, a test and a measurement in orders and opt-outs.
- One curly apostrophe or emoji switches a text to UCS-2 encoding: 70 characters instead of 160, so the same message can be billed as two segments instead of one.
- Tag the link with utm_medium=sms and read the Sales attributed to marketing report in Shopify, so the campaign is judged on orders and opt-outs, not on texts sent.
To do SMS marketing for an online store, run each campaign through seven steps: one goal, recipients who gave consent, a segment, a text of 160 characters or fewer (brand name, offer, deadline, link, "Reply STOP to opt out"), a send between 8 a.m. and 9 p.m. in the recipient's time zone, a test on your own phones, and a measurement in orders and opt-outs. In the US, register your brand and campaign for 10DLC before the first text from a 10-digit number. Most mistakes come down to two things: who you text, and how many characters you send.
This guide walks through one campaign for Maison Brume, a fictional candle brand, then gives 10 example texts. The rules come from the FCC's TCPA rule, CTIA's guidelines and the documentation of Shopify, Twilio and Google, read on October 24, 2026. If you are looking for the tool to write and send your own, Kanal's SMS campaigns page shows the editor and its live character counter.
SMS marketing in seven steps
| Step | Decision | Maison Brume example |
|---|---|---|
| 1. Goal | One offer, one expected result | Launch the Cedar & Fig candle to customers who already bought a candle |
| 2. Consent | Who may receive the text | Customers subscribed to SMS marketing in Shopify |
| 3. Segment | The send list | SMS subscribers who bought from the candle collection in the last 12 months |
| 4. Message | Text, link, length | 126 characters, one segment, UTM-tagged link |
| 5. Timing | Day and hour | Tuesday at 6 p.m. local time, two days before the release |
| 6. Test | What has to work | Link, sender, segment count |
| 7. Measurement | What counts | Orders, revenue and opt-outs over 7 days |
Step 1: one goal, one offer
A text carries one idea. The format decides it: 160 characters leave room for a brand name, one sentence, a link and the opt-out line, not for three promotions.
Write the goal in one line before you touch the copy. For Maison Brume: "sell the new candle to people who already love our candles, before it reaches the newsletter." That sentence sets the segment (candle buyers), the offer (early access, no discount) and the metric (orders of the launched product).
Step 2: get consent and register
This is the step that decides whether the campaign is lawful.
The federal rule. The FCC's rule implementing the Telephone Consumer Protection Act, 47 CFR 64.1200, requires "prior express written consent" for telemarketing sent with an automatic telephone dialing system. It defines that consent as a written agreement, signed by the person, that clearly authorizes the seller to send advertisements or telemarketing messages to a given number. Whether your sending setup falls under those provisions is a question for your counsel; the safe practice is the same either way: a clear, recorded opt-in for every marketing text.
The carriers' guidelines. CTIA's Messaging Principles and Best Practices ask senders to show a call-to-action that tells people what program they join, which number texts them, who is sending, any fees, and how to opt out. For recurring campaigns, CTIA asks for a confirmation text before any other message, with the program name, a help contact, opt-out instructions, the message frequency and any fees:
Maison Brume: you're in! Up to 4 marketing texts a month. Msg & data rates may apply. Reply HELP for help, STOP to opt out.
CTIA also asks senders to keep a record of each opt-in (timestamp, where it was collected, what the shopper saw, phone number), to apply an opt-in only to the campaign it was given for, and never to use rented, sold or shared lists. Our guide to SMS opt-in and consent covers the records and the state rules in detail.
In Shopify. In Settings > Checkout, Marketing opt-in section, select Checkout only in the SMS drop-down to add a signup checkbox. The Shopify Help Center notes that the preference is saved only when the customer submits the checkout, and that you need to change the text next to the checkbox if your store sends abandoned cart reminders. The same section can show a WhatsApp checkbox instead of the SMS one, by region.

Source: Shopify Help Center, Collecting customer contact information, read on October 24, 2026. In 1, the setting that shows WhatsApp instead of SMS by region; in 2, the SMS column covers every other region.
10DLC. If you text US numbers from a 10-digit long code, US carriers expect your brand and your campaign to be registered first. Our 10DLC registration guide covers the steps, the fees and the timelines.
Step 3: build the segment
Start from subscribers. In Shopify's customer segment filters, sms_subscription_status = 'SUBSCRIBED' includes customers subscribed to your marketing texts. Combine it with a purchase or date filter. Maison Brume's launch segment, with a candle product tag:
sms_subscription_status = 'SUBSCRIBED' AND products_purchased MATCHES (tag = 'candle', date >= -12m)| Campaign | Shopify filters | Why |
|---|---|---|
| Launch | SMS subscribers who bought a product with the same tag (products_purchased) | They already know the category |
| Private sale | SMS subscribers with 3 orders or more (number_of_orders >= 3) | The offer is exclusive, and says so |
| Win-back | SMS subscribers with no recent order (last_order_date < -6m) | They need a reason to come back |
| Exclusion | Customers who ordered in the last 7 days (last_order_date >= -7d) | No discount right after a full-price order |
A launch sent to a few hundred buyers of the category often beats a send to the whole list, which pays for texts to people the offer does not concern.
Step 4: write the text
The anatomy of a campaign text
Maison Brume's launch text:
Maison Brume: our Cedar & Fig candle drops Thursday. Get it early, tonight at 7pm: maisonbrume.com/cedar Reply STOP to opt out
- The brand name first, even if your sender shows it: it is the first thing read in the notification.
- One offer and a deadline: "drops Thursday", "tonight at 7pm".
- A short link on your own domain, to the exact product or offer page, not the home page.
- Opt-out instructions: CTIA asks senders to use the standard STOP wording.
160 characters, or 70
Twilio's documentation on SMS character limits sets out the numbers. A GSM-7 text holds 160 characters in one segment; longer texts are split into segments of 153 characters. A single character outside GSM-7, such as an emoji or a curly quotation mark that your text editor inserted, switches the whole message to UCS-2: 70 characters in one segment, then 67 per segment. Toll-free multi-segment texts to the US or Canada carry 152 characters per segment in GSM-7 and 66 in UCS-2. Twilio bills SMS per segment.

Source: Twilio Docs, How long can a message be?, read on October 24, 2026. In 1, GSM-7: 160 characters in one segment, then 153 per segment; in 2, UCS-2: 70, then 67.
The same message, before and after:
| Version | Text | Characters | Encoding | Segments |
|---|---|---|---|---|
| Before | Maison Brume: Mother’s Day is coming… 🎁 Treat her to a candle she’ll love! maisonbrume.com/mom | 95 | UCS-2 | 2 |
| After | Maison Brume: Mother's Day is May 9. Treat her to a candle she'll love: maisonbrume.com/mom Reply STOP to opt out | 113 | GSM-7 | 1 |
The first version looks short, but the curly apostrophes, the ellipsis and the emoji push it to UCS-2, and 95 characters is over the 70 that fit in one UCS-2 segment. The fixed version adds the opt-out line and costs half as much.
The cost, in one line
Cost of a send = price per segment × recipients × segments per message. The price depends on your provider, the number type and the carrier fees; the number of segments depends on you. Our guide to SMS marketing pricing breaks down US per-message prices, carrier fees and 10DLC fees.
Step 5: pick the day and time
The FCC rule bars telephone solicitations to residential subscribers before 8 a.m. or after 9 p.m., local time at the called party's location (47 CFR 64.1200(c)(1)), and state laws can add their own limits. Schedule each campaign in the recipient's time zone, not yours, and hold sends that would land outside the window until morning.
Inside the window, send when the offer is useful: the morning a sale opens, a few hours before it ends, the evening for a product people choose at leisure. The dates that come back in a US store's calendar:
| Moment | Date | Note |
|---|---|---|
| Black Friday | Friday, November 27, 2026 | The day after Thanksgiving |
| Cyber Monday | Monday, November 30, 2026 | Last day of the weekend offers for many stores |
| Holiday shipping cutoff | Set by your carriers and fulfillment | The most useful text of December |
| Mother's Day | Sunday, May 9, 2027 | Second Sunday of May |
| Father's Day | Sunday, June 20, 2027 | Third Sunday of June |
No federal rule caps how often you text; the opt-out rate of each send tells you when the cadence is too high.
Step 6: test, send and handle replies
- Send the text to two or three phones on the team, on different carriers if you can: sender, line breaks, link.
- Tap the link: right page, product in stock, expected price, working discount code.
- Check the recipient count and the segments per message your tool reports.
- Schedule the send and tell your support team about the offer.
Then handle the replies. Under the FCC rule, a reply of stop, quit, end, revoke, opt out, cancel or unsubscribe revokes consent, and so does any reply a reasonable person would read as a request to stop. Revocations must be honored within a reasonable time not exceeding ten business days. One confirmation text is allowed if it only confirms the request; sent within five minutes, it is presumed to fall within the prior consent.
Step 7: measure the campaign
Tag the link
The link in the text carries three UTM parameters:
maisonbrume.com/cedar?utm_source=kanal&utm_medium=sms&utm_campaign=cedar-fig-launchThe utm_medium=sms value matters. In Google Analytics, the default channel group puts traffic in the SMS channel when the source or the medium exactly matches "sms". A label like "text" would land elsewhere.

Source: Google Analytics Help, Default channel group, read on October 24, 2026. In 1, the SMS channel rule: source or medium exactly matches sms.
In Shopify, the marketing reports sit under Analytics > Reports, Category filter, Marketing. Sales attributed to marketing counts sales from marketing efforts, including externally managed ones that use UTM parameters, and Performance by marketing campaign groups results by campaign. Shopify also lists a shortened URL among the reasons a visit's referrer can be unknown: keep the UTM parameters in the destination address.
The metrics, on Maison Brume's example
The numbers below are made up. They show the math.
| Input | Value |
|---|---|
| Texts delivered (one segment each) | 3,200 |
| Unique clicks | 256 |
| Attributed orders within 7 days | 48 |
| Attributed revenue | $2,880 |
| Opt-outs | 19 |
| Gross margin | 60% |
- Click rate = unique clicks ÷ texts delivered = 256 ÷ 3,200 = 8%
- Conversion rate = orders ÷ texts delivered = 48 ÷ 3,200 = 1.5%
- Revenue per text = $2,880 ÷ 3,200 = $0.90
- Opt-out rate = opt-outs ÷ texts delivered = 19 ÷ 3,200 = 0.6%
- Attributed gross margin = $2,880 × 0.60 = $1,728
The send costs 3,200 × 1 segment × your price per segment, plus any carrier fees. The campaign covers its cost as long as the all-in price stays under $1,728 ÷ 3,200 = $0.54 per text. Written as two segments, it would have cost twice as much for the same result.
Two limits. Some buyers would have ordered without the text: only a holdout group, picked at random and left out of the send, shows the orders you actually gained. And a send that sells well but drives many opt-outs shrinks every campaign after it.
10 SMS marketing campaign examples
All fit in one GSM-7 segment and carry the opt-out line. Count again with your own links: a longer address can push a text into a second segment. Our list of SMS marketing examples has 20 more texts by type.
| Type | Text | Characters |
|---|---|---|
| Launch | Maison Brume: our Cedar & Fig candle drops Thursday. Get it early, tonight at 7pm: maisonbrume.com/cedar Reply STOP to opt out | 126 |
| Private sale | Maison Brume: private sale for our regulars, 20% off sitewide until Sunday midnight. maisonbrume.com/vip Reply STOP to opt out | 126 |
| Last call | Maison Brume: last hours! The private sale ends tonight at midnight. maisonbrume.com/vip Reply STOP to opt out | 110 |
| Black Friday | Maison Brume: Black Friday starts now. Up to 40% off selected candles through Monday: maisonbrume.com/bf Reply STOP to opt out | 126 |
| Back in stock | Maison Brume: Black Amber is back in stock, in limited quantities. Grab yours: maisonbrume.com/amber Reply STOP to opt out | 122 |
| Abandoned cart | Maison Brume: your Cedar & Fig candle is still in your cart. It's saved until tonight: maisonbrume.com/cart Reply STOP to opt out | 129 |
| Loyalty | Maison Brume: your 450 points are worth 15% off your next order. They expire 11/30: maisonbrume.com/account Reply STOP to opt out | 129 |
| Customer anniversary | Maison Brume: one year ago you placed your first order. Thank you! Free shipping this week with code THANKS1YR: maisonbrume.com Reply STOP to opt out | 149 |
| Win-back | Maison Brume: it's been 6 months! Our winter scents are in, with free shipping until Sunday: maisonbrume.com/winter Reply STOP to opt out | 137 |
| Shipping cutoff | Maison Brume: order by 12/18 at noon to get your gifts in time for the holidays. maisonbrume.com/gifts Reply STOP to opt out | 124 |
The abandoned cart and back-in-stock texts work best as automations, triggered by the event, and the cart text goes only to people who opted in to your texts. The loyalty text assumes a points program you already run.
Run the campaign with Kanal
Kanal is an SMS marketing platform for Shopify stores that also sends WhatsApp and RCS messages from the same app. For a campaign like Maison Brume's:
- The send list is a store segment (loyal customers, first-time buyers, people who have not ordered in two months), with no file to import or clean.
- Opt-ins and opt-outs sit on each customer's profile: you send to the people who said yes, and an opt-out stays recorded.
- Orders and revenue are attributed to each SMS campaign.
- Automated texts complete the campaigns: abandoned carts, shipping updates, back-in-stock alerts and post-purchase offers.
SMS is included from the Scale plan, at €149 a month; messages are billed on top, by destination country and number of segments. The pricing page lists what each plan includes.
WhatsApp campaigns go out from the same app, to the same segments, and you pick the channel campaign by campaign. For US shoppers, SMS stays the marketing channel: Meta's page on per-user marketing limits says WhatsApp does not currently deliver marketing template messages to users with US phone numbers. For customers elsewhere, WhatsApp adds images, buttons and replies, with its own opt-in collected through the site widget, popups, QR codes, WhatsApp links with a prefilled message, an opt-in step in an automation or an import with consent.
More than 500 brands use Kanal, rated 5/5 on the Shopify App Store and set up in 5 minutes. Plans start at €89 a month, and brands on Kanal see open rates above 90% on WhatsApp. For the wider picture of transactional and promotional texts, see our business SMS guide for ecommerce.
The short version
- Goal: one campaign, one offer, one deadline.
- Recipients: people who opted in, with a record of each opt-in, and 10DLC registration for US long codes.
- Text: brand name, offer, link, "Reply STOP to opt out", in 160 GSM-7 characters.
- Timing: between 8 a.m. and 9 p.m. in the recipient's time zone, or narrower where state law requires it.
- Measurement: a link tagged
utm_medium=sms, then orders, revenue and opt-outs.
To plan your first SMS campaign on your own Shopify data, book a demo: we build the segment and the text with you.
See Kanal's SMS on your own store
- Bulk SMS campaigns to your customer segments
- Automated texts on every store event, cart reminders included
- The revenue of each send, next to your WhatsApp campaigns
Available from the Scale plan
See Kanal's SMS marketingAutomated SMSYesterday, 6:40 PM
Atelier Nova: your cart is waiting, Sarah. Finish your order here: atelier-nova.com/cartReply STOP to opt out.
- brands
- 500+
- to set up
- 5 min
- open rate on WhatsApp
- +90%

Nicolas helps e-commerce brands grow revenue with WhatsApp marketing. With deep expertise in Shopify ecosystems and conversational commerce, he shares proven strategies for abandoned cart recovery, broadcast campaigns, and AI-powered customer engagement.


