Skills · Coding

SMS Marketing

Unverified25/40

When the user wants to plan, build, or optimize SMS or MMS marketing — including welcome flows, abandoned cart texts, post-purchase, win-back, promotional sends, or transactional/auth SMS. Also use when the user mentions "SMS marketing," "text message campaign

Originally by coreyhaines31 · MIT

Claude CodePartialHas SKILL.md but declares no allowed-tools — Claude Code will ask for permission each time
CursorPartialPlain prose you can paste in — but no Cursor rules file
CodexPartialPlain prose you can paste in — but no AGENTS.md
Gemini CLIPartialPlain prose you can paste in
CopilotPartialPlain prose you can paste in — but no Copilot instructions file
npx agentalley add sms

This command does not work yet — the CLI is still being built. Until then, use Raw in the reader below to take the file.

Who is stuck, and on what

When the user wants to plan, build, or optimize SMS or MMS marketing — including welcome flows, abandoned cart texts, post-purchase, win-back, promotional sends, or transactional/auth SMS. Also use when the user mentions "SMS marketing," "text message campaign

The whole source

No sign-in, no blur, nothing truncated
sms/SKILL.md339 lines16.4 KBRawView on GitHub
Frontmatter — 3 properties
namesms
descriptionWhen the user wants to plan, build, or optimize SMS or MMS marketing — including welcome flows, abandoned cart texts, post-purchase, win-back, promotional sends, or transactional/auth SMS. Also use when the user mentions "SMS marketing," "text message campaigns," "SMS sequence," "SMS automation," "abandoned cart text," "post-purchase SMS," "Klaviyo SMS," "Postscript," "Attentive," "Twilio," "A2P 10DLC," "TCPA," "SMS compliance," "short code," "toll-free SMS," "MMS campaign," "should I do SMS," or "SMS vs email." For email sequences, see emails. For SMS copy framing, see copywriting. For opt-in popups that capture phone numbers, see popups.
metadata version: 1.0.0
1---
2name: sms
3description: When the user wants to plan, build, or optimize SMS or MMS marketing — including welcome flows, abandoned cart texts, post-purchase, win-back, promotional sends, or transactional/auth SMS. Also use when the user mentions "SMS marketing," "text message campaigns," "SMS sequence," "SMS automation," "abandoned cart text," "post-purchase SMS," "Klaviyo SMS," "Postscript," "Attentive," "Twilio," "A2P 10DLC," "TCPA," "SMS compliance," "short code," "toll-free SMS," "MMS campaign," "should I do SMS," or "SMS vs email." For email sequences, see emails. For SMS copy framing, see copywriting. For opt-in popups that capture phone numbers, see popups.B1Line is 660 characters — unreadable by eye
4metadata:
5 version: 1.0.0
6---A5No allowed-tools declared — no way to tell what this skill may touch
7 
8# SMS Marketing
9 
10You are an expert in SMS and MMS marketing for direct-to-consumer brands, mobile apps, and SaaS products with high-engagement use cases. Your goal is to help plan, build, and optimize SMS programs that drive measurable revenue or activation while staying fully compliant with TCPA and carrier rules.
11 
12## Before Starting
13 
14**Check for product marketing context first:**
15If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
16 
17Gather this context (ask if not provided):
18 
19### 1. Business Type
20- B2C ecom / DTC, B2B SaaS, mobile app, services, fintech
21- Order volume or list size (SMS economics depend on scale)
22- Geographic mix (US, EU, both — compliance differs dramatically)
23 
24### 2. Current State
25- Existing SMS program (platform, list size, opt-in rate, opt-out rate, revenue/send)
26- Email program (SMS works best as a layer on top, not a replacement)
27- Phone number type: short code, toll-free, long code (10DLC)
28 
29### 3. Compliance Posture
30- US: A2P 10DLC registration complete? (Required since 2022 — without it, your messages get filtered)
31- Opt-in mechanism in use? (Checkbox, keyword opt-in, double opt-in)
32- Privacy policy + terms include SMS disclosures?
33 
34### 4. Goal
35- Drive revenue (promotional, cart recovery, post-purchase)
36- Drive activation (welcome, onboarding, milestone nudges)
37- Transactional (order updates, auth codes, alerts)
38 
39---
40 
41## When SMS Beats Email
42 
43SMS is not "another email." Use it where the channel's properties win:
44 
45| Use Case | SMS or Email? | Why |
46|----------|---------------|-----|
47| Abandoned cart recovery | **SMS first** | 98% open rate within 3 min vs 20% for email in 24h |
48| Order/shipping updates | **SMS** | Customers want it now, on their phone |
49| Flash sale / limited drop | **SMS** | Urgency channel; immediate read |
50| Auth codes / 2FA | **SMS** (or app) | Latency-sensitive, must arrive in seconds |
51| Welcome series | **Email primary, SMS layer** | Email carries the long-form content |
52| Educational nurture | **Email** | Too much text for SMS, costs add up |
53| Newsletter | **Email** | Wrong channel for SMS |
54| Win-back lapsed customers | **Both** | SMS for the strong nudge, email for the offer detail |
55| Post-purchase upsell | **SMS** | High open rate, ride the purchase momentum |
56 
57**General rule**: SMS earns the right to interrupt because of opt-in. Use it for messages that genuinely benefit from immediacy. If it could wait 24 hours, send it via email.
58 
59---
60 
61## Compliance — Read First
62 
63**Compliance is the foundation, not an afterthought.** A single TCPA class-action settlement runs $5M–$40M. The basics:
64 
65### US — TCPA (Telephone Consumer Protection Act)
66 
671. **Express written consent** required for marketing SMS. Implied consent doesn't count.
682. **Clear disclosure at opt-in** must include: program name, frequency expectation ("up to 4 msgs/month"), STOP/HELP instructions, "Msg & data rates may apply," link to terms.
693. **Honor STOP/UNSUBSCRIBE within seconds**, every time, no exceptions, on every keyword variant (STOP, END, CANCEL, UNSUBSCRIBE, QUIT).
704. **Honor HELP** with a response containing brand name + STOP info + support contact.
715. **Quiet hours**: no marketing sends before 8am or after 9pm in the recipient's local time. Carrier rules and state laws (e.g., Florida, Oklahoma, Washington) are stricter than federal — default to 9am–8pm recipient-local.
726. **Keep written consent records** with timestamp, opt-in source, and exact disclosure text shown. Auditable.
73 
74### US — A2P 10DLC Registration (required since 2022)
75 
76Application-to-Person 10-digit long codes must be registered through The Campaign Registry (TCR) via your SMS platform. Without registration:
77- Throughput is throttled (or zero)
78- Carriers filter your messages
79- You'll see "delivered" status but recipients won't get them
80 
81**Registration covers**: brand identity verification, campaign use case (marketing, account notification, OTP, etc.), sample messages, opt-in mechanism, opt-out language. Sample message text from registration must match what you actually send.
82 
83### EU/UK — GDPR-derived consent
84 
85- Explicit opt-in required (no pre-checked boxes)
86- Right to withdraw consent must be as easy as giving it
87- Data subject access requests apply to SMS records
88- ePrivacy Directive layered on top of GDPR
89 
90### Canada — CASL
91 
92- Express consent + sender identification + unsubscribe in every message
93- Implied consent allowed for existing business relationships within 24 months
94- Penalties up to CAD $10M per violation
95 
96**For full compliance details, edge cases, opt-in copy templates, and STOP/HELP response templates**: see [references/compliance.md](references/compliance.md).
97 
98---
99 
100## Phone Number Types (US)
101 
102| Type | Throughput | Cost | Use Case | Trust |
103|------|-----------|------|----------|-------|
104| **Short code (5-6 digit)** | 100+ msg/sec | $500–$1,000/mo + setup | High-volume marketing | Highest (carrier-vetted) |
105| **Toll-free (1-8XX)** | ~3 msg/sec | $10–$30/mo | Mid-volume, B2C support | Medium-high (carrier-verified) |
106| **10DLC (regular long code)** | 1–250 msg/sec | $2–$10/mo | SMB, conversational, transactional | Medium (requires A2P 10DLC reg) |
107 
108**Rule of thumb**: list <10K = 10DLC. List 10K–100K = toll-free. List 100K+ = short code.
109 
110---
111 
112## Core Principles
113 
114### 1. Every send has a real cost
115SMS isn't free. At $0.0075–$0.04 per send + carrier fees, a 100K send costs $750–$4,000. This forces relevance — you can't "blast." Segment hard.
116 
117### 2. Opt-in is your most valuable asset
118Opt-in rate from email → SMS is typically 5–25%. A high-quality SMS list of 10K beats a low-quality list of 100K. Optimize opt-in quality, not volume.
119 
120### 3. Each message must justify itself
121The recipient gave you their phone number. Every send should pass: "would I be glad I got this text?" If no, don't send.
122 
123### 4. Brevity + clarity
124160 GSM-7 characters = 1 SMS segment. 161+ chars = 2 segments (you're billed for 2). Emojis force UCS-2 encoding (70 chars per segment). Plan for segment count.
125 
126### 5. One CTA, one link
127Short links are mandatory (`klvy.co`, `txt.attn.tv`, branded short domain). Track UTM params on every link.
128 
129### 6. Sender identity, every send
130"From [Brand]:" or branded short code at the start of every message. Even on automated flows. Recipients can't see "from" address — they need it inline.
131 
132---
133 
134## SMS Sequence Types
135 
136### Welcome / Opt-In Confirmation (immediate)
137 
138Send 1: Confirmation + reward (immediate)
139> From Acme: Thanks for joining! Here's 10% off: ACME10. Use at checkout: acme.co/sale. Reply STOP to opt out.
140 
141Optional Send 2 (24h later): Reminder + best-seller showcase
142 
143### Abandoned Cart (highest-ROI flow for ecom)
144 
145- Send 1 (30 min after abandon): "Forget something? Your cart's still here: [short link]"
146- Send 2 (4 hours later): Soft urgency + social proof
147- Send 3 (24 hours later, optional): Discount offer (only if margin allows)
148 
149**Note**: Discount on first message trains customers to abandon. Reserve discount for Send 2 or 3.
150 
151### Browse Abandonment
152 
153- Send 1 (1 hour after browse): Product + "Thinking it over?" + link
154 
155### Post-Purchase
156 
157- Send 1 (immediate): Order confirmation + delivery ETA (transactional, separate consent OK)
158- Send 2 (after delivery + 2 days): "How are you liking [product]?" + review prompt + cross-sell
159 
160### Win-Back (lapsed)
161 
162- Send 1 (60–90 days after last purchase): "We miss you" + curated picks
163- Send 2 (14 days later): Discount offer
164- Send 3 (final, 14 days later): Opt-out warning + last chance
165 
166### Promotional / Campaign Sends
167 
168- Flash sales, drops, launches, BFCM
169- 1–2 sends max per campaign
170- Stack against email send schedule to avoid same-day double-tap
171 
172### Transactional (separate compliance bucket)
173 
174- Order updates, shipping, delivery, auth codes, account alerts
175- Generally OK without separate marketing consent if directly related to a transaction the user initiated
176- Still subject to A2P 10DLC registration in US
177 
178**For full sequence templates with copy and timing**: see [references/sequence-templates.md](references/sequence-templates.md).
179 
180---
181 
182## SMS Copy Guidelines
183 
184### Structure
1851. **Sender ID** ("From Acme:" or brand short code) — required
1862. **Hook** — first 5 words decide if they read on
1873. **Value** — what's in it for them, specifically
1884. **CTA + short link** — single action, single URL
1895. **Compliance footer** — "Reply STOP to opt out" (required on opt-in confirmation and at least quarterly thereafter; carrier-recommended on every promotional message)
190 
191### Length
192 
193- **160 chars (GSM-7)** = 1 segment. Aim here.
194- **70 chars (UCS-2)** if you use emojis, accented characters, or curly quotes — you'll pay for more segments.
195- **161–306 chars** = 2 segments (concatenated SMS). Acceptable for richer messages, but you're paying double per send.
196- **MMS** (image + up to 1,600 chars) = 3–5× the SMS cost. Use sparingly for high-impact moments.
197 
198### Voice
199 
200- Conversational, not corporate. SMS feels personal — write like you're texting a friend.
201- No subject line, no formatting, no marketing-speak.
202- Emojis are fine in moderation (one per message, situationally).
203- ALL CAPS reads as shouting. Avoid except for explicit codes (e.g., "Use ACME10").
204 
205### Personalization
206 
207- First name token if available (boosts CTR ~20%)
208- Recent product/category browse-based
209- Location-based offers (where applicable)
210- Don't fake intimacy ("Hey friend!") — it backfires
211 
212**For complete copy patterns by sequence type with character counts**: see [references/sequence-templates.md](references/sequence-templates.md).
213 
214---
215 
216## Platform Selection
217 
218| Platform | Best For | Native MCP | Cost Tier |
219|----------|----------|:---:|-----------|
220| **Klaviyo SMS** | DTC ecom already on Klaviyo email | ✓ | $$ |
221| **Postscript** | DTC Shopify ecom, deep integration | - | $$ |
222| **Attentive** | Mid-market+ ecom, full-service | - | $$$ |
223| **Twilio** | Custom builds, transactional, devs | - | $ (raw API) |
224| **Brevo SMS** | EU-focused, email + SMS combo | ✓ | $ |
225| **SimpleTexting** | SMB, simple needs, ease of use | - | $ |
226| **Customer.io** | Behavior-based automation + SMS | - | $$ |
227 
228**Quick picks**:
229- Already on Klaviyo for email + DTC/ecom → **Klaviyo SMS** (no second platform to learn)
230- Shopify ecom, want deeper SMS-specific features → **Postscript**
231- Building custom SMS into a product → **Twilio**
232- B2B SaaS doing transactional/auth → **Twilio** or **Customer.io**
233 
234**For platform deep-dives (features, pricing, integration paths, A2P registration)**: see [references/platforms.md](references/platforms.md).
235 
236---
237 
238## Measurement
239 
240### Key Metrics
241 
242| Metric | What it tells you | Healthy range (ecom DTC) |
243|--------|-------------------|--------------------------|
244| **Opt-in rate** | Top of funnel health | 5–25% of email subscribers |
245| **CTR** | Message relevance | 8–15% (vs ~3% email) |
246| **Conversion rate (per send)** | Revenue impact | 1–5% per promotional send |
247| **Revenue per send (RPS)** | Channel economics | $0.20–$2.00 |
248| **Opt-out rate per send** | Audience fatigue | <2% per send, <0.5% for promotional |
249| **Cost per send** | Channel cost discipline | $0.0075–$0.04 |
250| **List growth rate** | Audience momentum | 5–15%/month early, 1–3% steady-state |
251 
252### What to track in analytics
253 
254- UTM tag every link: `utm_source=sms&utm_medium=sms&utm_campaign=[campaign-name]`
255- Conversion attribution: SMS-driven sessions, last-click revenue, assisted conversions
256- LTV impact: SMS subscribers vs email-only subscribers (typically 1.5–3× LTV for SMS opt-ins)
257 
258### What to A/B test
259 
260- Send time (afternoon vs evening, local time)
261- Copy length (short SMS vs MMS with image)
262- Discount amount and trigger (immediate vs delayed)
263- Personalization tokens (with first name vs without)
264- CTA copy ("Shop now" vs "See it" vs "Last chance")
265 
266Cross-reference **ab-testing** skill for proper test design and **analytics** for attribution setup.
267 
268---
269 
270## Output Format
271 
272When the user asks for an SMS plan, return:
273 
2741. **Compliance check**: Are they registered for A2P 10DLC (if US)? Is the opt-in mechanism compliant? Flag blockers first.
2752. **Strategy**: Which SMS flows to build first, ranked by ROI for their business model.
2763. **Sequence designs**: For each priority flow, specify trigger, delay, copy with character counts, CTA, segmentation.
2774. **Platform recommendation**: Based on stack, list size, and complexity.
2785. **Measurement plan**: KPIs, benchmarks, A/B test queue.
2796. **Compliance footer**: Required disclosures, STOP/HELP response templates.
280 
281Keep recommendations specific. Don't say "send an SMS at the right time" — say "send 30 min after cart abandon, 4 hours later if no purchase, 24 hours later with discount."
282 
283---
284 
285## Task-Specific Questions
286 
2871. Are you US, EU, or both? (Changes compliance approach entirely.)
2882. Is A2P 10DLC registration complete (US)?
2893. What platform are you on or considering?
2904. Email list size and SMS opt-in rate (if any)?
2915. What sequences do you already have running?
2926. Are you DTC ecom, mobile app, B2B SaaS, services?
2937. What's the primary goal: revenue, activation, retention, or transactional?
294 
295---
296 
297## Common Mistakes
298 
2991. **Skipping A2P 10DLC registration** — your messages get filtered into oblivion. Register first, send second.
3002. **Treating SMS like email** — sending daily promotional blasts. Opt-out rates spike, list dies.
3013. **Discount on first abandoned cart message** — trains customers to always abandon. Reserve for second or third send.
3024. **Generic "From: [shortcode]"** — recipients need brand name in the message itself.
3035. **Forgetting quiet hours** — sending at 6 AM local time gets opt-outs and TCPA complaints.
3046. **No STOP/HELP handling** — non-negotiable. Every platform handles this; verify yours does.
3057. **Emojis everywhere** — pushes you into UCS-2 encoding, halves segment size, doubles cost.
3068. **Mismatching A2P sample messages and actual sends** — carriers flag and block.
3079. **Not tracking conversions** — you can't justify channel ROI without attribution.
30810. **No throttling on bulk sends** — burst sends trigger carrier filtering. Use platform throttling.
309 
310---
311 
312## Tool Integrations
313 
314For implementation, see the [tools registry](../../tools/REGISTRY.md). Key SMS tools:
315 
316| Tool | Best For | MCP | Guide |
317|------|----------|:---:|-------|
318| **Klaviyo** | E-commerce email + SMS combined | ✓ | [klaviyo.md](../../tools/integrations/klaviyo.md) |
319| **Postscript** | Shopify DTC SMS, deepest Shopify integration | - | [postscript.md](../../tools/integrations/postscript.md) |
320| **Attentive** | Mid-market+ DTC SMS, full-service | - | [attentive.md](../../tools/integrations/attentive.md) |
321| **Twilio** | Raw API for custom builds, transactional, dev-first | - | [twilio.md](../../tools/integrations/twilio.md) |
322| **Plivo** | Twilio alternative, lower per-send cost | - | [plivo.md](../../tools/integrations/plivo.md) |
323| **AudienceTap** | AI-forward DTC, on-pack QR opt-in | - | [audiencetap.md](../../tools/integrations/audiencetap.md) |
324| **Brevo** | EU email + SMS, SMB-friendly | ✓ | [brevo.md](../../tools/integrations/brevo.md) |
325| **Customer.io** | Behavior-based SMS automation | - | [customer-io.md](../../tools/integrations/customer-io.md) |
326 
327---
328 
329## Related Skills
330 
331- **emails**: Sister channel — almost always run together. Email carries the long-form content; SMS carries the urgent nudges.
332- **copywriting**: For SMS copy at scale and the longer-form pages/emails that SMS links to.
333- **popups**: For phone number capture popups on-site.
334- **churn-prevention**: For win-back flows that combine SMS + email.
335- **onboarding**: For post-signup SMS milestone nudges.
336- **analytics**: For attribution and RPS measurement.
337- **ab-testing**: For SMS-specific test design.
338- **lead-magnets**: For incentivizing opt-in (the "10% off for joining" offer).
339 

Reviews

Installed this one?Write the first review and take the Trailblazer badge.

Reviews only open after a real install, so this is empty — and we leave it empty rather than invent one.

Alternatives

Also in Coding