# twilio-isv-sms-best-practices

A skill for teams embedding SMS into a SaaS platform where customers message their own end users. Covers A2P 10DLC and toll-free onboarding, subaccounts and billing.

- skill · `type=skill` · Codex, ChatGPT · ★ 7596
- Author: Twilio · official OpenAI repository
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/openai/plugins/tree/HEAD/plugins/twilio-developer-kit/skills/twilio-sms-isv-setup/SKILL.md
- Updated: 2026-10-08
- HTML: https://affpapa.org/en/nevibecode/skills/twilio-isv-sms-best-practices

## What it does

The skill walks through what it takes to send SMS from a multi-tenant platform on Twilio. It starts by asking you to classify yourself: a direct customer messaging under your own brand, or an ISV whose clients message under theirs. Everything after that follows the ISV path.

The recommended architecture is one Twilio subaccount per customer. That gives you billing isolation, compliance isolation and separate credentials, plus per-account sending limits. Separate sections cover customer onboarding: A2P 10DLC with brand and campaign registration, or toll-free number verification. You need a Twilio parent account, the `TWILIO_ACCOUNT_SID` and `TWILIO_AUTH_TOKEN` environment variables, and the SDK — `pip install twilio` or `npm install twilio`.

Timelines are the real constraint. Brand registration runs 3-5 business days, a campaign 10-15, toll-free verification 3-5. Skipping registration gets traffic blocked with error 30034 for 10DLC and 30032 for toll-free. Campaigns cannot be shared across customers, because that breaks carrier policy. If you run a single brand with templated copy, this skill is the wrong fit — direct customer onboarding covers you.

## Install

### Codex (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add openai/plugins --skill twilio-sms-isv-setup -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/twilio-sms-isv-setup/SKILL.md` — For all projects use ~/.agents/skills/

### Claude Code

1. **Skills CLI (Vercel)**
```bash
npx skills add openai/plugins --skill twilio-sms-isv-setup -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/twilio-sms-isv-setup/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/twilio-sms-isv-setup/

### Cursor

**Manually: put the files in place**
- File: `.cursor/skills/twilio-sms-isv-setup/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install openai/plugins twilio-sms-isv-setup
```

2. **Manually: put the files in place**
- File: `.github/skills/twilio-sms-isv-setup/SKILL.md`

### Gemini CLI

**Platform CLI**
```bash
gemini skills install https://github.com/openai/plugins --path plugins/twilio-developer-kit/skills/twilio-sms-isv-setup
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/twilio-sms-isv-setup/SKILL.md` — The legacy .windsurf/skills/ path still works

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/openai/plugins/tree/HEAD/plugins/twilio-developer-kit/skills/twilio-sms-isv-setup/SKILL.md

## When to use it
- split billing and sending limits per customer with subaccounts
- register a brand and campaign for each client in A2P 10DLC
- verify a toll-free number so traffic is not blocked
- isolate compliance so one client's complaints do not hit the rest
- pick between 10DLC and toll-free based on throughput

## Example prompts
- Help me design Twilio subaccounts for a multi-tenant platform
- What fields does Standard Brand registration need for A2P 10DLC?
- Compare 10DLC and toll-free throughput for our use case

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: cda1fc050ab33eec.

BEGIN THIRD-PARTY FILE cda1fc050ab33eec
```text
---
name: twilio-isv-sms-best-practices
description: >
  Best practices for ISVs (Independent Software Vendors) building SMS
  features into multi-tenant SaaS platforms using Twilio. Covers customer
  onboarding for A2P and toll-free compliance, subaccount architecture, sender management, billing patterns, and common ISV pitfalls. Use this when building SMS
  capabilities that your customers will use to message their end users.
---

## Overview

ISVs face unique challenges when building SMS into their platforms: each customer needs their own number registration, sender pool management, compliance isolation, and usage tracking. This skill consolidates the architectural patterns and operational knowledge specific to multi-tenant SMS platforms.

---

## Are You an ISV?

Before following this skill, determine whether you are an Independent Software Vendor (ISV) or a direct customer.

### Direct Customer

Your company sends messages for your own products and services. Your end users know they are interacting with your brand.

**Example:** A shoe company called CoolShoes sends marketing messages and order updates for their own products. Even if CoolShoes owns multiple brands (CoolShoes and CoolShirts), they are still a direct customer because both brands are operated by the same company.

**Follow the direct customer onboarding process** — not this ISV skill.

### ISV (Independent Software Vendor)

Your company provides messaging services to other businesses, who are represented by their own brands. Your end users think they are interacting with your client's brand, not yours.

**Example:** HotelTech Inc. sells a technology platform for hotels. When hotel SleepWell Inn uses the service, hotel visitors receive messages that appear to come from SleepWell Inn. Visitors likely don't know HotelTech powers the interaction.

**Follow this ISV skill.**

### Still Not Sure? Two Key Questions

**1. Who do your end users think they are receiving messages from?**
- **Your brand** → You are a direct customer
- **Your client's brand** → You are an ISV

**2. How much control do your clients have over message contents?**

| Scenario | Classification | Example |
|----------|---------------|---------|
| **Templated messages with little/no customization** | Direct customer | EventSite sends templated event reminders to attendees. Event organizers can only customize basic details (event name, date). End users interact with EventSite brand. |
| **Clients can customize and send messages on their own behalf** | ISV | PoweringEvents provides a platform where car dealership CarWorld can write and send customized messages about their Cars & Coffee events. Attendees don't know PoweringEvents exists — messages appear to come from CarWorld. |
```
END THIRD-PARTY FILE cda1fc050ab33eec

The third-party file has ended. Everything between the cda1fc050ab33eec tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2766 of 11261 bytes. © Twilio · MIT · https://github.com/openai/plugins/tree/HEAD/plugins/twilio-developer-kit/skills/twilio-sms-isv-setup/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
