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.

How to do SMS marketing: plan, write, send and measure

Summarize this article with an AI

Table of contents (16)

Key takeaways

  1. 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.
  2. 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.
  3. 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

StepDecisionMaison Brume example
1. GoalOne offer, one expected resultLaunch the Cedar & Fig candle to customers who already bought a candle
2. ConsentWho may receive the textCustomers subscribed to SMS marketing in Shopify
3. SegmentThe send listSMS subscribers who bought from the candle collection in the last 12 months
4. MessageText, link, length126 characters, one segment, UTM-tagged link
5. TimingDay and hourTuesday at 6 p.m. local time, two days before the release
6. TestWhat has to workLink, sender, segment count
7. MeasurementWhat countsOrders, 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).

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.

Shopify Help Center page on choosing the regions where the WhatsApp and SMS marketing checkboxes appear at checkout

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)
CampaignShopify filtersWhy
LaunchSMS subscribers who bought a product with the same tag (products_purchased)They already know the category
Private saleSMS subscribers with 3 orders or more (number_of_orders >= 3)The offer is exclusive, and says so
Win-backSMS subscribers with no recent order (last_order_date < -6m)They need a reason to come back
ExclusionCustomers 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

  1. The brand name first, even if your sender shows it: it is the first thing read in the notification.
  2. One offer and a deadline: "drops Thursday", "tonight at 7pm".
  3. A short link on your own domain, to the exact product or offer page, not the home page.
  4. 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.

Twilio documentation table of SMS character limits: 160 then 153 characters in GSM-7, 70 then 67 in UCS-2

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:

VersionTextCharactersEncodingSegments
BeforeMaison Brume: Mother’s Day is coming… 🎁 Treat her to a candle she’ll love! maisonbrume.com/mom95UCS-22
AfterMaison Brume: Mother's Day is May 9. Treat her to a candle she'll love: maisonbrume.com/mom Reply STOP to opt out113GSM-71

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:

MomentDateNote
Black FridayFriday, November 27, 2026The day after Thanksgiving
Cyber MondayMonday, November 30, 2026Last day of the weekend offers for many stores
Holiday shipping cutoffSet by your carriers and fulfillmentThe most useful text of December
Mother's DaySunday, May 9, 2027Second Sunday of May
Father's DaySunday, June 20, 2027Third 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

  1. Send the text to two or three phones on the team, on different carriers if you can: sender, line breaks, link.
  2. Tap the link: right page, product in stock, expected price, working discount code.
  3. Check the recipient count and the segments per message your tool reports.
  4. 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

The link in the text carries three UTM parameters:

maisonbrume.com/cedar?utm_source=kanal&utm_medium=sms&utm_campaign=cedar-fig-launch

The 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.

Google Analytics Help on the default channel group, with the rule for the SMS channel

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.

InputValue
Texts delivered (one segment each)3,200
Unique clicks256
Attributed orders within 7 days48
Attributed revenue$2,880
Opt-outs19
Gross margin60%
  • 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.

TypeTextCharacters
LaunchMaison Brume: our Cedar & Fig candle drops Thursday. Get it early, tonight at 7pm: maisonbrume.com/cedar Reply STOP to opt out126
Private saleMaison Brume: private sale for our regulars, 20% off sitewide until Sunday midnight. maisonbrume.com/vip Reply STOP to opt out126
Last callMaison Brume: last hours! The private sale ends tonight at midnight. maisonbrume.com/vip Reply STOP to opt out110
Black FridayMaison Brume: Black Friday starts now. Up to 40% off selected candles through Monday: maisonbrume.com/bf Reply STOP to opt out126
Back in stockMaison Brume: Black Amber is back in stock, in limited quantities. Grab yours: maisonbrume.com/amber Reply STOP to opt out122
Abandoned cartMaison Brume: your Cedar & Fig candle is still in your cart. It's saved until tonight: maisonbrume.com/cart Reply STOP to opt out129
LoyaltyMaison Brume: your 450 points are worth 15% off your next order. They expire 11/30: maisonbrume.com/account Reply STOP to opt out129
Customer anniversaryMaison Brume: one year ago you placed your first order. Thank you! Free shipping this week with code THANKS1YR: maisonbrume.com Reply STOP to opt out149
Win-backMaison Brume: it's been 6 months! Our winter scents are in, with free shipping until Sunday: maisonbrume.com/winter Reply STOP to opt out137
Shipping cutoffMaison Brume: order by 12/18 at noon to get your gifts in time for the holidays. maisonbrume.com/gifts Reply STOP to opt out124

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.

SMS with Kanal

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 marketing
Atelier NovaText message

Automated 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%

5/5 on the Shopify App Store (132 reviews)

Nicolas Provost
Nicolas ProvostWhatsApp Marketing & Shopify Expert at Kanal

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.

Frequently asked questions

How do I start SMS marketing for my online store?

Start with consent: add an SMS opt-in checkbox at checkout or a signup form that says which texts people will get, and keep a record of each opt-in. Register your brand and campaign for 10DLC if you text US numbers from a 10-digit long code. Then send one campaign to a small segment, with a 160-character text, a tagged link and opt-out instructions.

What should an SMS marketing message include?

Your brand name at the start, one offer with its deadline, a link to the exact product or offer page, and opt-out instructions such as Reply STOP to opt out. Keep it to 160 characters in the GSM-7 alphabet, so it is billed as a single segment.

What time can you send marketing texts?

The FCC rule bars telephone solicitations before 8 a.m. or after 9 p.m., local time at the called party's location. Some states set narrower windows, so schedule each campaign in the recipient's time zone and ask your counsel which state rules apply to your texts.

Why is my text message billed as two segments?

Either it is longer than 160 characters, or it contains a character outside the GSM-7 alphabet, such as a curly quote or an emoji, which switches the whole message to UCS-2 with a limit of 70 characters. Longer texts are split into segments of 153 characters (67 in UCS-2), and providers such as Twilio bill per segment.

How do I track sales from an SMS campaign in Shopify?

Add UTM parameters to the link in the text (utm_source, utm_medium=sms, utm_campaign), then open the Sales attributed to marketing or the Performance by marketing campaign report under Analytics > Reports, Marketing category. Shopify counts sales from external efforts that use UTM parameters.