d36433703b
New skill: skills/sms/ - SKILL.md (336 lines, under 500 limit): strategy, when SMS beats email, compliance overview, sequence types, copy guidelines, platform selection, measurement, common mistakes - references/compliance.md: TCPA, A2P 10DLC, EU GDPR, CASL, Australia, opt-in disclosure templates, STOP/HELP response templates, audit checklist - references/sequence-templates.md: full copy templates with character counts for welcome, abandoned cart, browse abandonment, post-purchase, win-back, promotional, transactional, re-engagement, replenishment, VIP - references/platforms.md: platform deep-dives across Klaviyo SMS, Postscript, Attentive, Twilio, Plivo, AudienceTap, Brevo, SimpleTexting, Customer.io - evals/evals.json: 6 evals covering getting started, abandoned cart, TCPA compliance, opt-out diagnosis, A2P throughput, emoji segment cost New integration docs: - tools/integrations/twilio.md - tools/integrations/postscript.md - tools/integrations/attentive.md - tools/integrations/plivo.md - tools/integrations/audiencetap.md Registry + marketplace wiring: - tools/REGISTRY.md: 5 new entries + new SMS / Messaging category section - .claude-plugin/marketplace.json: bumped to 2.1.0, SMS added to plugin description - VERSIONS.md: sms 1.0.0 + 2.1.0 changelog entry - README.md: skill table re-sorted via sync-skills.js, sms added to ASCII flow All 41 skills pass validation. sync-skills.js is idempotent on current state. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
283 lines
6.9 KiB
Markdown
283 lines
6.9 KiB
Markdown
# SMS Sequence Templates
|
||
|
||
Full copy templates with character counts, timing, and segmentation logic for every major SMS flow.
|
||
|
||
> Character counts shown assume GSM-7 encoding. Emojis force UCS-2 (70 chars/segment instead of 160). All templates use `[Brand]`, `[FirstName]`, and `[short.link]` as substitution tokens.
|
||
|
||
---
|
||
|
||
## Welcome / Opt-In Confirmation
|
||
|
||
### Send 1 — Immediate (after opt-in)
|
||
|
||
```
|
||
From [Brand]: Welcome! Here's your 10% off code: WELCOME10. Shop now: [short.link]
|
||
Reply STOP to opt out, HELP for help. Msg & data rates may apply.
|
||
```
|
||
~155 chars / 1 segment (just). Footer required on first send.
|
||
|
||
### Send 2 — 24 hours later (optional)
|
||
|
||
```
|
||
From [Brand]: Don't forget your code WELCOME10 — expires in 48hrs. Top picks: [short.link]
|
||
```
|
||
~108 chars / 1 segment.
|
||
|
||
### Send 3 — 7 days later (optional, conditional on no purchase)
|
||
|
||
```
|
||
From [Brand]: Last chance for 10% off with WELCOME10. Expires tonight at midnight: [short.link]
|
||
```
|
||
~107 chars / 1 segment.
|
||
|
||
---
|
||
|
||
## Abandoned Cart (highest-ROI flow for ecom)
|
||
|
||
### Send 1 — 30 minutes after abandon
|
||
|
||
```
|
||
From [Brand]: Hey [FirstName], you left something behind! Your cart's here: [short.link]
|
||
```
|
||
~95 chars / 1 segment.
|
||
|
||
### Send 2 — 4 hours after abandon (if no purchase)
|
||
|
||
```
|
||
From [Brand]: Items in your cart are selling fast. Reserved for you for 24hrs: [short.link]
|
||
```
|
||
~98 chars / 1 segment.
|
||
|
||
### Send 3 — 24 hours after abandon (if no purchase, discount allowed)
|
||
|
||
```
|
||
From [Brand]: Still thinking? Here's 10% off to seal the deal: SAVE10. Shop: [short.link]
|
||
```
|
||
~99 chars / 1 segment.
|
||
|
||
**Notes**:
|
||
- Discount on Send 1 trains customers to abandon. Reserve for Send 2 or 3.
|
||
- Exclude customers who abandoned <$X in cart value or repeat abandoners (gaming the discount).
|
||
- Stop sequence on purchase, opt-out, or 48 hours elapsed.
|
||
|
||
---
|
||
|
||
## Browse Abandonment
|
||
|
||
### Send 1 — 1 hour after browse (single product or category)
|
||
|
||
```
|
||
From [Brand]: Still thinking about [product]? Take another look: [short.link]
|
||
```
|
||
~84 chars / 1 segment.
|
||
|
||
**Notes**:
|
||
- Trigger only after meaningful browse signal (3+ product views or 2+ min on product page).
|
||
- Exclude if a purchase happened on a different product.
|
||
|
||
---
|
||
|
||
## Post-Purchase Flow
|
||
|
||
### Send 1 — Immediately after purchase (transactional, separate consent)
|
||
|
||
```
|
||
From [Brand]: Order #12345 confirmed! We'll text shipping updates here. Track: [short.link]
|
||
```
|
||
~95 chars / 1 segment.
|
||
|
||
### Send 2 — Day of shipment
|
||
|
||
```
|
||
From [Brand]: Your order's on the way. Estimated delivery: [date]. Track: [short.link]
|
||
```
|
||
~92 chars / 1 segment.
|
||
|
||
### Send 3 — Day of delivery
|
||
|
||
```
|
||
From [Brand]: Your order should arrive today! Questions? Reply or visit [short.link]
|
||
```
|
||
~88 chars / 1 segment.
|
||
|
||
### Send 4 — 2 days after delivery (marketing consent required)
|
||
|
||
```
|
||
From [Brand]: How are you liking your [product]? Share a review for 15% off next order: [short.link]
|
||
```
|
||
~108 chars / 1 segment.
|
||
|
||
### Send 5 — 14 days after delivery (cross-sell, marketing consent)
|
||
|
||
```
|
||
From [Brand]: Goes great with your [product]: [related-item]. 10% off bundle: [short.link]
|
||
```
|
||
~99 chars / 1 segment.
|
||
|
||
---
|
||
|
||
## Win-Back (Lapsed Customers)
|
||
|
||
### Send 1 — 60-90 days after last purchase
|
||
|
||
```
|
||
From [Brand]: [FirstName], we miss you! Picks we think you'll love: [short.link]
|
||
```
|
||
~84 chars / 1 segment.
|
||
|
||
### Send 2 — 14 days later (if no purchase)
|
||
|
||
```
|
||
From [Brand]: Come back for 15% off your next order: COMEBACK15. Expires in 7 days: [short.link]
|
||
```
|
||
~106 chars / 1 segment.
|
||
|
||
### Send 3 — 14 days after Send 2 (final, if no purchase)
|
||
|
||
```
|
||
From [Brand]: Last chance — 20% off ends tonight: COMEBACK20. We'll stop texting if you'd rather: reply STOP. [short.link]
|
||
```
|
||
~130 chars / 1 segment.
|
||
|
||
**Notes**:
|
||
- After Send 3 with no engagement, suppress for 90 days minimum.
|
||
- After two full win-back cycles with no engagement, sunset (remove from active list).
|
||
|
||
---
|
||
|
||
## Promotional / Campaign Sends
|
||
|
||
### Flash sale (single send)
|
||
|
||
```
|
||
From [Brand]: 24-HOUR FLASH: 25% off everything with FLASH25. Ends midnight: [short.link]
|
||
```
|
||
~94 chars / 1 segment.
|
||
|
||
### Limited drop / launch
|
||
|
||
```
|
||
From [Brand]: New drop just landed: [product-name]. Limited stock, members get early access: [short.link]
|
||
```
|
||
~115 chars / 1 segment.
|
||
|
||
### Holiday / BFCM (2-send sequence)
|
||
|
||
Send 1 — Day of launch:
|
||
```
|
||
From [Brand]: Black Friday is LIVE — up to 50% off sitewide. Shop now: [short.link]
|
||
```
|
||
~92 chars / 1 segment.
|
||
|
||
Send 2 — Day of (or evening, expiration push):
|
||
```
|
||
From [Brand]: Last 6 hours of BFCM savings. Don't miss out: [short.link]
|
||
```
|
||
~73 chars / 1 segment.
|
||
|
||
---
|
||
|
||
## Transactional / Account Notifications
|
||
|
||
### Order confirmation
|
||
|
||
```
|
||
[Brand]: Order #12345 confirmed. Total $XX.XX. Track at [short.link]. Reply HELP for help.
|
||
```
|
||
|
||
### Shipping update
|
||
|
||
```
|
||
[Brand]: Your order #12345 shipped! Track: [short.link]. ETA [date].
|
||
```
|
||
|
||
### Delivery confirmation
|
||
|
||
```
|
||
[Brand]: Order #12345 delivered. Enjoy! Issues? Reply or [support-link].
|
||
```
|
||
|
||
### Auth code (2FA)
|
||
|
||
```
|
||
[Brand] verification code: 123456. Expires in 10 min. Do not share.
|
||
```
|
||
|
||
### Account alert
|
||
|
||
```
|
||
[Brand]: Sign-in from new device in [location]. Wasn't you? Secure: [short.link]
|
||
```
|
||
|
||
---
|
||
|
||
## Re-Engagement / Reactivation (Subscribers Who've Gone Cold)
|
||
|
||
For SMS subscribers who haven't engaged with any send in 60+ days.
|
||
|
||
### Send 1 — Soft reactivation
|
||
|
||
```
|
||
From [Brand]: We've missed you, [FirstName]! Here's what's new: [short.link]
|
||
```
|
||
~80 chars / 1 segment.
|
||
|
||
### Send 2 — Confirm interest (if no engagement)
|
||
|
||
```
|
||
From [Brand]: Want to keep hearing from us? Reply YES to stay on the list, or STOP to opt out.
|
||
```
|
||
~98 chars / 1 segment.
|
||
|
||
After no reply: suppress for 60 days, then remove from active list. This protects opt-out rate metrics and reduces wasted spend.
|
||
|
||
---
|
||
|
||
## Replenishment (Consumables Ecom)
|
||
|
||
For products with predictable usage cycles (skincare, supplements, coffee, pet food).
|
||
|
||
### Send 1 — At expected reorder window (e.g., 28 days for a 30-day supply)
|
||
|
||
```
|
||
From [Brand]: Running low on [product]? Reorder in one tap: [short.link]
|
||
```
|
||
~73 chars / 1 segment.
|
||
|
||
### Send 2 — 7 days later (if no purchase)
|
||
|
||
```
|
||
From [Brand]: Don't run out! 10% off your reorder of [product]: REFILL10 [short.link]
|
||
```
|
||
~92 chars / 1 segment.
|
||
|
||
---
|
||
|
||
## VIP / Loyalty Members
|
||
|
||
Higher frequency, exclusive offers, early access — different cadence rules apply but quiet hours and STOP still required.
|
||
|
||
### Early access
|
||
|
||
```
|
||
From [Brand]: VIPs get the new drop 24hrs early. Yours now: [short.link]
|
||
```
|
||
~72 chars / 1 segment.
|
||
|
||
### Loyalty milestone
|
||
|
||
```
|
||
From [Brand]: You've reached Gold status! Your perks: 15% off + free shipping. [short.link]
|
||
```
|
||
~95 chars / 1 segment.
|
||
|
||
---
|
||
|
||
## Segmentation rules across all flows
|
||
|
||
- **Suppress** customers in active sequences from promotional sends (no double-tap)
|
||
- **Suppress** opted-out subscribers from everything (platform handles this)
|
||
- **Frequency cap**: max 4–6 marketing sends/week per subscriber (lower for newer subscribers)
|
||
- **Quiet hours**: 9am–8pm recipient-local time
|
||
- **Cool-off**: After a discount-driven purchase, suppress promotional sends for 14 days
|