{
  "id": "CMP-045",
  "slug": "cmp-045",
  "title": "The programme must be application-to-person, not personal messaging",
  "statement": "A campaign must describe application-to-person business messaging, not person-to-person or influencer-to-follower messaging.",
  "rationale": "10DLC exists for business messaging with consent behind it. A description reading as a person texting their contacts, or a public figure broadcasting to followers, does not fit the framework — and influencer programmes in particular usually have no per-number consent record at all, because the audience was acquired as followers rather than as subscribers.",
  "layer": "CAMPAIGN",
  "layerSlug": "campaign",
  "object": "campaign.description + campaign.message_flow",
  "severity": "BLOCKING",
  "detectability": [
    "AI_FORM"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "Twilio",
    "AWS"
  ],
  "applicability": {
    "excludeUseCases": [
      "SOCIAL"
    ]
  },
  "applicabilityText": "Applies when the use case is NOT SOCIAL.",
  "universal": false,
  "remediation": "Describe the programme as business messaging from the registered entity to consumers who opted in with that entity, and say where those consumers opted in. Done when the description names the business as sender and an opt-in surface as the source of the list. If the programme genuinely is a public figure messaging followers, the SOCIAL use case is the route, not a reworded description.",
  "example": "Acme Coffee sends order updates and promotions to customers who opted in at checkout — not \"I text my followers about new drops\".",
  "notes": "Catalog CMP-046 flags the tension with the TCR SOCIAL use case, which Vonage restricts to exactly public figures, platforms and influencers (see CMP-140). Tagged to exclude SOCIAL so the rule does not reject the one use case built for it. SOCIAL is not in USE_CASE_REQUIREMENTS yet, so today the tag documents the carve-out rather than firing.",
  "catalogIds": [
    "CMP-046"
  ],
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/campaign/cmp-045/",
  "markdown": "https://ekas.io/rules/10dlc/campaign/cmp-045.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
