feat: add sms skill + 5 SMS platform integration docs (#307)
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>
This commit is contained in:
@@ -54,6 +54,11 @@ Quick reference for AI agents to discover tool capabilities and integration meth
|
||||
| postmark | Email | ✓ | - | [✓](clis/postmark.js) | ✓ | [postmark.md](integrations/postmark.md) |
|
||||
| brevo | Email/SMS | ✓ | - | [✓](clis/brevo.js) | ✓ | [brevo.md](integrations/brevo.md) |
|
||||
| activecampaign | Email/CRM | ✓ | - | [✓](clis/activecampaign.js) | ✓ | [activecampaign.md](integrations/activecampaign.md) |
|
||||
| twilio | SMS/Voice | ✓ | - | ✓ | ✓ | [twilio.md](integrations/twilio.md) |
|
||||
| plivo | SMS/Voice | ✓ | - | - | ✓ | [plivo.md](integrations/plivo.md) |
|
||||
| postscript | SMS | ✓ | - | - | - | [postscript.md](integrations/postscript.md) |
|
||||
| attentive | SMS | ✓ | - | - | - | [attentive.md](integrations/attentive.md) |
|
||||
| audiencetap | SMS/Email | ✓ | - | - | - | [audiencetap.md](integrations/audiencetap.md) |
|
||||
| hunter | Email Outreach | ✓ | - | [✓](clis/hunter.js) | - | [hunter.md](integrations/hunter.md) |
|
||||
| snov | Email Outreach | ✓ | - | [✓](clis/snov.js) | - | [snov.md](integrations/snov.md) |
|
||||
| lemlist | Email Outreach | ✓ | - | [✓](clis/lemlist.js) | - | [lemlist.md](integrations/lemlist.md) |
|
||||
@@ -189,6 +194,23 @@ Email marketing, transactional email, and automation platforms.
|
||||
|
||||
**Agent recommendation**: Resend for transactional (dev-friendly). Postmark for deliverability. Customer.io for advanced automation. Kit for creators. Beehiiv for newsletters. Klaviyo for e-commerce email/SMS. ActiveCampaign for email + CRM combo.
|
||||
|
||||
### SMS / Messaging
|
||||
|
||||
SMS and MMS marketing platforms and programmable messaging APIs.
|
||||
|
||||
| Tool | Best For | MCP Available |
|
||||
|------|----------|:-------------:|
|
||||
| **klaviyo** | DTC ecom already on Klaviyo email | - |
|
||||
| **postscript** | Shopify DTC, SMS-first depth | - |
|
||||
| **attentive** | Mid-market+ DTC, full-service | - |
|
||||
| **twilio** | Custom API builds, transactional, dev-first | - |
|
||||
| **plivo** | Twilio alternative, lower per-send cost | - |
|
||||
| **audiencetap** | DTC with AI-forward creative + on-pack QR opt-in | - |
|
||||
| **brevo** | EU SMB email + SMS combo | - |
|
||||
| **customer-io** | Behavior-based SMS automation | - |
|
||||
|
||||
**Agent recommendation**: Klaviyo SMS for ecom already on Klaviyo email. Postscript for Shopify-first depth. Attentive for mid-market+ wanting concierge support. Twilio (or Plivo for lower cost) for custom builds and transactional/auth. AudienceTap when AI creative or on-pack QR opt-in matters.
|
||||
|
||||
### Advertising
|
||||
|
||||
Paid advertising platforms and campaign management.
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
# Attentive
|
||||
|
||||
Full-service SMS marketing platform for mid-market and enterprise direct-to-consumer brands. Combines tooling with dedicated success teams.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | ✓ | REST API |
|
||||
| MCP | - | Not available |
|
||||
| CLI | - | None |
|
||||
| SDK | - | Use API directly |
|
||||
|
||||
## Authentication
|
||||
|
||||
- **Type**: OAuth 2.0 or API Key (depending on integration type)
|
||||
- **Header**: `Authorization: Bearer {access_token}`
|
||||
- **Get credentials**: Account-level provisioning through Attentive integrations team
|
||||
- **Note**: API access requires partnership or eligible plan
|
||||
|
||||
## Common Agent Operations
|
||||
|
||||
### Subscribe a user
|
||||
|
||||
```bash
|
||||
POST https://api.attentivemobile.com/v1/subscriptions
|
||||
|
||||
{
|
||||
"user": {
|
||||
"phone": "+15551234567",
|
||||
"email": "user@example.com"
|
||||
},
|
||||
"signUpSourceId": "...",
|
||||
"subscriptionType": "MARKETING"
|
||||
}
|
||||
```
|
||||
|
||||
Sign-up source ID determines opt-in attribution and compliance disclosure shown.
|
||||
|
||||
### Unsubscribe
|
||||
|
||||
```bash
|
||||
POST https://api.attentivemobile.com/v1/subscriptions/unsubscribe
|
||||
|
||||
{
|
||||
"user": { "phone": "+15551234567" },
|
||||
"subscriptionType": "MARKETING"
|
||||
}
|
||||
```
|
||||
|
||||
### Custom event tracking
|
||||
|
||||
```bash
|
||||
POST https://api.attentivemobile.com/v1/events/custom
|
||||
|
||||
{
|
||||
"user": { "phone": "+15551234567" },
|
||||
"type": "abandoned_cart",
|
||||
"properties": {
|
||||
"cart_value": 89.99,
|
||||
"items": ["Product A"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### E-commerce events (purchase, add-to-cart, product view)
|
||||
|
||||
```bash
|
||||
POST https://api.attentivemobile.com/v1/events/ecommerce/purchase
|
||||
|
||||
{
|
||||
"user": { "phone": "+15551234567" },
|
||||
"items": [{
|
||||
"productId": "SKU-123",
|
||||
"name": "Product A",
|
||||
"price": { "value": 4999, "currency": "USD" },
|
||||
"quantity": 1
|
||||
}],
|
||||
"occurredAt": "2026-05-15T10:00:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
Similar endpoints for `/add_to_cart`, `/product_view`, `/checkout`.
|
||||
|
||||
### Send transactional message
|
||||
|
||||
```bash
|
||||
POST https://api.attentivemobile.com/v1/messages/transactional
|
||||
|
||||
{
|
||||
"user": { "phone": "+15551234567" },
|
||||
"messageBody": "Your order #1234 shipped. Track: https://...",
|
||||
"type": "ORDER_SHIPPING"
|
||||
}
|
||||
```
|
||||
|
||||
### List campaigns
|
||||
|
||||
```bash
|
||||
GET https://api.attentivemobile.com/v1/campaigns
|
||||
```
|
||||
|
||||
### Webhooks
|
||||
|
||||
Subscribe to: `subscriber.created`, `subscriber.unsubscribed`, `message.sent`, `message.delivered`, `message.failed`, `conversion.attributed`.
|
||||
|
||||
## API Pattern
|
||||
|
||||
REST + JSON. Bearer auth. Webhook signature verification via HMAC-SHA256.
|
||||
|
||||
## Key Features
|
||||
|
||||
- Concierge sales (live agents responding via SMS)
|
||||
- Identity resolution (matching anonymous site visitors to phone numbers for retargeting)
|
||||
- Strong analytics + attribution (multi-touch, conversion path)
|
||||
- AI Journey AI / Pro AI (AI-generated send timing and copy)
|
||||
- Custom Audience Manager (advanced segmentation)
|
||||
- A/B testing built into campaign builder
|
||||
- Two-way SMS at scale
|
||||
- A2P 10DLC fully managed
|
||||
- Short code provisioning included on most plans
|
||||
- Dedicated CSM, copy support, strategy consults
|
||||
|
||||
## Pricing
|
||||
|
||||
- Custom contracts; typically $1K–$10K+/mo platform fee + per-send fees
|
||||
- Annual contracts standard
|
||||
- Pricing rarely makes sense for <50K active SMS subscribers
|
||||
- Negotiable based on volume and tier
|
||||
|
||||
## When to Use
|
||||
|
||||
- Mid-market+ DTC brand (50K+ active SMS subscribers, $5M+/yr revenue)
|
||||
- Want dedicated CSM and copy support, not just tooling
|
||||
- Need concierge two-way SMS at scale
|
||||
- Multi-channel ecom team that wants single-pane SMS-first platform
|
||||
- Want short code included rather than separately leased
|
||||
- Identity resolution / cross-device matching matters
|
||||
|
||||
## When NOT to Use
|
||||
|
||||
- Smaller brands — too expensive, overkill
|
||||
- Already on Klaviyo and SMS is secondary — Klaviyo SMS is simpler
|
||||
- Shopify-only and want depth — Postscript is more Shopify-native
|
||||
- Custom platform / B2B SaaS — Twilio
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- sms
|
||||
- emails (run alongside)
|
||||
- churn-prevention
|
||||
- customer-research (identity resolution data)
|
||||
@@ -0,0 +1,125 @@
|
||||
# AudienceTap
|
||||
|
||||
SMS and email marketing platform built for direct-to-consumer brands. Newer entrant positioning as a more flexible, AI-forward alternative to Klaviyo / Postscript / Attentive with emphasis on creative automation and on-pack QR opt-in.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | ✓ | REST API (confirm with vendor; access tied to plan tier) |
|
||||
| MCP | - | Not available |
|
||||
| CLI | - | None |
|
||||
| SDK | - | Use API directly |
|
||||
|
||||
> Verify current API surface and capabilities at https://audiencetap.com before building against this guide — newer platform, surface evolves quickly.
|
||||
|
||||
## Authentication
|
||||
|
||||
- **Type**: API Key (Bearer)
|
||||
- **Header**: `Authorization: Bearer {api_key}`
|
||||
- **Get key**: AudienceTap dashboard → Settings → API
|
||||
- **Note**: API access generally requires Growth or Pro tier
|
||||
|
||||
## Common Agent Operations
|
||||
|
||||
### Subscribe a user
|
||||
|
||||
```bash
|
||||
POST https://api.audiencetap.com/v1/subscribers
|
||||
|
||||
{
|
||||
"phone_number": "+15551234567",
|
||||
"email": "user@example.com",
|
||||
"first_name": "Jane",
|
||||
"opt_in_source": "checkout",
|
||||
"list_id": "..."
|
||||
}
|
||||
```
|
||||
|
||||
### Unsubscribe
|
||||
|
||||
```bash
|
||||
POST https://api.audiencetap.com/v1/subscribers/unsubscribe
|
||||
|
||||
{
|
||||
"phone_number": "+15551234567",
|
||||
"channel": "sms"
|
||||
}
|
||||
```
|
||||
|
||||
### Track event
|
||||
|
||||
```bash
|
||||
POST https://api.audiencetap.com/v1/events
|
||||
|
||||
{
|
||||
"subscriber": { "phone_number": "+15551234567" },
|
||||
"event_name": "abandoned_cart",
|
||||
"properties": {
|
||||
"cart_value": 89.99,
|
||||
"items": ["Product A"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Send transactional message
|
||||
|
||||
```bash
|
||||
POST https://api.audiencetap.com/v1/messages/transactional
|
||||
|
||||
{
|
||||
"phone_number": "+15551234567",
|
||||
"body": "Your order #1234 shipped. Track: https://...",
|
||||
"category": "shipping"
|
||||
}
|
||||
```
|
||||
|
||||
### List flows / automations
|
||||
|
||||
```bash
|
||||
GET https://api.audiencetap.com/v1/flows
|
||||
```
|
||||
|
||||
### Webhooks
|
||||
|
||||
Subscribe to: subscriber events, message delivery events, conversion attribution. Configured in dashboard.
|
||||
|
||||
## API Pattern
|
||||
|
||||
REST + JSON. Bearer auth. Pagination conventions vary by endpoint — confirm in current docs.
|
||||
|
||||
## Key Features
|
||||
|
||||
- SMS + email on one platform (positioned similarly to Klaviyo's combined product)
|
||||
- AI creative generation (subject lines, SMS copy, image variants)
|
||||
- On-pack QR code opt-in (insert-card based opt-in for ecom shipments)
|
||||
- Shopify, BigCommerce, and headless commerce integrations
|
||||
- A2P 10DLC handled in-platform
|
||||
- Automation builder for cart, post-purchase, win-back, etc.
|
||||
- Identity resolution (matching anonymous visitors to known subscribers)
|
||||
|
||||
## Pricing
|
||||
|
||||
- Plans typically tiered by subscriber count + send volume
|
||||
- Per-send pricing comparable to other DTC SMS platforms (~$0.015 SMS, ~$0.04 MMS)
|
||||
- Confirm current pricing at https://audiencetap.com — newer platform with evolving plans
|
||||
|
||||
## When to Use
|
||||
|
||||
- Mid-market DTC brand willing to try a newer platform for better AI tooling or pricing leverage
|
||||
- Brand wanting on-pack QR opt-in as a primary acquisition channel (printed insert cards driving SMS opt-in)
|
||||
- Want SMS + email under one roof with stronger AI features than incumbents currently offer
|
||||
- Evaluating alternatives during a contract negotiation with Klaviyo / Postscript / Attentive
|
||||
|
||||
## When NOT to Use
|
||||
|
||||
- Need a fully battle-tested platform with deep ecosystem — incumbents have more integrations and case studies
|
||||
- Compliance tooling at enterprise scale — verify A2P / TCPA depth before committing for large lists
|
||||
- B2B SaaS, transactional, or developer-first use — Twilio or Plivo
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- sms
|
||||
- emails
|
||||
- referrals (on-pack QR opt-in is a referral-adjacent acquisition channel)
|
||||
- directory-submissions (on-pack insert cards as an offline channel)
|
||||
@@ -0,0 +1,140 @@
|
||||
# Plivo
|
||||
|
||||
Cloud communications API platform — SMS, MMS, voice, WhatsApp. Direct Twilio competitor with similar pricing and developer-first positioning.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | ✓ | REST API |
|
||||
| MCP | - | Not available |
|
||||
| CLI | - | None official |
|
||||
| SDK | ✓ | Node, Python, Ruby, PHP, Java, Go, .NET |
|
||||
|
||||
## Authentication
|
||||
|
||||
- **Type**: Basic auth with Auth ID + Auth Token
|
||||
- **Header**: `Authorization: Basic base64(AuthID:AuthToken)`
|
||||
- **Get credentials**: https://console.plivo.com → Account → Account Settings
|
||||
- **Note**: Subaccounts available for isolating environments or customers
|
||||
|
||||
## Common Agent Operations
|
||||
|
||||
### Send SMS
|
||||
|
||||
```bash
|
||||
POST https://api.plivo.com/v1/Account/{AuthID}/Message/
|
||||
|
||||
{
|
||||
"src": "+15559876543",
|
||||
"dst": "+15551234567",
|
||||
"text": "Hello from Plivo"
|
||||
}
|
||||
```
|
||||
|
||||
### Send MMS
|
||||
|
||||
```bash
|
||||
POST https://api.plivo.com/v1/Account/{AuthID}/Message/
|
||||
|
||||
{
|
||||
"src": "+15559876543",
|
||||
"dst": "+15551234567",
|
||||
"text": "Check this out",
|
||||
"type": "mms",
|
||||
"media_urls": ["https://example.com/image.jpg"]
|
||||
}
|
||||
```
|
||||
|
||||
### Bulk send (powerpack)
|
||||
|
||||
Use Plivo's Powerpack feature to send from a pool of numbers with sticky sender + automatic A2P registration. Configured in console; messages then sent with `powerpack_uuid` instead of `src`.
|
||||
|
||||
```bash
|
||||
POST https://api.plivo.com/v1/Account/{AuthID}/Message/
|
||||
|
||||
{
|
||||
"powerpack_uuid": "...",
|
||||
"dst": "+15551234567",
|
||||
"text": "Hello"
|
||||
}
|
||||
```
|
||||
|
||||
### Get message details
|
||||
|
||||
```bash
|
||||
GET https://api.plivo.com/v1/Account/{AuthID}/Message/{MessageUUID}/
|
||||
```
|
||||
|
||||
### List messages
|
||||
|
||||
```bash
|
||||
GET https://api.plivo.com/v1/Account/{AuthID}/Message/?limit=20&offset=0
|
||||
```
|
||||
|
||||
### Rent a phone number
|
||||
|
||||
```bash
|
||||
# Search available
|
||||
GET https://api.plivo.com/v1/Account/{AuthID}/PhoneNumber/?country_iso=US&type=local
|
||||
|
||||
# Rent
|
||||
POST https://api.plivo.com/v1/Account/{AuthID}/PhoneNumber/{NumberID}/
|
||||
```
|
||||
|
||||
### Configure inbound message webhook on an Application
|
||||
|
||||
```bash
|
||||
POST https://api.plivo.com/v1/Account/{AuthID}/Application/
|
||||
|
||||
{
|
||||
"app_name": "SMS Receiver",
|
||||
"message_url": "https://your-app.com/sms-webhook",
|
||||
"message_method": "POST"
|
||||
}
|
||||
```
|
||||
|
||||
Then assign the application to the phone number.
|
||||
|
||||
### A2P 10DLC registration (US)
|
||||
|
||||
Configured through console UI under Compliance. Programmatic registration available for high-volume customers via dedicated API endpoints (request access).
|
||||
|
||||
## API Pattern
|
||||
|
||||
REST + JSON. Pagination via `limit` + `offset`. Webhook callbacks for inbound messages and delivery status (configured per-application).
|
||||
|
||||
## Pricing
|
||||
|
||||
- US 10DLC SMS: $0.0055/msg (typically lower than Twilio)
|
||||
- US toll-free SMS: $0.0055/msg
|
||||
- US short code SMS: similar + monthly lease
|
||||
- MMS: ~$0.02
|
||||
- Carrier surcharges layered on top
|
||||
- Phone number rental: ~$0.80/mo local, ~$1/mo toll-free
|
||||
|
||||
Plivo typically prices 5–20% under Twilio at the per-send level. Less of an ecosystem advantage but real cost savings at high volume.
|
||||
|
||||
## Rate Limits
|
||||
|
||||
- Default: 1 msg/sec
|
||||
- Powerpacks scale throughput based on number pool size and A2P trust
|
||||
- Short codes: 100+ msg/sec
|
||||
|
||||
## When to Use
|
||||
|
||||
- Custom SMS build, want a Twilio-like API with lower cost
|
||||
- High-volume sending where the per-message delta matters
|
||||
- Want bulk sending with sticky sender via Powerpack
|
||||
- B2B SaaS embedding SMS or transactional/auth at scale
|
||||
|
||||
## When NOT to Use
|
||||
|
||||
- DTC ecom marketing flows — Klaviyo, Postscript, Attentive
|
||||
- Ecosystem matters more than price — Twilio's broader product surface (Voice, Studio, SendGrid, Segment, etc.) wins
|
||||
- Need mature WhatsApp Business — Twilio has deeper WhatsApp tooling
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- sms
|
||||
- onboarding (post-signup notifications)
|
||||
@@ -0,0 +1,126 @@
|
||||
# Postscript
|
||||
|
||||
SMS marketing platform built for Shopify direct-to-consumer brands. Deepest Shopify integration of any SMS platform.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | ✓ | REST API |
|
||||
| MCP | - | Not available |
|
||||
| CLI | - | None |
|
||||
| SDK | - | Use API directly |
|
||||
|
||||
## Authentication
|
||||
|
||||
- **Type**: API Key
|
||||
- **Header**: `Authorization: Bearer {api_key}` or `X-Postscript-Api-Key: {api_key}`
|
||||
- **Get key**: Postscript dashboard → Settings → API
|
||||
- **Note**: Keys are scoped per shop
|
||||
|
||||
## Common Agent Operations
|
||||
|
||||
### Search subscribers
|
||||
|
||||
```bash
|
||||
GET https://api.postscript.io/api/v2/subscribers?phone_number=%2B15551234567
|
||||
```
|
||||
|
||||
### Create subscriber (opt-in)
|
||||
|
||||
```bash
|
||||
POST https://api.postscript.io/api/v2/subscribers
|
||||
|
||||
{
|
||||
"phone_number": "+15551234567",
|
||||
"email": "user@example.com",
|
||||
"first_name": "Jane",
|
||||
"subscribed_at": "2026-05-15T10:00:00Z",
|
||||
"opt_in_source": "checkout_keyword"
|
||||
}
|
||||
```
|
||||
|
||||
Must include valid opt-in metadata for TCPA compliance.
|
||||
|
||||
### Unsubscribe
|
||||
|
||||
```bash
|
||||
DELETE https://api.postscript.io/api/v2/subscribers/{subscriberId}/subscription
|
||||
```
|
||||
|
||||
### List keywords (e.g., JOIN, SAVE)
|
||||
|
||||
```bash
|
||||
GET https://api.postscript.io/api/v2/keywords
|
||||
```
|
||||
|
||||
### Send transactional message
|
||||
|
||||
```bash
|
||||
POST https://api.postscript.io/api/v2/transactional/sms
|
||||
|
||||
{
|
||||
"phone_number": "+15551234567",
|
||||
"message": "Your order #1234 shipped. Track at https://..."
|
||||
}
|
||||
```
|
||||
|
||||
Transactional requires separate enablement; counts under transactional consent.
|
||||
|
||||
### List campaigns
|
||||
|
||||
```bash
|
||||
GET https://api.postscript.io/api/v2/campaigns
|
||||
```
|
||||
|
||||
### List automations (flows)
|
||||
|
||||
```bash
|
||||
GET https://api.postscript.io/api/v2/automations
|
||||
```
|
||||
|
||||
### Webhooks
|
||||
|
||||
Subscribe to events: `subscriber.created`, `subscriber.unsubscribed`, `message.delivered`, `message.failed`, `conversion.attributed`.
|
||||
|
||||
## API Pattern
|
||||
|
||||
REST + JSON. Standard `Bearer` auth. Pagination via `cursor` and `limit` (max 100).
|
||||
|
||||
## Key Features
|
||||
|
||||
- Native Shopify integration: purchases, abandoned carts, browse, product catalog auto-sync
|
||||
- Strong abandoned cart and browse abandonment automation builders
|
||||
- AI Reply (auto-reply trained on brand voice)
|
||||
- Conversational SMS / live agent for two-way
|
||||
- Opt-in tools: popups, keyword opt-in, checkout opt-in
|
||||
- A2P 10DLC managed in-platform
|
||||
- Reporting: revenue, click-through, conversion attribution, opt-out rate
|
||||
|
||||
## Pricing
|
||||
|
||||
- Plans: Starter (free, 1K msgs/mo), Growth ($100+/mo), Professional, Enterprise
|
||||
- Per-send pricing on top: ~$0.015 SMS, ~$0.04 MMS
|
||||
- Annual contracts standard at Growth+
|
||||
- Pricing scales meaningfully past 50K subscribers
|
||||
|
||||
## When to Use
|
||||
|
||||
- Shopify DTC brand wanting SMS-specific tooling (vs combined email/SMS)
|
||||
- Need deep abandoned cart, browse abandonment, post-purchase automation out of the box
|
||||
- Want managed A2P 10DLC + compliance tools
|
||||
- Mid-size DTC brand (10K–500K SMS subscribers)
|
||||
|
||||
## When NOT to Use
|
||||
|
||||
- Non-Shopify ecom — integration is shallow
|
||||
- Already on Klaviyo for email and SMS is secondary — Klaviyo SMS is simpler
|
||||
- Mid-market/enterprise needing concierge support — Attentive
|
||||
- Custom platform or B2B SaaS — Twilio
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- sms
|
||||
- emails (run alongside via Klaviyo or similar)
|
||||
- churn-prevention (win-back flows)
|
||||
- onboarding (post-purchase activation)
|
||||
@@ -0,0 +1,152 @@
|
||||
# Twilio
|
||||
|
||||
Programmable communications platform: SMS, MMS, WhatsApp, voice, email (via SendGrid). The default low-level API for custom SMS builds, transactional messaging, and B2B SaaS embedding SMS into products.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | ✓ | REST API, well-documented, mature |
|
||||
| MCP | - | Not available natively (community wrappers exist) |
|
||||
| CLI | ✓ | Official `twilio` CLI |
|
||||
| SDK | ✓ | Node, Python, Ruby, PHP, Java, Go, C#, .NET |
|
||||
|
||||
## Authentication
|
||||
|
||||
- **Type**: Basic auth with Account SID + Auth Token (or API Key SID + Secret)
|
||||
- **Header**: `Authorization: Basic base64(AccountSID:AuthToken)`
|
||||
- **Get credentials**: https://console.twilio.com → Account Info
|
||||
- **Recommendation**: Use API Keys (revocable, scoped) for production rather than the master Auth Token
|
||||
|
||||
## Common Agent Operations
|
||||
|
||||
### Send SMS
|
||||
|
||||
```bash
|
||||
POST https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json
|
||||
|
||||
To=+15551234567
|
||||
From=+15559876543
|
||||
Body=Hello from Twilio
|
||||
```
|
||||
|
||||
### Send MMS
|
||||
|
||||
```bash
|
||||
POST https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json
|
||||
|
||||
To=+15551234567
|
||||
From=+15559876543
|
||||
Body=Check this out
|
||||
MediaUrl=https://example.com/image.jpg
|
||||
```
|
||||
|
||||
### List messages
|
||||
|
||||
```bash
|
||||
GET https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json?PageSize=50
|
||||
```
|
||||
|
||||
### Get message status
|
||||
|
||||
```bash
|
||||
GET https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages/{MessageSid}.json
|
||||
```
|
||||
|
||||
Status values: `queued`, `sending`, `sent`, `delivered`, `undelivered`, `failed`.
|
||||
|
||||
### List phone numbers
|
||||
|
||||
```bash
|
||||
GET https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers.json
|
||||
```
|
||||
|
||||
### Buy a phone number
|
||||
|
||||
```bash
|
||||
POST https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers.json
|
||||
|
||||
PhoneNumber=+15559876543
|
||||
```
|
||||
|
||||
### Configure webhook for inbound messages
|
||||
|
||||
```bash
|
||||
POST https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers/{Sid}.json
|
||||
|
||||
SmsUrl=https://your-app.com/sms-webhook
|
||||
SmsMethod=POST
|
||||
```
|
||||
|
||||
Inbound SMS POSTs to the webhook with: `From`, `To`, `Body`, `MessageSid`, `NumMedia`, etc.
|
||||
|
||||
### A2P 10DLC registration (US)
|
||||
|
||||
```bash
|
||||
# Create brand
|
||||
POST https://messaging.twilio.com/v1/a2p/BrandRegistrations
|
||||
|
||||
CustomerProfileBundleSid=...
|
||||
A2PProfileBundleSid=...
|
||||
|
||||
# Create campaign
|
||||
POST https://messaging.twilio.com/v1/Services/{ServiceSid}/Compliance/Usa2p
|
||||
|
||||
BrandRegistrationSid=...
|
||||
Description=...
|
||||
MessageSamples[]=Sample text 1
|
||||
MessageFlow=Opt-in flow description
|
||||
UseCase=MARKETING
|
||||
```
|
||||
|
||||
Most workflows are clearer in the Console UI. Programmatic registration is for high-scale platforms managing many brands.
|
||||
|
||||
## API Pattern
|
||||
|
||||
REST + form-encoded request bodies (not JSON for most endpoints). Resources nested under Account: `/Accounts/{AccountSid}/...`. Pagination via `Page`, `PageSize`, `NextPageUri`.
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- **Messaging Service**: virtual sender container; load-balances across multiple numbers, handles A2P registration grouping
|
||||
- **Sticky Sender**: same recipient always receives from the same number within a service
|
||||
- **Geo-Match**: route to a number matching the recipient's country/region
|
||||
- **Status Callback**: webhook fired on every delivery state change
|
||||
- **Carrier Lookup**: pre-send check for line type (mobile, landline, VoIP) — costs ~$0.005
|
||||
|
||||
## Pricing
|
||||
|
||||
- US 10DLC SMS: $0.0079/msg
|
||||
- US toll-free SMS: $0.0079/msg
|
||||
- US short code SMS: $0.0079/msg + $1,000/mo lease
|
||||
- MMS: ~$0.02
|
||||
- Carrier surcharges (~$0.005 US 10DLC)
|
||||
- A2P 10DLC: ~$15 brand + $10/mo per campaign
|
||||
- Phone number rental: $1.15/mo (10DLC) to $2/mo (toll-free)
|
||||
|
||||
## Rate Limits
|
||||
|
||||
- Default: 1 msg/sec on long codes (10DLC trust score raises this to 4–100+)
|
||||
- Short code: 100+ msg/sec
|
||||
- Messaging Services throttle automatically
|
||||
- Carrier filtering applies above contracted throughput
|
||||
|
||||
## When to Use
|
||||
|
||||
- Building custom SMS flows into a product (B2B SaaS, mobile apps)
|
||||
- Transactional and auth SMS (OTPs, alerts, notifications)
|
||||
- Multi-channel orchestration (SMS + voice + WhatsApp)
|
||||
- High-volume programmable messaging
|
||||
- When you need full control and minimal abstraction
|
||||
- Backing store for Customer.io / Segment / other orchestration layers
|
||||
|
||||
## When NOT to Use
|
||||
|
||||
- DTC ecom marketing flows — use Klaviyo, Postscript, or Attentive (better tooling for cart recovery, segments, A/B tests)
|
||||
- If you don't want to handle compliance plumbing — Twilio gives you primitives, not policy
|
||||
- Marketing UI for non-technical users — there isn't one
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- sms
|
||||
- emails (transactional sister product via SendGrid)
|
||||
- onboarding (post-signup SMS milestones)
|
||||
Reference in New Issue
Block a user