mcpField
S
sms-10dlc-registration

sms-10dlc-registration

github.com/sentdm其他492.9k 次安装1 周前更新
代码仓库

关于 sms-10dlc-registration

sms-10dlc-registration 是用于美国 A2P 10DLC 注册准备的技能,面向需要整理合规材料和 Sent campaign 请求的团队。它区分证据包与 API 载荷,并指导品牌继承选择和分层验证。

主要功能

  1. 01整理版本化合规证据包
  2. 02验证 campaign API 载荷
  3. 03选择品牌与 campaign 继承方式
  4. 04区分创建、TCR 提交和激活状态

适用场景

  1. 01准备美国 10DLC campaign 注册
  2. 02检查营销或混合流量样例要求
  3. 03排查注册状态与 TCR 提交情况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sentdm/sent-plugin --skill sms-10dlc-registration

安装后在 Claude Code 中输入/sms-10dlc-registration确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
10dlc-evidence-checklist.md
10dlc-rejection-remediation.md
tcr-use-cases.md
scripts/
validate_10dlc_packet.py
validate_campaign_payload.py
scripts/fixtures/
bad.json
campaign_bad.json
campaign_good.json
good.json

详细介绍

SMS 10DLC 注册

对于通过 10 位长代码发送的美国 A2P SMS,请使用此技能。合规证据包与精确的 Sent API 请求应分开处理;二者使用不同的架构和验证器。

如需了解当前字段和文档要求,或获取精确的 SMS 设置调用,请在准备此处的注册证据前使用 sent-compliance。其计划会创建新的 Sender Profile,不会管理现有 Profile 上的活动。

当前 Sent 资源模型

当前 v3 API 中没有独立的品牌 CRUD 路径。

  • 在 POST /v3/profiles 中使用 brand 和 inherit_tcr_brand: false 创建专用品牌。
  • 使用 GET|POST /v3/profiles/{profileId}/campaigns 列出/创建活动。
  • 使用 PUT|DELETE /v3/profiles/{profileId}/campaigns/{campaignId} 更新/删除活动。

拒绝会重新引入独立品牌路径的指导。

谨慎选择继承方式

品牌活动设置
两者均继承组织品牌和活动inherit_tcr_brand: true,inherit_tcr_campaign: true
继承品牌,使用自有活动共享的法律实体品牌,使用租户专属流量品牌为 true,活动为 false
两者均自有专属租户/企业两者均为 false,并在创建 Profile 时提供 brand

继承的活动为只读。当品牌继承为 true 时,Profile 不能提供 brand。

两个验证层

证据准备包

私有证据包使用明确的内部版本 sent-10dlc-evidence/v1 和 snake_case 证据字段。它不是 API 负载。

python scripts/validate_10dlc_packet.py evidence.json

收集法律实体信息、公开网站/政策链接、同意证明、消息流程、选择加入/退出/帮助响应及关键词、用途和真实可信的示例。请参阅 references/10dlc-evidence-checklist.md。

Sent 活动请求

API 请求使用精确的 camelCase 和 campaign 封装:

{
  "campaign": {
    "name": "Acme account notifications",
    "description": "Account and delivery notifications for opted-in customers.",
    "type": "App",
    "useCases": [
      {
        "messagingUseCaseUs": "ACCOUNT_NOTIFICATION",
        "sampleMessages": [
          "Acme Example: Your account preference was updated. Reply STOP to opt out."
        ]
      }
    ],
    "volume": "2000",
    "messageFlow": "Customers opt in in account settings before notifications begin.",
    "privacyPolicyLink": "https://example.com/privacy",
    "termsAndConditionsLink": "https://example.com/terms",
    "optinMessage": "Acme Example: You are subscribed. Reply STOP to opt out.",
    "optoutMessage": "Acme Example: You are unsubscribed and will receive no more messages.",
    "helpMessage": "Acme Example: Visit https://example.com/support for help.",
    "optinKeywords": "START,YES",
    "optoutKeywords": "STOP,UNSUBSCRIBE",
    "helpKeywords": "HELP,INFO"
  },
  "sandbox": true
}

使用以下内容验证:

python scripts/validate_campaign_payload.py campaign.json

API 用途

支持当前全部 13 个值:

MARKETING、ACCOUNT_NOTIFICATION、CUSTOMER_CARE、FRAUD_ALERT、TWO_FA、DELIVERY_NOTIFICATION、SECURITY_ALERT、M2M、MIXED、HIGHER_EDUCATION、POLLING_VOTING、PUBLIC_SERVICE_ANNOUNCEMENT 和 LOW_VOLUME。

每种用途在结构上接受 1–5 条示例,每条不超过 1,024 个字符。合规层要求营销和混合流量至少提供两条示例,包括低流量混合型。应明确呈现这一政策差异,不要误称 OpenAPI 要求所有流量都提供两条示例。

流量和状态

volume 为可选字段;如提供,必须是数字字符串。低于 "2000" 的值使用文档规定的低流量档;"2000" 是进入下一档的分界值。

活动响应当前会显示 SENT_CREATED、ACTIVE 和 EXPIRED 状态,以及 submittedToTCR。保留未知的未来状态字符串。不要将成功创建 Sent 记录与提交到 TCR 或运营商激活混为一谈。

安全工作流

  1. 确认这是美国 A2P 10DLC 流量,并已识别实际发送业务的企业。
  2. 选择品牌/活动继承方式。
  3. 验证有版本标记的证据包。
  4. 创建或确认 Profile 品牌。
  5. 将证据转换为精确的 camelCase 活动请求。
  6. 在本地验证,并使用 sandbox: true。
  7. 显示负载,并在执行实际创建/更新/删除前获取确认。
  8. 保存 Profile ID、活动 ID、submittedToTCR、原始状态和审核证据。
  9. 仅在准备好前置条件后,使用必需的 webHookUrl 完成 Profile。

绝不要在固定数据或示例中使用真实消费者数据。用途分类请参阅 references/tcr-use-cases.md,故障处理请参阅 references/10dlc-rejection-remediation.md。

评论

支持 Markdown