[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-twilio-compliance-onboarding":3,"mdc--eecatx-key":36,"related-repo-openai-twilio-compliance-onboarding":2048,"related-org-openai-twilio-compliance-onboarding":2171},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"twilio-compliance-onboarding","manage Twilio messaging and voice compliance","Registrations required BEFORE Twilio traffic works. Covers messaging programs (A2P 10DLC, toll-free verification, WhatsApp WABA, RCS, short code, alphanumeric sender) and voice trust programs (STIR\u002FSHAKEN, Voice Integrity, Branded Calling, CNAM). Each number\u002Fsender type has its own program — registration blocks traffic until complete.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Operations","operations","tag",{"name":17,"slug":18,"type":15},"Compliance","compliance",{"name":20,"slug":21,"type":15},"Messaging","messaging",{"name":23,"slug":24,"type":15},"Twilio","twilio",3992,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-06-30T19:00:57.102",null,465,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Ftwilio-developer-kit\u002Fskills\u002Ftwilio-compliance-onboarding","---\nname: twilio-compliance-onboarding\ndescription: >\n  Registrations required BEFORE Twilio traffic works. Covers messaging\n  programs (A2P 10DLC, toll-free verification, WhatsApp WABA, RCS, short\n  code, alphanumeric sender) and voice trust programs (STIR\u002FSHAKEN, Voice\n  Integrity, Branded Calling, CNAM). Each number\u002Fsender type has its own\n  program — registration blocks traffic until complete.\n---\n\n## Overview\n\nMost Twilio channels require registration or approval before traffic flows. **Skipping this step is the #1 onboarding mistake** — developers build first, then discover messages are blocked or calls labeled as spam.\n\n**Lifecycle:** Choose numbers\u002Fsenders (`twilio-numbers-senders`) → Register them (this skill) → Follow traffic rules (`twilio-compliance-traffic`)\n\n---\n\n## Decision Tree: What Do I Need to Register?\n\n### Messaging Programs\n\n| Sender type | Registration program | Timeline | Docs |\n|-------------|---------------------|----------|------|\n| US local (10DLC) | **A2P 10DLC** — brand + campaign | Brand: minutes. Campaign: 10-15 business days | [Overview](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fmessaging\u002Fcompliance\u002Fa2p-10dlc) \\| [Quickstart](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fmessaging\u002Fcompliance\u002Fa2p-10dlc\u002Fquickstart) |\n| US toll-free | **Toll-free verification** | 3-5 business days | [Console onboarding](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fmessaging\u002Fcompliance\u002Ftoll-free\u002Fconsole-onboarding) \\| [Requirements](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F5377174717595-Toll-Free-Message-Verification-for-US-Canada) |\n| US short code | **Pre-approved at purchase** | 8-12 weeks provisioning | [Guidelines by country](https:\u002F\u002Fwww.twilio.com\u002Fen-us\u002Fguidelines\u002Fshort-code) \\| [What is a short code?](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F223182068-What-is-a-Messaging-Short-Code-) |\n| WhatsApp | **WABA + Meta Business Verification** | Minutes (sender) + weeks (Meta verification) | [Self sign-up](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fwhatsapp\u002Fself-sign-up) \\| [Getting started](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F360007721954-Getting-Started-with-Twilio-for-WhatsApp) |\n| RCS | **Google + carrier approval** | 4-6 weeks minimum, longer multi-region | [RCS onboarding](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Frcs\u002Fonboarding) \\| [Compliance guide](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F49174994355355-RCS-Compliance-Onboarding-Guide) |\n| Alpha Sender ID | **Registration in some countries** | Varies by country | [How to register](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F20153208099611-How-to-Register-an-Alphanumeric-Sender-ID) |\n| International numbers | **Regulatory bundle** (many countries) | Varies | [Getting started](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fphone-numbers\u002Fregulatory\u002Fgetting-started) \\| [How to submit](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F8338625205147-How-to-Submit-a-Regulatory-Bundle-for-Phone-Number-Regulatory-Compliance) |\n| Twilio Verify | **Exempt** — no registration needed | Immediate | — |\n\n### Voice Trust Programs\n\n| Program | What it does | Vetting timeline | Docs |\n|---------|-------------|-----------------|------|\n| **STIR\u002FSHAKEN** | Level A attestation = trusted caller ID | 24hr (Business Profile) + 72hr (Trust Product) | [Overview](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Ftrusted-calling-with-shakenstir) \\| [Onboarding](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Ftrusted-calling-with-shakenstir\u002Fshakenstir-onboarding) |\n| **Voice Integrity** | Registers numbers with carriers to remediate spam labels | 24-48hr (profile) + 24-48hr (remediation) | [Overview](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Fspam-monitoring-with-voiceintegrity) \\| [Onboarding](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Fspam-monitoring-with-voiceintegrity\u002Fvoice-integrity-onboarding) |\n| **Branded Calling (US)** | Verified name + logo on mobile caller ID | Public Beta (T-Mobile, Verizon) | [Overview](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Fbranded-calling) \\| [FAQ](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F22312096414363-Branded-Calls-FAQ) |\n| **Branded Calling (Non-US)** | Verified caller ID branding for international numbers | Availability varies by country\u002Fcarrier | [Overview](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Fbranded-calling) |\n| **CNAM** | Business name on outbound caller ID | 48-72hr propagation | [Overview](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Fbrand-your-calls-using-cnam) \\| [Getting started](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F360051670533-Getting-Started-with-CNAM-Caller-ID) |\n\n**Voice trust priority:** STIR\u002FSHAKEN first (required for Level A attestation) → Voice Integrity (spam label remediation) → Branded Calling (mobile only, beta) → CNAM (simplest, lowest impact). All voice programs require an approved Trust Hub Business Profile as prerequisite.\n\n---\n\n## A2P 10DLC — Deep Dive\n\nA2P 10DLC is the most common program and the most common source of onboarding delays.\n\n### Registration Flow\n\n1. **Create Customer Profile** — Business identity in Trust Hub (required for all programs)\n2. **Register Brand** — EIN, business name, address, website. TCR typically approves within minutes. Respond to OTP verification within 24 hours. [Brand best practices](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F4405758341659-A2P-10DLC-Brand-Approval-Best-Practices)\n3. **Register Campaign** — Use case, 2+ sample messages, opt-in proof, privacy policy. Review takes 10-15 business days. [Campaign best practices](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F11847054539547-A2P-10DLC-Campaign-Approval-Best-Practices)\n4. **Associate phone numbers** — Link numbers to campaign via Messaging Service\n\n### Message Flow (Opt-In Documentation)\n\nThe message flow field is the #1 reason campaigns get rejected. Reviewers click your links and follow your opt-in steps. If submitting via API, the field must be 40–2049 characters.\n\n**4 required elements:**\n1. Description of opt-in method(s) with clear language inviting users to sign up (no pre-checked boxes)\n2. Message frequency (e.g., \"Up to 4 msgs\u002Fmonth\")\n3. \"Message and data rates may apply\" disclosure\n4. Link(s) to opt-in image\u002Fmockup (must be publicly accessible)\n\n**Example of a strong message flow:**\n> \"Customers opt in by texting JOIN to 55555, or by checking the SMS opt-in box during checkout at shop.acme.com. The checkout page displays: 'Check this box to receive exclusive deals via text. Up to 4 msgs\u002Fmonth. Message and data rates may apply. Reply STOP to opt out. Reply HELP for help. Privacy Policy: acme.com\u002Fprivacy. Terms: acme.com\u002Ftc.' In-store signage also promotes keyword opt-in with full disclosures. Screenshot of signage: [Google Drive link]\"\n\n**How to document opt-in by scenario:**\n| Scenario | What to provide |\n|----------|----------------|\n| Public website form | URL to your sign-up page |\n| Form behind login\u002Fpaywall | Screenshot uploaded to Google Drive\u002FOneDrive (set to \"anyone with link\"), include public link |\n| Verbal\u002Fphone opt-in | Full script of what you say and how customer confirms consent |\n| Paper form | Scan\u002Fphotograph the form, upload publicly, include link |\n| Text keyword campaign | Screenshot of marketing materials showing keyword, upload publicly |\n\n**All links must be publicly accessible.** Non-English disclosures need a translated version included.\n\n### Consent Requirements\n\nThree tiers of consent (CTIA guidelines):\n\n| Tier | Required for | How to obtain |\n|------|-------------|---------------|\n| **Implied consent** | Transactional messages (order confirmations, account alerts) | Customer provides phone number during a transaction |\n| **Express consent** | Informational messages (appointment reminders, service updates) | Customer actively opts in (checkbox, keyword, form) |\n| **Express written consent** | Marketing\u002Fpromotional messages | Signed consent with brand name, message frequency, \"Msg & data rates apply,\" opt-out instructions |\n\n**Critical rules:**\n- Consent is per-campaign. Signing up for order updates does NOT grant consent for promotions. Separate opt-ins required.\n- Consent must be voluntary. If customers must opt in to messaging to complete a purchase or create an account, the registration **will be rejected**.\n- Brand name must appear in the consent disclosure — generic \"you agree to receive texts\" is insufficient.\n\n### Privacy Policy & Terms and Conditions\n\nBoth are required. Registrations without them are rejected.\n\n**Privacy policy must include:**\n- What data you collect and how it's used\n- That mobile information will NOT be shared with third parties for marketing (CTIA requirement)\n\n**Terms and conditions must include:**\n- Program\u002Fbrand name and description\n- \"Message and data rates may apply\"\n- Message frequency or recurring message disclosure\n- Customer support contact information\n- **HELP and STOP opt-out instructions (displayed in bold)**\n- Link to privacy policy\n- \"Carriers are not liable for any delayed or undelivered messages\"\n\n**Pro tip:** Create messaging-specific privacy policies and terms rather than updating your main company documents. Dedicated policies are easier to keep current if requirements change.\n\n### Mixed Use Case Campaigns\n\nIf you send both marketing and transactional messages (e.g., order confirmations AND promotions), use the **Mixed** campaign use case:\n\n- Select \"Mixed\" as the campaign use case during registration\n- Allows 2-5 sub-use cases within one campaign (e.g., Customer Care, Marketing, Account Notification, 2FA, PSA)\n- Describe each sub-use case clearly in the campaign description\n- Sample messages must cover each declared sub-use case\n\n**Do NOT register separate campaigns** for each message type unless they use different phone numbers or have different opt-in flows. Mixed is the intended solution for multi-purpose messaging from the same sender.\n\n### Campaign Rejection Gotchas\n\n| Field | Common mistake | Correct approach |\n|-------|---------------|-----------------|\n| Campaign description | Vague (\"We send texts\") | Specific (\"Order confirmation and shipping updates for e-commerce purchases\") |\n| Sample messages | Don't match description or missing opt-out | Must reflect declared use case + include opt-out in every sample |\n| Opt-in description | \"Users sign up on our website\" | \"Users check SMS consent checkbox during account registration at checkout.example.com\" with link to screenshot |\n| URL shorteners | Using bit.ly links | Public URL shorteners are forbidden — use branded\u002Fvanity domains |\n| Privacy policy | States data IS shared | Must state data is NOT shared with third parties |\n| Links | Behind login or not accessible | All links must be publicly accessible to reviewers |\n| Consent | Single opt-in covering all message types | Each sub-use case in a Mixed campaign still needs its own documented opt-in method |\n| Mixed campaign | Leaving sub-use cases undescribed | Each sub-use case must be explained in description |\n\nFailed campaigns can now be edited directly in Console (API editing is private beta).\n\n### Registration Tiers\n\n| Tier | Daily segment limit (T-Mobile) | Notes |\n|------|-------------------------------|-------|\n| Sole Proprietor | ~1,000\u002Fday | Console only, 1 campaign, 1 number |\n| Low-Volume Standard | ~2,000\u002Fday | Requires EIN |\n| Standard | 2,000+ (scales with Trust Score) | Requires verified EIN |\n| High-volume (secondary vetting) | 200,000+\u002Fday | [Secondary vetting](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F4403988619163-Secondary-Vetting-for-A2P-10DLC) |\n\nRussell 3000 companies qualify for 200,000 segments\u002Fday automatically.\n\n### Common Errors\n\n| Error | Meaning | Fix |\n|-------|---------|-----|\n| `30034` | Message from unregistered number | Complete A2P registration |\n| `30007` | Message filtered as spam | Check opt-in compliance and content |\n| Brand rejected | Business info doesn't match EIN records | Tax ID and business name must match exactly |\n\n---\n\n## Toll-Free Verification\n\nRequired for US\u002FCanada toll-free SMS. Simpler than A2P 10DLC.\n\n- Submit via Console (Active Numbers → Regulatory Information tab) or [API](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fmessaging\u002Fcompliance\u002Ftoll-free\u002Fapi-onboarding)\n- Requires: paid account, Customer Profile, business name, website, use case description, sample message, opt-in type\n- **Unverified toll-free numbers cannot send SMS to US\u002FCanada** — status shows \"Restricted\"\n- If rejected: resubmit within 7 days for priority review. After 7 days, number reverts to Restricted and resubmission goes to back of queue\n- ISVs must have an approved Primary Business Profile before submitting for secondary customers\n- 527 political organizations require Campaign Verify tokens before Console submission\n- Don't use multiple toll-free numbers for the same use case (\"snowshoeing\")\n\n**Docs:** [Console onboarding](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fmessaging\u002Fcompliance\u002Ftoll-free\u002Fconsole-onboarding) | [Why rejected?](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F9321443984155-Why-Was-My-Toll-Free-Verification-Rejected-)\n\n---\n\n## WhatsApp WABA Registration\n\n### Self-Signup Flow (Direct Customers)\n\n1. Console → Messaging → Senders → WhatsApp Senders → \"Create new sender\"\n2. Select phone number (Twilio or non-Twilio — must not already be registered with WhatsApp)\n3. Click \"Continue with Facebook\" → Meta Embedded Signup popup\n4. Create or select Meta Business Portfolio\n5. Create or select WABA (all senders on same Twilio account must share one WABA)\n6. Set display name, category, description — Meta reviews display name post-registration\n7. Phone verification via OTP (SMS or voice)\n8. Registration completes within minutes\n\n### Post-Registration Requirements\n\n- **Meta Business Verification required** before production messaging — can take several weeks\n- If display name rejected by Meta, messaging is limited to 250 messages\u002F24 hours\n- Outbound messages require pre-approved **Message Templates** (submitted to Meta, 24-48hr approval)\n- Free-form messages only within 24-hour service window after customer initiates\n\n### ISV Path\n\nEnroll in Meta's **Tech Provider Program** to onboard customers. Different flow from self-signup.\n\n**Docs:** [Self sign-up](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fwhatsapp\u002Fself-sign-up) | [WhatsApp hub](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fwhatsapp)\n\n---\n\n## RCS Onboarding\n\n4-6 weeks minimum. RCS has a detailed 7-part compliance process covering sender profile, privacy\u002FToS, eligibility, campaign details, opt-in\u002Fconsent, sample messages, and common rejection reasons.\n\n**See `twilio-rcs-messaging` for the full onboarding guide, sending patterns, and device support.**\n\nQuick summary: Create RCS Sender in Console → complete compliance submission → Twilio specialist reviews → Google + carrier approval → add to Messaging Service → go live.\n\n**Docs:** [RCS onboarding](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Frcs\u002Fonboarding) | [Compliance guide](https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F49174994355355-RCS-Compliance-Onboarding-Guide) | [Regional availability](https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Frcs\u002Fregional)\n\n---\n\n## CANNOT\n\n- **Cannot skip A2P registration for US 10DLC** — Mandatory for all senders, no exceptions for small volume\n- **Cannot register Sole Proprietor A2P via API** — Console only\n- **Cannot combine unrelated use cases without Mixed campaign** — Use the \"Mixed\" use case category to register 2-5 sub-use cases under one campaign\n- **Cannot require A2P registration for Verify traffic** — Twilio Verify is exempt from A2P registration\n- **Cannot use voice trust programs without Trust Hub** — All voice programs require an approved Trust Hub Primary Customer Profile\n- **Cannot use Branded Calling on landlines** — Mobile-only. US: Public Beta (T-Mobile, Verizon). Non-US: availability varies by country and carrier — check eligibility for your specific numbers. Use CNAM for landlines.\n\n---\n\n## Next Steps\n\n- **Channel overview and onboarding guide:** `twilio-messaging-overview`\n- **Choose the right number type first:** `twilio-numbers-senders`\n- **Follow traffic rules after registration:** `twilio-compliance-traffic`\n- **Set up Messaging Services for number pools:** `twilio-messaging-services`\n- **Send SMS after registration:** `twilio-sms-send-message`\n- **Secure your account:** `twilio-security-hardening`\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,50,64,91,95,101,108,444,450,660,670,673,679,684,690,749,755,760,768,791,799,816,824,911,921,927,932,1022,1030,1056,1062,1067,1075,1088,1096,1137,1147,1153,1165,1188,1198,1204,1375,1380,1386,1489,1494,1500,1589,1592,1598,1603,1653,1676,1679,1685,1691,1734,1740,1775,1781,1793,1814,1817,1823,1828,1844,1849,1876,1879,1885,1948,1951,1957],{"type":42,"tag":43,"props":44,"children":46},"element","h2",{"id":45},"overview",[47],{"type":48,"value":49},"text","Overview",{"type":42,"tag":51,"props":52,"children":53},"p",{},[54,56,62],{"type":48,"value":55},"Most Twilio channels require registration or approval before traffic flows. ",{"type":42,"tag":57,"props":58,"children":59},"strong",{},[60],{"type":48,"value":61},"Skipping this step is the #1 onboarding mistake",{"type":48,"value":63}," — developers build first, then discover messages are blocked or calls labeled as spam.",{"type":42,"tag":51,"props":65,"children":66},{},[67,72,74,81,83,89],{"type":42,"tag":57,"props":68,"children":69},{},[70],{"type":48,"value":71},"Lifecycle:",{"type":48,"value":73}," Choose numbers\u002Fsenders (",{"type":42,"tag":75,"props":76,"children":78},"code",{"className":77},[],[79],{"type":48,"value":80},"twilio-numbers-senders",{"type":48,"value":82},") → Register them (this skill) → Follow traffic rules (",{"type":42,"tag":75,"props":84,"children":86},{"className":85},[],[87],{"type":48,"value":88},"twilio-compliance-traffic",{"type":48,"value":90},")",{"type":42,"tag":92,"props":93,"children":94},"hr",{},[],{"type":42,"tag":43,"props":96,"children":98},{"id":97},"decision-tree-what-do-i-need-to-register",[99],{"type":48,"value":100},"Decision Tree: What Do I Need to Register?",{"type":42,"tag":102,"props":103,"children":105},"h3",{"id":104},"messaging-programs",[106],{"type":48,"value":107},"Messaging Programs",{"type":42,"tag":109,"props":110,"children":111},"table",{},[112,141],{"type":42,"tag":113,"props":114,"children":115},"thead",{},[116],{"type":42,"tag":117,"props":118,"children":119},"tr",{},[120,126,131,136],{"type":42,"tag":121,"props":122,"children":123},"th",{},[124],{"type":48,"value":125},"Sender type",{"type":42,"tag":121,"props":127,"children":128},{},[129],{"type":48,"value":130},"Registration program",{"type":42,"tag":121,"props":132,"children":133},{},[134],{"type":48,"value":135},"Timeline",{"type":42,"tag":121,"props":137,"children":138},{},[139],{"type":48,"value":140},"Docs",{"type":42,"tag":142,"props":143,"children":144},"tbody",{},[145,189,228,267,306,345,376,416],{"type":42,"tag":117,"props":146,"children":147},{},[148,154,164,169],{"type":42,"tag":149,"props":150,"children":151},"td",{},[152],{"type":48,"value":153},"US local (10DLC)",{"type":42,"tag":149,"props":155,"children":156},{},[157,162],{"type":42,"tag":57,"props":158,"children":159},{},[160],{"type":48,"value":161},"A2P 10DLC",{"type":48,"value":163}," — brand + campaign",{"type":42,"tag":149,"props":165,"children":166},{},[167],{"type":48,"value":168},"Brand: minutes. Campaign: 10-15 business days",{"type":42,"tag":149,"props":170,"children":171},{},[172,180,182],{"type":42,"tag":173,"props":174,"children":178},"a",{"href":175,"rel":176},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fmessaging\u002Fcompliance\u002Fa2p-10dlc",[177],"nofollow",[179],{"type":48,"value":49},{"type":48,"value":181}," | ",{"type":42,"tag":173,"props":183,"children":186},{"href":184,"rel":185},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fmessaging\u002Fcompliance\u002Fa2p-10dlc\u002Fquickstart",[177],[187],{"type":48,"value":188},"Quickstart",{"type":42,"tag":117,"props":190,"children":191},{},[192,197,205,210],{"type":42,"tag":149,"props":193,"children":194},{},[195],{"type":48,"value":196},"US toll-free",{"type":42,"tag":149,"props":198,"children":199},{},[200],{"type":42,"tag":57,"props":201,"children":202},{},[203],{"type":48,"value":204},"Toll-free verification",{"type":42,"tag":149,"props":206,"children":207},{},[208],{"type":48,"value":209},"3-5 business days",{"type":42,"tag":149,"props":211,"children":212},{},[213,220,221],{"type":42,"tag":173,"props":214,"children":217},{"href":215,"rel":216},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fmessaging\u002Fcompliance\u002Ftoll-free\u002Fconsole-onboarding",[177],[218],{"type":48,"value":219},"Console onboarding",{"type":48,"value":181},{"type":42,"tag":173,"props":222,"children":225},{"href":223,"rel":224},"https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F5377174717595-Toll-Free-Message-Verification-for-US-Canada",[177],[226],{"type":48,"value":227},"Requirements",{"type":42,"tag":117,"props":229,"children":230},{},[231,236,244,249],{"type":42,"tag":149,"props":232,"children":233},{},[234],{"type":48,"value":235},"US short code",{"type":42,"tag":149,"props":237,"children":238},{},[239],{"type":42,"tag":57,"props":240,"children":241},{},[242],{"type":48,"value":243},"Pre-approved at purchase",{"type":42,"tag":149,"props":245,"children":246},{},[247],{"type":48,"value":248},"8-12 weeks provisioning",{"type":42,"tag":149,"props":250,"children":251},{},[252,259,260],{"type":42,"tag":173,"props":253,"children":256},{"href":254,"rel":255},"https:\u002F\u002Fwww.twilio.com\u002Fen-us\u002Fguidelines\u002Fshort-code",[177],[257],{"type":48,"value":258},"Guidelines by country",{"type":48,"value":181},{"type":42,"tag":173,"props":261,"children":264},{"href":262,"rel":263},"https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F223182068-What-is-a-Messaging-Short-Code-",[177],[265],{"type":48,"value":266},"What is a short code?",{"type":42,"tag":117,"props":268,"children":269},{},[270,275,283,288],{"type":42,"tag":149,"props":271,"children":272},{},[273],{"type":48,"value":274},"WhatsApp",{"type":42,"tag":149,"props":276,"children":277},{},[278],{"type":42,"tag":57,"props":279,"children":280},{},[281],{"type":48,"value":282},"WABA + Meta Business Verification",{"type":42,"tag":149,"props":284,"children":285},{},[286],{"type":48,"value":287},"Minutes (sender) + weeks (Meta verification)",{"type":42,"tag":149,"props":289,"children":290},{},[291,298,299],{"type":42,"tag":173,"props":292,"children":295},{"href":293,"rel":294},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fwhatsapp\u002Fself-sign-up",[177],[296],{"type":48,"value":297},"Self sign-up",{"type":48,"value":181},{"type":42,"tag":173,"props":300,"children":303},{"href":301,"rel":302},"https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F360007721954-Getting-Started-with-Twilio-for-WhatsApp",[177],[304],{"type":48,"value":305},"Getting started",{"type":42,"tag":117,"props":307,"children":308},{},[309,314,322,327],{"type":42,"tag":149,"props":310,"children":311},{},[312],{"type":48,"value":313},"RCS",{"type":42,"tag":149,"props":315,"children":316},{},[317],{"type":42,"tag":57,"props":318,"children":319},{},[320],{"type":48,"value":321},"Google + carrier approval",{"type":42,"tag":149,"props":323,"children":324},{},[325],{"type":48,"value":326},"4-6 weeks minimum, longer multi-region",{"type":42,"tag":149,"props":328,"children":329},{},[330,337,338],{"type":42,"tag":173,"props":331,"children":334},{"href":332,"rel":333},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Frcs\u002Fonboarding",[177],[335],{"type":48,"value":336},"RCS onboarding",{"type":48,"value":181},{"type":42,"tag":173,"props":339,"children":342},{"href":340,"rel":341},"https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F49174994355355-RCS-Compliance-Onboarding-Guide",[177],[343],{"type":48,"value":344},"Compliance guide",{"type":42,"tag":117,"props":346,"children":347},{},[348,353,361,366],{"type":42,"tag":149,"props":349,"children":350},{},[351],{"type":48,"value":352},"Alpha Sender ID",{"type":42,"tag":149,"props":354,"children":355},{},[356],{"type":42,"tag":57,"props":357,"children":358},{},[359],{"type":48,"value":360},"Registration in some countries",{"type":42,"tag":149,"props":362,"children":363},{},[364],{"type":48,"value":365},"Varies by country",{"type":42,"tag":149,"props":367,"children":368},{},[369],{"type":42,"tag":173,"props":370,"children":373},{"href":371,"rel":372},"https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F20153208099611-How-to-Register-an-Alphanumeric-Sender-ID",[177],[374],{"type":48,"value":375},"How to register",{"type":42,"tag":117,"props":377,"children":378},{},[379,384,394,399],{"type":42,"tag":149,"props":380,"children":381},{},[382],{"type":48,"value":383},"International numbers",{"type":42,"tag":149,"props":385,"children":386},{},[387,392],{"type":42,"tag":57,"props":388,"children":389},{},[390],{"type":48,"value":391},"Regulatory bundle",{"type":48,"value":393}," (many countries)",{"type":42,"tag":149,"props":395,"children":396},{},[397],{"type":48,"value":398},"Varies",{"type":42,"tag":149,"props":400,"children":401},{},[402,408,409],{"type":42,"tag":173,"props":403,"children":406},{"href":404,"rel":405},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fphone-numbers\u002Fregulatory\u002Fgetting-started",[177],[407],{"type":48,"value":305},{"type":48,"value":181},{"type":42,"tag":173,"props":410,"children":413},{"href":411,"rel":412},"https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F8338625205147-How-to-Submit-a-Regulatory-Bundle-for-Phone-Number-Regulatory-Compliance",[177],[414],{"type":48,"value":415},"How to submit",{"type":42,"tag":117,"props":417,"children":418},{},[419,424,434,439],{"type":42,"tag":149,"props":420,"children":421},{},[422],{"type":48,"value":423},"Twilio Verify",{"type":42,"tag":149,"props":425,"children":426},{},[427,432],{"type":42,"tag":57,"props":428,"children":429},{},[430],{"type":48,"value":431},"Exempt",{"type":48,"value":433}," — no registration needed",{"type":42,"tag":149,"props":435,"children":436},{},[437],{"type":48,"value":438},"Immediate",{"type":42,"tag":149,"props":440,"children":441},{},[442],{"type":48,"value":443},"—",{"type":42,"tag":102,"props":445,"children":447},{"id":446},"voice-trust-programs",[448],{"type":48,"value":449},"Voice Trust Programs",{"type":42,"tag":109,"props":451,"children":452},{},[453,478],{"type":42,"tag":113,"props":454,"children":455},{},[456],{"type":42,"tag":117,"props":457,"children":458},{},[459,464,469,474],{"type":42,"tag":121,"props":460,"children":461},{},[462],{"type":48,"value":463},"Program",{"type":42,"tag":121,"props":465,"children":466},{},[467],{"type":48,"value":468},"What it does",{"type":42,"tag":121,"props":470,"children":471},{},[472],{"type":48,"value":473},"Vetting timeline",{"type":42,"tag":121,"props":475,"children":476},{},[477],{"type":48,"value":140},{"type":42,"tag":142,"props":479,"children":480},{},[481,519,556,594,623],{"type":42,"tag":117,"props":482,"children":483},{},[484,492,497,502],{"type":42,"tag":149,"props":485,"children":486},{},[487],{"type":42,"tag":57,"props":488,"children":489},{},[490],{"type":48,"value":491},"STIR\u002FSHAKEN",{"type":42,"tag":149,"props":493,"children":494},{},[495],{"type":48,"value":496},"Level A attestation = trusted caller ID",{"type":42,"tag":149,"props":498,"children":499},{},[500],{"type":48,"value":501},"24hr (Business Profile) + 72hr (Trust Product)",{"type":42,"tag":149,"props":503,"children":504},{},[505,511,512],{"type":42,"tag":173,"props":506,"children":509},{"href":507,"rel":508},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Ftrusted-calling-with-shakenstir",[177],[510],{"type":48,"value":49},{"type":48,"value":181},{"type":42,"tag":173,"props":513,"children":516},{"href":514,"rel":515},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Ftrusted-calling-with-shakenstir\u002Fshakenstir-onboarding",[177],[517],{"type":48,"value":518},"Onboarding",{"type":42,"tag":117,"props":520,"children":521},{},[522,530,535,540],{"type":42,"tag":149,"props":523,"children":524},{},[525],{"type":42,"tag":57,"props":526,"children":527},{},[528],{"type":48,"value":529},"Voice Integrity",{"type":42,"tag":149,"props":531,"children":532},{},[533],{"type":48,"value":534},"Registers numbers with carriers to remediate spam labels",{"type":42,"tag":149,"props":536,"children":537},{},[538],{"type":48,"value":539},"24-48hr (profile) + 24-48hr (remediation)",{"type":42,"tag":149,"props":541,"children":542},{},[543,549,550],{"type":42,"tag":173,"props":544,"children":547},{"href":545,"rel":546},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Fspam-monitoring-with-voiceintegrity",[177],[548],{"type":48,"value":49},{"type":48,"value":181},{"type":42,"tag":173,"props":551,"children":554},{"href":552,"rel":553},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Fspam-monitoring-with-voiceintegrity\u002Fvoice-integrity-onboarding",[177],[555],{"type":48,"value":518},{"type":42,"tag":117,"props":557,"children":558},{},[559,567,572,577],{"type":42,"tag":149,"props":560,"children":561},{},[562],{"type":42,"tag":57,"props":563,"children":564},{},[565],{"type":48,"value":566},"Branded Calling (US)",{"type":42,"tag":149,"props":568,"children":569},{},[570],{"type":48,"value":571},"Verified name + logo on mobile caller ID",{"type":42,"tag":149,"props":573,"children":574},{},[575],{"type":48,"value":576},"Public Beta (T-Mobile, Verizon)",{"type":42,"tag":149,"props":578,"children":579},{},[580,586,587],{"type":42,"tag":173,"props":581,"children":584},{"href":582,"rel":583},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Fbranded-calling",[177],[585],{"type":48,"value":49},{"type":48,"value":181},{"type":42,"tag":173,"props":588,"children":591},{"href":589,"rel":590},"https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F22312096414363-Branded-Calls-FAQ",[177],[592],{"type":48,"value":593},"FAQ",{"type":42,"tag":117,"props":595,"children":596},{},[597,605,610,615],{"type":42,"tag":149,"props":598,"children":599},{},[600],{"type":42,"tag":57,"props":601,"children":602},{},[603],{"type":48,"value":604},"Branded Calling (Non-US)",{"type":42,"tag":149,"props":606,"children":607},{},[608],{"type":48,"value":609},"Verified caller ID branding for international numbers",{"type":42,"tag":149,"props":611,"children":612},{},[613],{"type":48,"value":614},"Availability varies by country\u002Fcarrier",{"type":42,"tag":149,"props":616,"children":617},{},[618],{"type":42,"tag":173,"props":619,"children":621},{"href":582,"rel":620},[177],[622],{"type":48,"value":49},{"type":42,"tag":117,"props":624,"children":625},{},[626,634,639,644],{"type":42,"tag":149,"props":627,"children":628},{},[629],{"type":42,"tag":57,"props":630,"children":631},{},[632],{"type":48,"value":633},"CNAM",{"type":42,"tag":149,"props":635,"children":636},{},[637],{"type":48,"value":638},"Business name on outbound caller ID",{"type":42,"tag":149,"props":640,"children":641},{},[642],{"type":48,"value":643},"48-72hr propagation",{"type":42,"tag":149,"props":645,"children":646},{},[647,653,654],{"type":42,"tag":173,"props":648,"children":651},{"href":649,"rel":650},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fvoice\u002Fbrand-your-calls-using-cnam",[177],[652],{"type":48,"value":49},{"type":48,"value":181},{"type":42,"tag":173,"props":655,"children":658},{"href":656,"rel":657},"https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F360051670533-Getting-Started-with-CNAM-Caller-ID",[177],[659],{"type":48,"value":305},{"type":42,"tag":51,"props":661,"children":662},{},[663,668],{"type":42,"tag":57,"props":664,"children":665},{},[666],{"type":48,"value":667},"Voice trust priority:",{"type":48,"value":669}," STIR\u002FSHAKEN first (required for Level A attestation) → Voice Integrity (spam label remediation) → Branded Calling (mobile only, beta) → CNAM (simplest, lowest impact). All voice programs require an approved Trust Hub Business Profile as prerequisite.",{"type":42,"tag":92,"props":671,"children":672},{},[],{"type":42,"tag":43,"props":674,"children":676},{"id":675},"a2p-10dlc-deep-dive",[677],{"type":48,"value":678},"A2P 10DLC — Deep Dive",{"type":42,"tag":51,"props":680,"children":681},{},[682],{"type":48,"value":683},"A2P 10DLC is the most common program and the most common source of onboarding delays.",{"type":42,"tag":102,"props":685,"children":687},{"id":686},"registration-flow",[688],{"type":48,"value":689},"Registration Flow",{"type":42,"tag":691,"props":692,"children":693},"ol",{},[694,705,722,739],{"type":42,"tag":695,"props":696,"children":697},"li",{},[698,703],{"type":42,"tag":57,"props":699,"children":700},{},[701],{"type":48,"value":702},"Create Customer Profile",{"type":48,"value":704}," — Business identity in Trust Hub (required for all programs)",{"type":42,"tag":695,"props":706,"children":707},{},[708,713,715],{"type":42,"tag":57,"props":709,"children":710},{},[711],{"type":48,"value":712},"Register Brand",{"type":48,"value":714}," — EIN, business name, address, website. TCR typically approves within minutes. Respond to OTP verification within 24 hours. ",{"type":42,"tag":173,"props":716,"children":719},{"href":717,"rel":718},"https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F4405758341659-A2P-10DLC-Brand-Approval-Best-Practices",[177],[720],{"type":48,"value":721},"Brand best practices",{"type":42,"tag":695,"props":723,"children":724},{},[725,730,732],{"type":42,"tag":57,"props":726,"children":727},{},[728],{"type":48,"value":729},"Register Campaign",{"type":48,"value":731}," — Use case, 2+ sample messages, opt-in proof, privacy policy. Review takes 10-15 business days. ",{"type":42,"tag":173,"props":733,"children":736},{"href":734,"rel":735},"https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F11847054539547-A2P-10DLC-Campaign-Approval-Best-Practices",[177],[737],{"type":48,"value":738},"Campaign best practices",{"type":42,"tag":695,"props":740,"children":741},{},[742,747],{"type":42,"tag":57,"props":743,"children":744},{},[745],{"type":48,"value":746},"Associate phone numbers",{"type":48,"value":748}," — Link numbers to campaign via Messaging Service",{"type":42,"tag":102,"props":750,"children":752},{"id":751},"message-flow-opt-in-documentation",[753],{"type":48,"value":754},"Message Flow (Opt-In Documentation)",{"type":42,"tag":51,"props":756,"children":757},{},[758],{"type":48,"value":759},"The message flow field is the #1 reason campaigns get rejected. Reviewers click your links and follow your opt-in steps. If submitting via API, the field must be 40–2049 characters.",{"type":42,"tag":51,"props":761,"children":762},{},[763],{"type":42,"tag":57,"props":764,"children":765},{},[766],{"type":48,"value":767},"4 required elements:",{"type":42,"tag":691,"props":769,"children":770},{},[771,776,781,786],{"type":42,"tag":695,"props":772,"children":773},{},[774],{"type":48,"value":775},"Description of opt-in method(s) with clear language inviting users to sign up (no pre-checked boxes)",{"type":42,"tag":695,"props":777,"children":778},{},[779],{"type":48,"value":780},"Message frequency (e.g., \"Up to 4 msgs\u002Fmonth\")",{"type":42,"tag":695,"props":782,"children":783},{},[784],{"type":48,"value":785},"\"Message and data rates may apply\" disclosure",{"type":42,"tag":695,"props":787,"children":788},{},[789],{"type":48,"value":790},"Link(s) to opt-in image\u002Fmockup (must be publicly accessible)",{"type":42,"tag":51,"props":792,"children":793},{},[794],{"type":42,"tag":57,"props":795,"children":796},{},[797],{"type":48,"value":798},"Example of a strong message flow:",{"type":42,"tag":800,"props":801,"children":802},"blockquote",{},[803],{"type":42,"tag":51,"props":804,"children":805},{},[806,808,814],{"type":48,"value":807},"\"Customers opt in by texting JOIN to 55555, or by checking the SMS opt-in box during checkout at shop.acme.com. The checkout page displays: 'Check this box to receive exclusive deals via text. Up to 4 msgs\u002Fmonth. Message and data rates may apply. Reply STOP to opt out. Reply HELP for help. Privacy Policy: acme.com\u002Fprivacy. Terms: acme.com\u002Ftc.' In-store signage also promotes keyword opt-in with full disclosures. Screenshot of signage: ",{"type":42,"tag":809,"props":810,"children":811},"span",{},[812],{"type":48,"value":813},"Google Drive link",{"type":48,"value":815},"\"",{"type":42,"tag":51,"props":817,"children":818},{},[819],{"type":42,"tag":57,"props":820,"children":821},{},[822],{"type":48,"value":823},"How to document opt-in by scenario:",{"type":42,"tag":109,"props":825,"children":826},{},[827,843],{"type":42,"tag":113,"props":828,"children":829},{},[830],{"type":42,"tag":117,"props":831,"children":832},{},[833,838],{"type":42,"tag":121,"props":834,"children":835},{},[836],{"type":48,"value":837},"Scenario",{"type":42,"tag":121,"props":839,"children":840},{},[841],{"type":48,"value":842},"What to provide",{"type":42,"tag":142,"props":844,"children":845},{},[846,859,872,885,898],{"type":42,"tag":117,"props":847,"children":848},{},[849,854],{"type":42,"tag":149,"props":850,"children":851},{},[852],{"type":48,"value":853},"Public website form",{"type":42,"tag":149,"props":855,"children":856},{},[857],{"type":48,"value":858},"URL to your sign-up page",{"type":42,"tag":117,"props":860,"children":861},{},[862,867],{"type":42,"tag":149,"props":863,"children":864},{},[865],{"type":48,"value":866},"Form behind login\u002Fpaywall",{"type":42,"tag":149,"props":868,"children":869},{},[870],{"type":48,"value":871},"Screenshot uploaded to Google Drive\u002FOneDrive (set to \"anyone with link\"), include public link",{"type":42,"tag":117,"props":873,"children":874},{},[875,880],{"type":42,"tag":149,"props":876,"children":877},{},[878],{"type":48,"value":879},"Verbal\u002Fphone opt-in",{"type":42,"tag":149,"props":881,"children":882},{},[883],{"type":48,"value":884},"Full script of what you say and how customer confirms consent",{"type":42,"tag":117,"props":886,"children":887},{},[888,893],{"type":42,"tag":149,"props":889,"children":890},{},[891],{"type":48,"value":892},"Paper form",{"type":42,"tag":149,"props":894,"children":895},{},[896],{"type":48,"value":897},"Scan\u002Fphotograph the form, upload publicly, include link",{"type":42,"tag":117,"props":899,"children":900},{},[901,906],{"type":42,"tag":149,"props":902,"children":903},{},[904],{"type":48,"value":905},"Text keyword campaign",{"type":42,"tag":149,"props":907,"children":908},{},[909],{"type":48,"value":910},"Screenshot of marketing materials showing keyword, upload publicly",{"type":42,"tag":51,"props":912,"children":913},{},[914,919],{"type":42,"tag":57,"props":915,"children":916},{},[917],{"type":48,"value":918},"All links must be publicly accessible.",{"type":48,"value":920}," Non-English disclosures need a translated version included.",{"type":42,"tag":102,"props":922,"children":924},{"id":923},"consent-requirements",[925],{"type":48,"value":926},"Consent Requirements",{"type":42,"tag":51,"props":928,"children":929},{},[930],{"type":48,"value":931},"Three tiers of consent (CTIA guidelines):",{"type":42,"tag":109,"props":933,"children":934},{},[935,956],{"type":42,"tag":113,"props":936,"children":937},{},[938],{"type":42,"tag":117,"props":939,"children":940},{},[941,946,951],{"type":42,"tag":121,"props":942,"children":943},{},[944],{"type":48,"value":945},"Tier",{"type":42,"tag":121,"props":947,"children":948},{},[949],{"type":48,"value":950},"Required for",{"type":42,"tag":121,"props":952,"children":953},{},[954],{"type":48,"value":955},"How to obtain",{"type":42,"tag":142,"props":957,"children":958},{},[959,980,1001],{"type":42,"tag":117,"props":960,"children":961},{},[962,970,975],{"type":42,"tag":149,"props":963,"children":964},{},[965],{"type":42,"tag":57,"props":966,"children":967},{},[968],{"type":48,"value":969},"Implied consent",{"type":42,"tag":149,"props":971,"children":972},{},[973],{"type":48,"value":974},"Transactional messages (order confirmations, account alerts)",{"type":42,"tag":149,"props":976,"children":977},{},[978],{"type":48,"value":979},"Customer provides phone number during a transaction",{"type":42,"tag":117,"props":981,"children":982},{},[983,991,996],{"type":42,"tag":149,"props":984,"children":985},{},[986],{"type":42,"tag":57,"props":987,"children":988},{},[989],{"type":48,"value":990},"Express consent",{"type":42,"tag":149,"props":992,"children":993},{},[994],{"type":48,"value":995},"Informational messages (appointment reminders, service updates)",{"type":42,"tag":149,"props":997,"children":998},{},[999],{"type":48,"value":1000},"Customer actively opts in (checkbox, keyword, form)",{"type":42,"tag":117,"props":1002,"children":1003},{},[1004,1012,1017],{"type":42,"tag":149,"props":1005,"children":1006},{},[1007],{"type":42,"tag":57,"props":1008,"children":1009},{},[1010],{"type":48,"value":1011},"Express written consent",{"type":42,"tag":149,"props":1013,"children":1014},{},[1015],{"type":48,"value":1016},"Marketing\u002Fpromotional messages",{"type":42,"tag":149,"props":1018,"children":1019},{},[1020],{"type":48,"value":1021},"Signed consent with brand name, message frequency, \"Msg & data rates apply,\" opt-out instructions",{"type":42,"tag":51,"props":1023,"children":1024},{},[1025],{"type":42,"tag":57,"props":1026,"children":1027},{},[1028],{"type":48,"value":1029},"Critical rules:",{"type":42,"tag":1031,"props":1032,"children":1033},"ul",{},[1034,1039,1051],{"type":42,"tag":695,"props":1035,"children":1036},{},[1037],{"type":48,"value":1038},"Consent is per-campaign. Signing up for order updates does NOT grant consent for promotions. Separate opt-ins required.",{"type":42,"tag":695,"props":1040,"children":1041},{},[1042,1044,1049],{"type":48,"value":1043},"Consent must be voluntary. If customers must opt in to messaging to complete a purchase or create an account, the registration ",{"type":42,"tag":57,"props":1045,"children":1046},{},[1047],{"type":48,"value":1048},"will be rejected",{"type":48,"value":1050},".",{"type":42,"tag":695,"props":1052,"children":1053},{},[1054],{"type":48,"value":1055},"Brand name must appear in the consent disclosure — generic \"you agree to receive texts\" is insufficient.",{"type":42,"tag":102,"props":1057,"children":1059},{"id":1058},"privacy-policy-terms-and-conditions",[1060],{"type":48,"value":1061},"Privacy Policy & Terms and Conditions",{"type":42,"tag":51,"props":1063,"children":1064},{},[1065],{"type":48,"value":1066},"Both are required. Registrations without them are rejected.",{"type":42,"tag":51,"props":1068,"children":1069},{},[1070],{"type":42,"tag":57,"props":1071,"children":1072},{},[1073],{"type":48,"value":1074},"Privacy policy must include:",{"type":42,"tag":1031,"props":1076,"children":1077},{},[1078,1083],{"type":42,"tag":695,"props":1079,"children":1080},{},[1081],{"type":48,"value":1082},"What data you collect and how it's used",{"type":42,"tag":695,"props":1084,"children":1085},{},[1086],{"type":48,"value":1087},"That mobile information will NOT be shared with third parties for marketing (CTIA requirement)",{"type":42,"tag":51,"props":1089,"children":1090},{},[1091],{"type":42,"tag":57,"props":1092,"children":1093},{},[1094],{"type":48,"value":1095},"Terms and conditions must include:",{"type":42,"tag":1031,"props":1097,"children":1098},{},[1099,1104,1109,1114,1119,1127,1132],{"type":42,"tag":695,"props":1100,"children":1101},{},[1102],{"type":48,"value":1103},"Program\u002Fbrand name and description",{"type":42,"tag":695,"props":1105,"children":1106},{},[1107],{"type":48,"value":1108},"\"Message and data rates may apply\"",{"type":42,"tag":695,"props":1110,"children":1111},{},[1112],{"type":48,"value":1113},"Message frequency or recurring message disclosure",{"type":42,"tag":695,"props":1115,"children":1116},{},[1117],{"type":48,"value":1118},"Customer support contact information",{"type":42,"tag":695,"props":1120,"children":1121},{},[1122],{"type":42,"tag":57,"props":1123,"children":1124},{},[1125],{"type":48,"value":1126},"HELP and STOP opt-out instructions (displayed in bold)",{"type":42,"tag":695,"props":1128,"children":1129},{},[1130],{"type":48,"value":1131},"Link to privacy policy",{"type":42,"tag":695,"props":1133,"children":1134},{},[1135],{"type":48,"value":1136},"\"Carriers are not liable for any delayed or undelivered messages\"",{"type":42,"tag":51,"props":1138,"children":1139},{},[1140,1145],{"type":42,"tag":57,"props":1141,"children":1142},{},[1143],{"type":48,"value":1144},"Pro tip:",{"type":48,"value":1146}," Create messaging-specific privacy policies and terms rather than updating your main company documents. Dedicated policies are easier to keep current if requirements change.",{"type":42,"tag":102,"props":1148,"children":1150},{"id":1149},"mixed-use-case-campaigns",[1151],{"type":48,"value":1152},"Mixed Use Case Campaigns",{"type":42,"tag":51,"props":1154,"children":1155},{},[1156,1158,1163],{"type":48,"value":1157},"If you send both marketing and transactional messages (e.g., order confirmations AND promotions), use the ",{"type":42,"tag":57,"props":1159,"children":1160},{},[1161],{"type":48,"value":1162},"Mixed",{"type":48,"value":1164}," campaign use case:",{"type":42,"tag":1031,"props":1166,"children":1167},{},[1168,1173,1178,1183],{"type":42,"tag":695,"props":1169,"children":1170},{},[1171],{"type":48,"value":1172},"Select \"Mixed\" as the campaign use case during registration",{"type":42,"tag":695,"props":1174,"children":1175},{},[1176],{"type":48,"value":1177},"Allows 2-5 sub-use cases within one campaign (e.g., Customer Care, Marketing, Account Notification, 2FA, PSA)",{"type":42,"tag":695,"props":1179,"children":1180},{},[1181],{"type":48,"value":1182},"Describe each sub-use case clearly in the campaign description",{"type":42,"tag":695,"props":1184,"children":1185},{},[1186],{"type":48,"value":1187},"Sample messages must cover each declared sub-use case",{"type":42,"tag":51,"props":1189,"children":1190},{},[1191,1196],{"type":42,"tag":57,"props":1192,"children":1193},{},[1194],{"type":48,"value":1195},"Do NOT register separate campaigns",{"type":48,"value":1197}," for each message type unless they use different phone numbers or have different opt-in flows. Mixed is the intended solution for multi-purpose messaging from the same sender.",{"type":42,"tag":102,"props":1199,"children":1201},{"id":1200},"campaign-rejection-gotchas",[1202],{"type":48,"value":1203},"Campaign Rejection Gotchas",{"type":42,"tag":109,"props":1205,"children":1206},{},[1207,1228],{"type":42,"tag":113,"props":1208,"children":1209},{},[1210],{"type":42,"tag":117,"props":1211,"children":1212},{},[1213,1218,1223],{"type":42,"tag":121,"props":1214,"children":1215},{},[1216],{"type":48,"value":1217},"Field",{"type":42,"tag":121,"props":1219,"children":1220},{},[1221],{"type":48,"value":1222},"Common mistake",{"type":42,"tag":121,"props":1224,"children":1225},{},[1226],{"type":48,"value":1227},"Correct approach",{"type":42,"tag":142,"props":1229,"children":1230},{},[1231,1249,1267,1285,1303,1321,1339,1357],{"type":42,"tag":117,"props":1232,"children":1233},{},[1234,1239,1244],{"type":42,"tag":149,"props":1235,"children":1236},{},[1237],{"type":48,"value":1238},"Campaign description",{"type":42,"tag":149,"props":1240,"children":1241},{},[1242],{"type":48,"value":1243},"Vague (\"We send texts\")",{"type":42,"tag":149,"props":1245,"children":1246},{},[1247],{"type":48,"value":1248},"Specific (\"Order confirmation and shipping updates for e-commerce purchases\")",{"type":42,"tag":117,"props":1250,"children":1251},{},[1252,1257,1262],{"type":42,"tag":149,"props":1253,"children":1254},{},[1255],{"type":48,"value":1256},"Sample messages",{"type":42,"tag":149,"props":1258,"children":1259},{},[1260],{"type":48,"value":1261},"Don't match description or missing opt-out",{"type":42,"tag":149,"props":1263,"children":1264},{},[1265],{"type":48,"value":1266},"Must reflect declared use case + include opt-out in every sample",{"type":42,"tag":117,"props":1268,"children":1269},{},[1270,1275,1280],{"type":42,"tag":149,"props":1271,"children":1272},{},[1273],{"type":48,"value":1274},"Opt-in description",{"type":42,"tag":149,"props":1276,"children":1277},{},[1278],{"type":48,"value":1279},"\"Users sign up on our website\"",{"type":42,"tag":149,"props":1281,"children":1282},{},[1283],{"type":48,"value":1284},"\"Users check SMS consent checkbox during account registration at checkout.example.com\" with link to screenshot",{"type":42,"tag":117,"props":1286,"children":1287},{},[1288,1293,1298],{"type":42,"tag":149,"props":1289,"children":1290},{},[1291],{"type":48,"value":1292},"URL shorteners",{"type":42,"tag":149,"props":1294,"children":1295},{},[1296],{"type":48,"value":1297},"Using bit.ly links",{"type":42,"tag":149,"props":1299,"children":1300},{},[1301],{"type":48,"value":1302},"Public URL shorteners are forbidden — use branded\u002Fvanity domains",{"type":42,"tag":117,"props":1304,"children":1305},{},[1306,1311,1316],{"type":42,"tag":149,"props":1307,"children":1308},{},[1309],{"type":48,"value":1310},"Privacy policy",{"type":42,"tag":149,"props":1312,"children":1313},{},[1314],{"type":48,"value":1315},"States data IS shared",{"type":42,"tag":149,"props":1317,"children":1318},{},[1319],{"type":48,"value":1320},"Must state data is NOT shared with third parties",{"type":42,"tag":117,"props":1322,"children":1323},{},[1324,1329,1334],{"type":42,"tag":149,"props":1325,"children":1326},{},[1327],{"type":48,"value":1328},"Links",{"type":42,"tag":149,"props":1330,"children":1331},{},[1332],{"type":48,"value":1333},"Behind login or not accessible",{"type":42,"tag":149,"props":1335,"children":1336},{},[1337],{"type":48,"value":1338},"All links must be publicly accessible to reviewers",{"type":42,"tag":117,"props":1340,"children":1341},{},[1342,1347,1352],{"type":42,"tag":149,"props":1343,"children":1344},{},[1345],{"type":48,"value":1346},"Consent",{"type":42,"tag":149,"props":1348,"children":1349},{},[1350],{"type":48,"value":1351},"Single opt-in covering all message types",{"type":42,"tag":149,"props":1353,"children":1354},{},[1355],{"type":48,"value":1356},"Each sub-use case in a Mixed campaign still needs its own documented opt-in method",{"type":42,"tag":117,"props":1358,"children":1359},{},[1360,1365,1370],{"type":42,"tag":149,"props":1361,"children":1362},{},[1363],{"type":48,"value":1364},"Mixed campaign",{"type":42,"tag":149,"props":1366,"children":1367},{},[1368],{"type":48,"value":1369},"Leaving sub-use cases undescribed",{"type":42,"tag":149,"props":1371,"children":1372},{},[1373],{"type":48,"value":1374},"Each sub-use case must be explained in description",{"type":42,"tag":51,"props":1376,"children":1377},{},[1378],{"type":48,"value":1379},"Failed campaigns can now be edited directly in Console (API editing is private beta).",{"type":42,"tag":102,"props":1381,"children":1383},{"id":1382},"registration-tiers",[1384],{"type":48,"value":1385},"Registration Tiers",{"type":42,"tag":109,"props":1387,"children":1388},{},[1389,1409],{"type":42,"tag":113,"props":1390,"children":1391},{},[1392],{"type":42,"tag":117,"props":1393,"children":1394},{},[1395,1399,1404],{"type":42,"tag":121,"props":1396,"children":1397},{},[1398],{"type":48,"value":945},{"type":42,"tag":121,"props":1400,"children":1401},{},[1402],{"type":48,"value":1403},"Daily segment limit (T-Mobile)",{"type":42,"tag":121,"props":1405,"children":1406},{},[1407],{"type":48,"value":1408},"Notes",{"type":42,"tag":142,"props":1410,"children":1411},{},[1412,1430,1448,1466],{"type":42,"tag":117,"props":1413,"children":1414},{},[1415,1420,1425],{"type":42,"tag":149,"props":1416,"children":1417},{},[1418],{"type":48,"value":1419},"Sole Proprietor",{"type":42,"tag":149,"props":1421,"children":1422},{},[1423],{"type":48,"value":1424},"~1,000\u002Fday",{"type":42,"tag":149,"props":1426,"children":1427},{},[1428],{"type":48,"value":1429},"Console only, 1 campaign, 1 number",{"type":42,"tag":117,"props":1431,"children":1432},{},[1433,1438,1443],{"type":42,"tag":149,"props":1434,"children":1435},{},[1436],{"type":48,"value":1437},"Low-Volume Standard",{"type":42,"tag":149,"props":1439,"children":1440},{},[1441],{"type":48,"value":1442},"~2,000\u002Fday",{"type":42,"tag":149,"props":1444,"children":1445},{},[1446],{"type":48,"value":1447},"Requires EIN",{"type":42,"tag":117,"props":1449,"children":1450},{},[1451,1456,1461],{"type":42,"tag":149,"props":1452,"children":1453},{},[1454],{"type":48,"value":1455},"Standard",{"type":42,"tag":149,"props":1457,"children":1458},{},[1459],{"type":48,"value":1460},"2,000+ (scales with Trust Score)",{"type":42,"tag":149,"props":1462,"children":1463},{},[1464],{"type":48,"value":1465},"Requires verified EIN",{"type":42,"tag":117,"props":1467,"children":1468},{},[1469,1474,1479],{"type":42,"tag":149,"props":1470,"children":1471},{},[1472],{"type":48,"value":1473},"High-volume (secondary vetting)",{"type":42,"tag":149,"props":1475,"children":1476},{},[1477],{"type":48,"value":1478},"200,000+\u002Fday",{"type":42,"tag":149,"props":1480,"children":1481},{},[1482],{"type":42,"tag":173,"props":1483,"children":1486},{"href":1484,"rel":1485},"https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F4403988619163-Secondary-Vetting-for-A2P-10DLC",[177],[1487],{"type":48,"value":1488},"Secondary vetting",{"type":42,"tag":51,"props":1490,"children":1491},{},[1492],{"type":48,"value":1493},"Russell 3000 companies qualify for 200,000 segments\u002Fday automatically.",{"type":42,"tag":102,"props":1495,"children":1497},{"id":1496},"common-errors",[1498],{"type":48,"value":1499},"Common Errors",{"type":42,"tag":109,"props":1501,"children":1502},{},[1503,1524],{"type":42,"tag":113,"props":1504,"children":1505},{},[1506],{"type":42,"tag":117,"props":1507,"children":1508},{},[1509,1514,1519],{"type":42,"tag":121,"props":1510,"children":1511},{},[1512],{"type":48,"value":1513},"Error",{"type":42,"tag":121,"props":1515,"children":1516},{},[1517],{"type":48,"value":1518},"Meaning",{"type":42,"tag":121,"props":1520,"children":1521},{},[1522],{"type":48,"value":1523},"Fix",{"type":42,"tag":142,"props":1525,"children":1526},{},[1527,1549,1571],{"type":42,"tag":117,"props":1528,"children":1529},{},[1530,1539,1544],{"type":42,"tag":149,"props":1531,"children":1532},{},[1533],{"type":42,"tag":75,"props":1534,"children":1536},{"className":1535},[],[1537],{"type":48,"value":1538},"30034",{"type":42,"tag":149,"props":1540,"children":1541},{},[1542],{"type":48,"value":1543},"Message from unregistered number",{"type":42,"tag":149,"props":1545,"children":1546},{},[1547],{"type":48,"value":1548},"Complete A2P registration",{"type":42,"tag":117,"props":1550,"children":1551},{},[1552,1561,1566],{"type":42,"tag":149,"props":1553,"children":1554},{},[1555],{"type":42,"tag":75,"props":1556,"children":1558},{"className":1557},[],[1559],{"type":48,"value":1560},"30007",{"type":42,"tag":149,"props":1562,"children":1563},{},[1564],{"type":48,"value":1565},"Message filtered as spam",{"type":42,"tag":149,"props":1567,"children":1568},{},[1569],{"type":48,"value":1570},"Check opt-in compliance and content",{"type":42,"tag":117,"props":1572,"children":1573},{},[1574,1579,1584],{"type":42,"tag":149,"props":1575,"children":1576},{},[1577],{"type":48,"value":1578},"Brand rejected",{"type":42,"tag":149,"props":1580,"children":1581},{},[1582],{"type":48,"value":1583},"Business info doesn't match EIN records",{"type":42,"tag":149,"props":1585,"children":1586},{},[1587],{"type":48,"value":1588},"Tax ID and business name must match exactly",{"type":42,"tag":92,"props":1590,"children":1591},{},[],{"type":42,"tag":43,"props":1593,"children":1595},{"id":1594},"toll-free-verification",[1596],{"type":48,"value":1597},"Toll-Free Verification",{"type":42,"tag":51,"props":1599,"children":1600},{},[1601],{"type":48,"value":1602},"Required for US\u002FCanada toll-free SMS. Simpler than A2P 10DLC.",{"type":42,"tag":1031,"props":1604,"children":1605},{},[1606,1618,1623,1633,1638,1643,1648],{"type":42,"tag":695,"props":1607,"children":1608},{},[1609,1611],{"type":48,"value":1610},"Submit via Console (Active Numbers → Regulatory Information tab) or ",{"type":42,"tag":173,"props":1612,"children":1615},{"href":1613,"rel":1614},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fmessaging\u002Fcompliance\u002Ftoll-free\u002Fapi-onboarding",[177],[1616],{"type":48,"value":1617},"API",{"type":42,"tag":695,"props":1619,"children":1620},{},[1621],{"type":48,"value":1622},"Requires: paid account, Customer Profile, business name, website, use case description, sample message, opt-in type",{"type":42,"tag":695,"props":1624,"children":1625},{},[1626,1631],{"type":42,"tag":57,"props":1627,"children":1628},{},[1629],{"type":48,"value":1630},"Unverified toll-free numbers cannot send SMS to US\u002FCanada",{"type":48,"value":1632}," — status shows \"Restricted\"",{"type":42,"tag":695,"props":1634,"children":1635},{},[1636],{"type":48,"value":1637},"If rejected: resubmit within 7 days for priority review. After 7 days, number reverts to Restricted and resubmission goes to back of queue",{"type":42,"tag":695,"props":1639,"children":1640},{},[1641],{"type":48,"value":1642},"ISVs must have an approved Primary Business Profile before submitting for secondary customers",{"type":42,"tag":695,"props":1644,"children":1645},{},[1646],{"type":48,"value":1647},"527 political organizations require Campaign Verify tokens before Console submission",{"type":42,"tag":695,"props":1649,"children":1650},{},[1651],{"type":48,"value":1652},"Don't use multiple toll-free numbers for the same use case (\"snowshoeing\")",{"type":42,"tag":51,"props":1654,"children":1655},{},[1656,1661,1663,1668,1669],{"type":42,"tag":57,"props":1657,"children":1658},{},[1659],{"type":48,"value":1660},"Docs:",{"type":48,"value":1662}," ",{"type":42,"tag":173,"props":1664,"children":1666},{"href":215,"rel":1665},[177],[1667],{"type":48,"value":219},{"type":48,"value":181},{"type":42,"tag":173,"props":1670,"children":1673},{"href":1671,"rel":1672},"https:\u002F\u002Fhelp.twilio.com\u002Farticles\u002F9321443984155-Why-Was-My-Toll-Free-Verification-Rejected-",[177],[1674],{"type":48,"value":1675},"Why rejected?",{"type":42,"tag":92,"props":1677,"children":1678},{},[],{"type":42,"tag":43,"props":1680,"children":1682},{"id":1681},"whatsapp-waba-registration",[1683],{"type":48,"value":1684},"WhatsApp WABA Registration",{"type":42,"tag":102,"props":1686,"children":1688},{"id":1687},"self-signup-flow-direct-customers",[1689],{"type":48,"value":1690},"Self-Signup Flow (Direct Customers)",{"type":42,"tag":691,"props":1692,"children":1693},{},[1694,1699,1704,1709,1714,1719,1724,1729],{"type":42,"tag":695,"props":1695,"children":1696},{},[1697],{"type":48,"value":1698},"Console → Messaging → Senders → WhatsApp Senders → \"Create new sender\"",{"type":42,"tag":695,"props":1700,"children":1701},{},[1702],{"type":48,"value":1703},"Select phone number (Twilio or non-Twilio — must not already be registered with WhatsApp)",{"type":42,"tag":695,"props":1705,"children":1706},{},[1707],{"type":48,"value":1708},"Click \"Continue with Facebook\" → Meta Embedded Signup popup",{"type":42,"tag":695,"props":1710,"children":1711},{},[1712],{"type":48,"value":1713},"Create or select Meta Business Portfolio",{"type":42,"tag":695,"props":1715,"children":1716},{},[1717],{"type":48,"value":1718},"Create or select WABA (all senders on same Twilio account must share one WABA)",{"type":42,"tag":695,"props":1720,"children":1721},{},[1722],{"type":48,"value":1723},"Set display name, category, description — Meta reviews display name post-registration",{"type":42,"tag":695,"props":1725,"children":1726},{},[1727],{"type":48,"value":1728},"Phone verification via OTP (SMS or voice)",{"type":42,"tag":695,"props":1730,"children":1731},{},[1732],{"type":48,"value":1733},"Registration completes within minutes",{"type":42,"tag":102,"props":1735,"children":1737},{"id":1736},"post-registration-requirements",[1738],{"type":48,"value":1739},"Post-Registration Requirements",{"type":42,"tag":1031,"props":1741,"children":1742},{},[1743,1753,1758,1770],{"type":42,"tag":695,"props":1744,"children":1745},{},[1746,1751],{"type":42,"tag":57,"props":1747,"children":1748},{},[1749],{"type":48,"value":1750},"Meta Business Verification required",{"type":48,"value":1752}," before production messaging — can take several weeks",{"type":42,"tag":695,"props":1754,"children":1755},{},[1756],{"type":48,"value":1757},"If display name rejected by Meta, messaging is limited to 250 messages\u002F24 hours",{"type":42,"tag":695,"props":1759,"children":1760},{},[1761,1763,1768],{"type":48,"value":1762},"Outbound messages require pre-approved ",{"type":42,"tag":57,"props":1764,"children":1765},{},[1766],{"type":48,"value":1767},"Message Templates",{"type":48,"value":1769}," (submitted to Meta, 24-48hr approval)",{"type":42,"tag":695,"props":1771,"children":1772},{},[1773],{"type":48,"value":1774},"Free-form messages only within 24-hour service window after customer initiates",{"type":42,"tag":102,"props":1776,"children":1778},{"id":1777},"isv-path",[1779],{"type":48,"value":1780},"ISV Path",{"type":42,"tag":51,"props":1782,"children":1783},{},[1784,1786,1791],{"type":48,"value":1785},"Enroll in Meta's ",{"type":42,"tag":57,"props":1787,"children":1788},{},[1789],{"type":48,"value":1790},"Tech Provider Program",{"type":48,"value":1792}," to onboard customers. Different flow from self-signup.",{"type":42,"tag":51,"props":1794,"children":1795},{},[1796,1800,1801,1806,1807],{"type":42,"tag":57,"props":1797,"children":1798},{},[1799],{"type":48,"value":1660},{"type":48,"value":1662},{"type":42,"tag":173,"props":1802,"children":1804},{"href":293,"rel":1803},[177],[1805],{"type":48,"value":297},{"type":48,"value":181},{"type":42,"tag":173,"props":1808,"children":1811},{"href":1809,"rel":1810},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Fwhatsapp",[177],[1812],{"type":48,"value":1813},"WhatsApp hub",{"type":42,"tag":92,"props":1815,"children":1816},{},[],{"type":42,"tag":43,"props":1818,"children":1820},{"id":1819},"rcs-onboarding",[1821],{"type":48,"value":1822},"RCS Onboarding",{"type":42,"tag":51,"props":1824,"children":1825},{},[1826],{"type":48,"value":1827},"4-6 weeks minimum. RCS has a detailed 7-part compliance process covering sender profile, privacy\u002FToS, eligibility, campaign details, opt-in\u002Fconsent, sample messages, and common rejection reasons.",{"type":42,"tag":51,"props":1829,"children":1830},{},[1831],{"type":42,"tag":57,"props":1832,"children":1833},{},[1834,1836,1842],{"type":48,"value":1835},"See ",{"type":42,"tag":75,"props":1837,"children":1839},{"className":1838},[],[1840],{"type":48,"value":1841},"twilio-rcs-messaging",{"type":48,"value":1843}," for the full onboarding guide, sending patterns, and device support.",{"type":42,"tag":51,"props":1845,"children":1846},{},[1847],{"type":48,"value":1848},"Quick summary: Create RCS Sender in Console → complete compliance submission → Twilio specialist reviews → Google + carrier approval → add to Messaging Service → go live.",{"type":42,"tag":51,"props":1850,"children":1851},{},[1852,1856,1857,1862,1863,1868,1869],{"type":42,"tag":57,"props":1853,"children":1854},{},[1855],{"type":48,"value":1660},{"type":48,"value":1662},{"type":42,"tag":173,"props":1858,"children":1860},{"href":332,"rel":1859},[177],[1861],{"type":48,"value":336},{"type":48,"value":181},{"type":42,"tag":173,"props":1864,"children":1866},{"href":340,"rel":1865},[177],[1867],{"type":48,"value":344},{"type":48,"value":181},{"type":42,"tag":173,"props":1870,"children":1873},{"href":1871,"rel":1872},"https:\u002F\u002Fwww.twilio.com\u002Fdocs\u002Frcs\u002Fregional",[177],[1874],{"type":48,"value":1875},"Regional availability",{"type":42,"tag":92,"props":1877,"children":1878},{},[],{"type":42,"tag":43,"props":1880,"children":1882},{"id":1881},"cannot",[1883],{"type":48,"value":1884},"CANNOT",{"type":42,"tag":1031,"props":1886,"children":1887},{},[1888,1898,1908,1918,1928,1938],{"type":42,"tag":695,"props":1889,"children":1890},{},[1891,1896],{"type":42,"tag":57,"props":1892,"children":1893},{},[1894],{"type":48,"value":1895},"Cannot skip A2P registration for US 10DLC",{"type":48,"value":1897}," — Mandatory for all senders, no exceptions for small volume",{"type":42,"tag":695,"props":1899,"children":1900},{},[1901,1906],{"type":42,"tag":57,"props":1902,"children":1903},{},[1904],{"type":48,"value":1905},"Cannot register Sole Proprietor A2P via API",{"type":48,"value":1907}," — Console only",{"type":42,"tag":695,"props":1909,"children":1910},{},[1911,1916],{"type":42,"tag":57,"props":1912,"children":1913},{},[1914],{"type":48,"value":1915},"Cannot combine unrelated use cases without Mixed campaign",{"type":48,"value":1917}," — Use the \"Mixed\" use case category to register 2-5 sub-use cases under one campaign",{"type":42,"tag":695,"props":1919,"children":1920},{},[1921,1926],{"type":42,"tag":57,"props":1922,"children":1923},{},[1924],{"type":48,"value":1925},"Cannot require A2P registration for Verify traffic",{"type":48,"value":1927}," — Twilio Verify is exempt from A2P registration",{"type":42,"tag":695,"props":1929,"children":1930},{},[1931,1936],{"type":42,"tag":57,"props":1932,"children":1933},{},[1934],{"type":48,"value":1935},"Cannot use voice trust programs without Trust Hub",{"type":48,"value":1937}," — All voice programs require an approved Trust Hub Primary Customer Profile",{"type":42,"tag":695,"props":1939,"children":1940},{},[1941,1946],{"type":42,"tag":57,"props":1942,"children":1943},{},[1944],{"type":48,"value":1945},"Cannot use Branded Calling on landlines",{"type":48,"value":1947}," — Mobile-only. US: Public Beta (T-Mobile, Verizon). Non-US: availability varies by country and carrier — check eligibility for your specific numbers. Use CNAM for landlines.",{"type":42,"tag":92,"props":1949,"children":1950},{},[],{"type":42,"tag":43,"props":1952,"children":1954},{"id":1953},"next-steps",[1955],{"type":48,"value":1956},"Next Steps",{"type":42,"tag":1031,"props":1958,"children":1959},{},[1960,1975,1989,2003,2018,2033],{"type":42,"tag":695,"props":1961,"children":1962},{},[1963,1968,1969],{"type":42,"tag":57,"props":1964,"children":1965},{},[1966],{"type":48,"value":1967},"Channel overview and onboarding guide:",{"type":48,"value":1662},{"type":42,"tag":75,"props":1970,"children":1972},{"className":1971},[],[1973],{"type":48,"value":1974},"twilio-messaging-overview",{"type":42,"tag":695,"props":1976,"children":1977},{},[1978,1983,1984],{"type":42,"tag":57,"props":1979,"children":1980},{},[1981],{"type":48,"value":1982},"Choose the right number type first:",{"type":48,"value":1662},{"type":42,"tag":75,"props":1985,"children":1987},{"className":1986},[],[1988],{"type":48,"value":80},{"type":42,"tag":695,"props":1990,"children":1991},{},[1992,1997,1998],{"type":42,"tag":57,"props":1993,"children":1994},{},[1995],{"type":48,"value":1996},"Follow traffic rules after registration:",{"type":48,"value":1662},{"type":42,"tag":75,"props":1999,"children":2001},{"className":2000},[],[2002],{"type":48,"value":88},{"type":42,"tag":695,"props":2004,"children":2005},{},[2006,2011,2012],{"type":42,"tag":57,"props":2007,"children":2008},{},[2009],{"type":48,"value":2010},"Set up Messaging Services for number pools:",{"type":48,"value":1662},{"type":42,"tag":75,"props":2013,"children":2015},{"className":2014},[],[2016],{"type":48,"value":2017},"twilio-messaging-services",{"type":42,"tag":695,"props":2019,"children":2020},{},[2021,2026,2027],{"type":42,"tag":57,"props":2022,"children":2023},{},[2024],{"type":48,"value":2025},"Send SMS after registration:",{"type":48,"value":1662},{"type":42,"tag":75,"props":2028,"children":2030},{"className":2029},[],[2031],{"type":48,"value":2032},"twilio-sms-send-message",{"type":42,"tag":695,"props":2034,"children":2035},{},[2036,2041,2042],{"type":42,"tag":57,"props":2037,"children":2038},{},[2039],{"type":48,"value":2040},"Secure your account:",{"type":48,"value":1662},{"type":42,"tag":75,"props":2043,"children":2045},{"className":2044},[],[2046],{"type":48,"value":2047},"twilio-security-hardening",{"items":2049,"total":2170},[2050,2068,2084,2096,2116,2138,2158],{"slug":2051,"name":2051,"fn":2052,"description":2053,"org":2054,"tags":2055,"stars":25,"repoUrl":26,"updatedAt":27},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2056,2059,2062,2065],{"name":2057,"slug":2058,"type":15},"Accessibility","accessibility",{"name":2060,"slug":2061,"type":15},"Charts","charts",{"name":2063,"slug":2064,"type":15},"Data Visualization","data-visualization",{"name":2066,"slug":2067,"type":15},"Design","design",{"slug":2069,"name":2069,"fn":2070,"description":2071,"org":2072,"tags":2073,"stars":25,"repoUrl":26,"updatedAt":2083},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2074,2077,2080],{"name":2075,"slug":2076,"type":15},"Agents","agents",{"name":2078,"slug":2079,"type":15},"Browser Automation","browser-automation",{"name":2081,"slug":2082,"type":15},"Testing","testing","2026-04-06T18:41:03.44016",{"slug":2085,"name":2085,"fn":2086,"description":2087,"org":2088,"tags":2089,"stars":25,"repoUrl":26,"updatedAt":2095},"agent-browser-verify","verify dev server output with automated browser","Automated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass\u002Ffail before continuing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2090,2091,2094],{"name":2078,"slug":2079,"type":15},{"name":2092,"slug":2093,"type":15},"Local Development","local-development",{"name":2081,"slug":2082,"type":15},"2026-04-06T18:41:17.526867",{"slug":2097,"name":2097,"fn":2098,"description":2099,"org":2100,"tags":2101,"stars":25,"repoUrl":26,"updatedAt":2115},"agents-sdk","build AI agents on Cloudflare Workers","Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2102,2103,2106,2109,2112],{"name":2075,"slug":2076,"type":15},{"name":2104,"slug":2105,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":2107,"slug":2108,"type":15},"SDK","sdk",{"name":2110,"slug":2111,"type":15},"Serverless","serverless",{"name":2113,"slug":2114,"type":15},"WebSockets","websockets","2026-04-06T18:39:51.717063",{"slug":2117,"name":2117,"fn":2118,"description":2119,"org":2120,"tags":2121,"stars":25,"repoUrl":26,"updatedAt":2137},"ai-elements","build chat UIs with AI Elements","AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn\u002Fui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2122,2125,2128,2131,2134],{"name":2123,"slug":2124,"type":15},"Frontend","frontend",{"name":2126,"slug":2127,"type":15},"React","react",{"name":2129,"slug":2130,"type":15},"shadcn\u002Fui","shadcn-ui",{"name":2132,"slug":2133,"type":15},"UI Components","ui-components",{"name":2135,"slug":2136,"type":15},"Vercel","vercel","2026-04-06T18:40:59.619419",{"slug":2139,"name":2139,"fn":2140,"description":2141,"org":2142,"tags":2143,"stars":25,"repoUrl":26,"updatedAt":2157},"ai-gateway","configure Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2144,2147,2150,2153,2156],{"name":2145,"slug":2146,"type":15},"AI Infrastructure","ai-infrastructure",{"name":2148,"slug":2149,"type":15},"Cost Optimization","cost-optimization",{"name":2151,"slug":2152,"type":15},"LLM","llm",{"name":2154,"slug":2155,"type":15},"Performance","performance",{"name":2135,"slug":2136,"type":15},"2026-04-06T18:40:44.377464",{"slug":2159,"name":2159,"fn":2160,"description":2161,"org":2162,"tags":2163,"stars":25,"repoUrl":26,"updatedAt":2169},"ai-generation-persistence","implement persistence patterns for AI generations","AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2164,2165,2168],{"name":2148,"slug":2149,"type":15},{"name":2166,"slug":2167,"type":15},"Database","database",{"name":2151,"slug":2152,"type":15},"2026-04-06T18:41:08.513425",600,{"items":2172,"total":2369},[2173,2194,2217,2234,2250,2267,2286,2298,2312,2326,2338,2353],{"slug":2174,"name":2174,"fn":2175,"description":2176,"org":2177,"tags":2178,"stars":2191,"repoUrl":2192,"updatedAt":2193},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2179,2182,2185,2188],{"name":2180,"slug":2181,"type":15},"Documents","documents",{"name":2183,"slug":2184,"type":15},"Healthcare","healthcare",{"name":2186,"slug":2187,"type":15},"Insurance","insurance",{"name":2189,"slug":2190,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":2195,"name":2195,"fn":2196,"description":2197,"org":2198,"tags":2199,"stars":2214,"repoUrl":2215,"updatedAt":2216},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2200,2203,2205,2208,2211],{"name":2201,"slug":2202,"type":15},".NET","dotnet",{"name":2204,"slug":2195,"type":15},"ASP.NET Core",{"name":2206,"slug":2207,"type":15},"Blazor","blazor",{"name":2209,"slug":2210,"type":15},"C#","csharp",{"name":2212,"slug":2213,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":2218,"name":2218,"fn":2219,"description":2220,"org":2221,"tags":2222,"stars":2214,"repoUrl":2215,"updatedAt":2233},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2223,2226,2229,2232],{"name":2224,"slug":2225,"type":15},"Apps SDK","apps-sdk",{"name":2227,"slug":2228,"type":15},"ChatGPT","chatgpt",{"name":2230,"slug":2231,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":2235,"name":2235,"fn":2236,"description":2237,"org":2238,"tags":2239,"stars":2214,"repoUrl":2215,"updatedAt":2249},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2240,2243,2246],{"name":2241,"slug":2242,"type":15},"API Development","api-development",{"name":2244,"slug":2245,"type":15},"CLI","cli",{"name":2247,"slug":2248,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":2251,"name":2251,"fn":2252,"description":2253,"org":2254,"tags":2255,"stars":2214,"repoUrl":2215,"updatedAt":2266},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2256,2259,2262,2263],{"name":2257,"slug":2258,"type":15},"Cloudflare","cloudflare",{"name":2260,"slug":2261,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":2104,"slug":2105,"type":15},{"name":2264,"slug":2265,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":2268,"name":2268,"fn":2269,"description":2270,"org":2271,"tags":2272,"stars":2214,"repoUrl":2215,"updatedAt":2285},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2273,2276,2279,2282],{"name":2274,"slug":2275,"type":15},"Productivity","productivity",{"name":2277,"slug":2278,"type":15},"Project Management","project-management",{"name":2280,"slug":2281,"type":15},"Strategy","strategy",{"name":2283,"slug":2284,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":2287,"name":2287,"fn":2288,"description":2289,"org":2290,"tags":2291,"stars":2214,"repoUrl":2215,"updatedAt":2297},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2292,2293,2295,2296],{"name":2066,"slug":2067,"type":15},{"name":2294,"slug":2287,"type":15},"Figma",{"name":2123,"slug":2124,"type":15},{"name":2230,"slug":2231,"type":15},"2026-04-12T05:06:47.939943",{"slug":2299,"name":2299,"fn":2300,"description":2301,"org":2302,"tags":2303,"stars":2214,"repoUrl":2215,"updatedAt":2311},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2304,2305,2308,2309,2310],{"name":2066,"slug":2067,"type":15},{"name":2306,"slug":2307,"type":15},"Design System","design-system",{"name":2294,"slug":2287,"type":15},{"name":2123,"slug":2124,"type":15},{"name":2132,"slug":2133,"type":15},"2026-05-10T05:59:52.971881",{"slug":2313,"name":2313,"fn":2314,"description":2315,"org":2316,"tags":2317,"stars":2214,"repoUrl":2215,"updatedAt":2325},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2318,2319,2320,2323,2324],{"name":2066,"slug":2067,"type":15},{"name":2306,"slug":2307,"type":15},{"name":2321,"slug":2322,"type":15},"Documentation","documentation",{"name":2294,"slug":2287,"type":15},{"name":2123,"slug":2124,"type":15},"2026-05-16T06:07:47.821474",{"slug":2327,"name":2327,"fn":2328,"description":2329,"org":2330,"tags":2331,"stars":2214,"repoUrl":2215,"updatedAt":2337},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2332,2333,2334,2335,2336],{"name":2066,"slug":2067,"type":15},{"name":2294,"slug":2287,"type":15},{"name":2123,"slug":2124,"type":15},{"name":2132,"slug":2133,"type":15},{"name":2212,"slug":2213,"type":15},"2026-05-16T06:07:40.583615",{"slug":2339,"name":2339,"fn":2340,"description":2341,"org":2342,"tags":2343,"stars":2214,"repoUrl":2215,"updatedAt":2352},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2344,2347,2348,2351],{"name":2345,"slug":2346,"type":15},"Animation","animation",{"name":2247,"slug":2248,"type":15},{"name":2349,"slug":2350,"type":15},"Creative","creative",{"name":2066,"slug":2067,"type":15},"2026-05-02T05:31:48.48485",{"slug":2354,"name":2354,"fn":2355,"description":2356,"org":2357,"tags":2358,"stars":2214,"repoUrl":2215,"updatedAt":2368},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2359,2360,2361,2364,2367],{"name":2349,"slug":2350,"type":15},{"name":2066,"slug":2067,"type":15},{"name":2362,"slug":2363,"type":15},"Image Generation","image-generation",{"name":2365,"slug":2366,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675]