jasoncolapietro/suede-sms
Suede-owned SMS and MMS marketing discipline. Use when evaluating SMS as a channel, designing consent-aware sequences, drafting messages, setting cadence, comparing number types or platforms, and defining measurement. NOT FOR: email campaigns (use suede-emails), phone capture UX (use suede-site-alchemy), legal certification, or sending, scheduling, importing, or registering anything without approval.
npx skills add https://github.com/JasonColapietro/suede-creator-skills --skill suede-sms
Suede SMS designs consent-aware message programs for commerce, mobile, and SaaS
use cases where immediacy can earn its interruption cost. It combines sequence
logic, sender identity, cadence, carrier constraints, and measurement without
claiming legal certification or sending messages.
Check for product marketing context first:
If .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.
Gather this context (ask if not provided):
SMS is not "another email." Use it where the channel's properties win:
| Use Case | SMS or Email? | Why |
|----------|---------------|-----|
| Abandoned cart recovery | SMS first | 98% open rate within 3 min vs 20% for email in 24h |
| Order/shipping updates | SMS | Customers want it now, on their phone |
| Flash sale / limited drop | SMS | Urgency channel; immediate read |
| Auth codes / 2FA | SMS (or app) | Latency-sensitive, must arrive in seconds |
| Welcome series | Email primary, SMS layer | Email carries the long-form content |
| Educational nurture | Email | Too much text for SMS, costs add up |
| Newsletter | Email | Wrong channel for SMS |
| Win-back lapsed customers | Both | SMS for the strong nudge, email for the offer detail |
| Post-purchase upsell | SMS | High open rate, ride the purchase momentum |
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.
Compliance is the foundation, not an afterthought. A single TCPA class-action settlement runs $5M–$40M. The basics:
Application-to-Person 10-digit long codes must be registered through The Campaign Registry (TCR) via your SMS platform. Without registration:
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.
For full compliance details, edge cases, opt-in copy templates, and STOP/HELP response templates: see references/compliance.md.
| Type | Throughput | Cost | Use Case | Trust |
|------|-----------|------|----------|-------|
| Short code (5-6 digit) | 100+ msg/sec | $500–$1,000/mo + setup | High-volume marketing | Highest (carrier-vetted) |
| Toll-free (1-8XX) | ~3 msg/sec | $10–$30/mo | Mid-volume, B2C support | Medium-high (carrier-verified) |
| 10DLC (regular long code) | 1–250 msg/sec | $2–$10/mo | SMB, conversational, transactional | Medium (requires A2P 10DLC reg) |
Rule of thumb: list <10K = 10DLC. List 10K–100K = toll-free. List 100K+ = short code.
SMS 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.
Opt-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.
The recipient gave you their phone number. Every send should pass: "would I be glad I got this text?" If no, don't send.
160 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.
Short links are mandatory (klvy.co, txt.attn.tv, branded short domain). Track UTM params on every link.
"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.
Send 1: Confirmation + reward (immediate)
> From Acme: Thanks for joining! Here's 10% off: ACME10. Use at checkout: acme.co/sale. Reply STOP to opt out.
Optional Send 2 (24h later): Reminder + best-seller showcase
Note: Discount on first message trains customers to abandon. Reserve discount for Send 2 or 3.
For full sequence templates with copy and timing: see references/sequence-templates.md.
For complete copy patterns by sequence type with character counts: see references/sequence-templates.md.
| Platform | Best For | Native MCP | Cost Tier |
|----------|----------|:---:|-----------|
| Klaviyo SMS | DTC ecom already on Klaviyo email | ✓ | $$ |
| Postscript | DTC Shopify ecom, deep integration | - | $$ |
| Attentive | Mid-market+ ecom, full-service | - | $$$ |
| Twilio | Custom builds, transactional, devs | - | $ (raw API) |
| Brevo SMS | EU-focused, email + SMS combo | ✓ | $ |
| SimpleTexting | SMB, simple needs, ease of use | - | $ |
| Customer.io | Behavior-based automation + SMS | - | $$ |
Quick picks:
For platform deep-dives (features, pricing, integration paths, A2P registration): see references/platforms.md.
| Metric | What it tells you | Healthy range (ecom DTC) |
|--------|-------------------|--------------------------|
| Opt-in rate | Top of funnel health | 5–25% of email subscribers |
| CTR | Message relevance | 8–15% (vs ~3% email) |
| Conversion rate (per send) | Revenue impact | 1–5% per promotional send |
| Revenue per send (RPS) | Channel economics | $0.20–$2.00 |
| Opt-out rate per send | Audience fatigue | <2% per send, <0.5% for promotional |
| Cost per send | Channel cost discipline | $0.0075–$0.04 |
| List growth rate | Audience momentum | 5–15%/month early, 1–3% steady-state |
utm_source=sms&utm_medium=sms&utm_campaign=[campaign-name]Cross-reference suede-ab-testing for test design and suede-analytics for
attribution setup.
When the user asks for an SMS plan, return:
Keep 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."
10. No throttling on bulk sends — burst sends trigger carrier filtering. Use platform throttling.
These are evaluation examples, not guaranteed integrations. Verify current
vendor documentation, authenticated access, per-message cost, carrier support,
consent storage, quiet-hour controls, STOP/HELP behavior, and delivery limits.
| Tool Category | Examples | Verify Before Use |
|---------------|----------|-------------------|
| Commerce suites | Klaviyo, Postscript, Attentive | Store integration, consent, attribution |
| Messaging APIs | Twilio, Plivo | Number registration, throughput, callbacks |
| Lifecycle platforms | Brevo, Customer.io | Regional coverage, orchestration, suppression |
| Specialized DTC | AudienceTap | Capture method, consent record, carrier coverage |
change carrier settings, or mutate consent records without verified live
state and explicit approval.
documented consent, sender identification, quiet-hour, opt-out, suppression,
and jurisdiction review before activation.
place personal phone numbers in drafts or reports.
suede-emails for the email side of a coordinated lifecycle program.suede-site-alchemy for phone-number capture experiences.suede-churn-prevention for approved win-back strategy.suede-analytics to define delivery, response, and revenue measurement.Take jasoncolapietro/suede-sms from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.