Skip to content

Prohibited message content docs are incomplete, buried, and self-contradictory #633

Description

@briankwest

Summary

Our messaging docs' coverage of prohibited/forbidden message content falls well short of current industry reference material, is buried on a page about delivery rates, and contradicts itself on at least one category. The Campaign Registry guide — the page a customer registering for 10DLC actually reads — contains no forbidden-content information at all.

References used for the gap analysis:

Where this content lives today

Page File Problem
The Campaign Registry (/messaging/campaign-registry) fern/products/platform/pages/messaging/sms/the-campaign-registry/index.mdx No prohibited-content section; only an FAQ entry linking out
Optimize delivery rates (/messaging/sms-best-practices) fern/products/platform/pages/messaging/sms/sms-best-practices.mdx (lines 64–102) The actual list: 22 flat bullets, no definitions, examples, or carve-outs
Toll-free overview, CSP guide toll-free-number-overview.mdx, the-campaign-registry/csps/index.mdx Link to the section above

Gap analysis vs. industry references

  1. SHAFT is never expanded. Our entire treatment is one line: "SHAFT: Sex, Hate, Alcohol, Firearms or Tobacco." Both references define each letter — S includes sexually inappropriate content/pornography, H includes hate speech and profanity, F includes depictions/endorsements of violence, T includes vaping and endorsement of illicit drugs.
  2. No channel, country, or age-gating nuance. The phrase "age gating" appears nowhere in our repo — everything is presented as a flat ban. Current aggregator policy (Sinch, mid-2026) is a per-channel/per-country matrix:
    • Alcohol: allowed on 10DLC and Short Code with age gating; the only age-restricted category allowed on Toll-Free (with age gate). Age gates must collect date of birth, not a yes/no prompt.
    • Tobacco/vape: allowed with age gating on Short Code (and Long Code per the same policy), prohibited on Toll-Free. (Note: the 2022 10dlc.org page says vape is flatly prohibited — this has since loosened.)
    • Firearms: prohibited on all channels regardless of age gating (firearm parts permitted on 10DLC). (The 2022 page said age-gated firearms were fine — this has since tightened.)
    • Gambling: prohibited on all number types in US and Canada; raffles are treated as gambling; casino apps and betting "picks" prohibited; carve-out for non-promotional community/local bingo on approved Short Code and 10DLC.
    • Canada: all age-restricted content is blocked on every channel without a special carrier exemption — a dimension our docs never mention, even though our toll-free verification page says verification covers Canadian carriers.
  3. Missing categories/terms: cryptocurrency and stock alerts (crypto/stock-focused businesses are limited to 2FA-only traffic), CBD/THC, kratom, synthetic cannabinoids and drug paraphernalia, non-OTC prescription drugs, MLM/network marketing/pyramid schemes by name (we only say "commission programs"), third-party job boards (only the hiring brand may register), raffles, affiliate marketing/lending, PII farming, cold outreach, buying/selling/sharing consumer data (a ToS/privacy policy that mentions selling opt-in data is itself noncompliant), voter-registration databases as a consent source, links to donation sites.
  4. No legitimate-use carve-outs. Both references distinguish first-party from third-party: first-party payment reminders and account messages from direct lenders (with express consent) are fine; a debt collector with direct end-user consent may send; debt consolidation/reduction/credit repair are banned regardless of consent. Our flat "Collections" and "Financial services" entries read as blanket bans.
  5. Business-level vs. content-level bans are conflated. Cannabis/CBD/kratom businesses are barred from SMS entirely — even 2FA — regardless of message content or state legality. Our docs frame everything as content rules.
  6. Internal contradiction on sweepstakes. sms-best-practices.mdx lists Sweepstakes as explicitly prohibited, while the Campaign Registry page's own Special Use Case table (the-campaign-registry/index.mdx line 101) lists Sweepstakes as a registrable use case. Sinch meanwhile treats raffles as gambling (prohibited), so the distinction we draw needs to be deliberate.
  7. No "not legal advice" disclaimer anywhere in this content.

Proposed fix

  1. Create a dedicated page fern/products/platform/pages/messaging/sms/prohibited-content.mdx (slug /messaging/prohibited-content) as the single source of truth: category tables with Examples + Notes columns, a fully expanded SHAFT section, a channel/age-gating matrix covering US and Canada (pending item 1 below), a section separating business-level bans from content-level bans, a SignalWire-specific section (phishing, fraud/scams, deceptive marketing, snowshoeing), and a legal disclaimer. Nav is folder-inferred so no platform.yml change is needed.
  2. Trim ## Explicitly Prohibited Content on the best-practices page to a summary + link, keeping the heading so existing #explicitly-prohibited-content deep links (toll-free overview, CSP guide, external support macros) don't break.
  3. Add a short "What you can't send" section to the Campaign Registry page linking to the new page, plus a note that registration is not permission to send anything.
  4. Repoint the toll-free and CSP page links; add a redirects: entry in docs.yml if any slugs move (linter enforces missing-redirects/broken-links).

Open policy questions (need compliance/carrier-relations sign-off before merge)

  1. Age-gating stance: does SignalWire accept age-gated alcohol/tobacco/vape traffic per current carrier rules (DOB-entry gates, per-channel/per-country matrix above), or do we flatly prohibit regardless? Current docs imply the latter without saying it's a SignalWire policy.
  2. Sweepstakes vs. raffles: sweepstakes is a registrable TCR Special Use Case, our best-practices page bans it, and aggregators treat raffles as prohibited gambling. What's SignalWire's actual line, and how do we define sweepstakes vs. raffle in the docs?
  3. Which upstream ruleset binds us: our traffic rides through DCAs/aggregators whose policies (like the Sinch one above) are stricter and more current than the 2022 10dlc.org reference. Confirm the docs should mirror our actual upstream's current policy, and verify against the 2023 CTIA Messaging Principles rather than the stale 2022 page.

cc @hey-august @Devon-White — the "Open policy questions" section needs your input before the fix can merge.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions