360 Secure SkillHub
360 安全技能中心

SocialKit WhatsApp Broadcast

该 Skill 引导用户初始化广播目录、填写模板配置与联系人 CSV,先预览收件人、排除原因和预估费用并取得审批,再经官方 WhatsApp Cloud API 按安全速率发送已审批模板,支持断点续发与结果统计。

分类:营销
ahmadhussain0335
ahmadhussain0335
热度 35.95
最近更新 2026-11-06 15:08:52

安装

发给 Agent
帮我安装这个技能:npx secure-skills-cli add ahmadhussain0335/socialkit-whatsapp-broadcast
兼容性
通用兼容
联网要求
需要联网
数据出网
必须出网
Metadata
name
socialkit-whatsapp-broadcast
description
Sends an approved WhatsApp template to opted-in contacts only through the official WhatsApp Cloud API, after showing recipients, exclusions and an estimated cost and getting the user's approval. Use when the user wants to message a list of customers on WhatsApp, send a WhatsApp campaign, announcement or bulk update.
license
MIT
metadata
{"author":"Ahmad Hussain","platform":"whatsapp","requires":"socialkit-social-core socialkit-whatsapp-templates"}

WhatsApp broadcast

Official Cloud API only. Setup: setup. Pricing file: pricing.

Rules

  • Only contacts with a recorded opt-in (opt_in_at column) are messaged. Never add an opt-in date the user did not record; ask instead.
  • Only approved templates can be broadcast. Free-form text is not possible here.
  • The user approves the exact recipient list, template and estimated cost.

Steps

  1. node scripts/broadcast.mjs --init --dir wa-bc-<slug>
  2. Fill broadcast.json (template name, language, category, bodyParams such as "{name}" that reference contacts.csv columns) and place the user's contacts.csv.
  3. Preview: node scripts/broadcast.mjs --plan --dir wa-bc-<slug>. Report recipients, exclusions by reason (no opt-in, opted out, duplicate, invalid, US marketing) and the estimated cost with the rate card date.
  4. Stop. Ask the user to run in their own terminal: node scripts/broadcast.mjs --approve --dir wa-bc-<slug>
  5. Send: node scripts/broadcast.mjs --send --dir wa-bc-<slug>. It checks the template is APPROVED with the same category, then sends at a safe rate. Rerunning resumes and never double-sends.
  6. Report sent, skipped and failed counts and where results.jsonl is.

Failure handling

  • WA_TEMPLATE_CATEGORY: Meta re-categorised the template; update broadcast.json, re-plan (cost changes) and get a new approval.
  • stoppedBy set: an account-level error (billing, restriction, quality). Do not retry; show the hint to the user.
  • Skipped 131049 or 131050: per-user marketing limit or opt-out. Do not resend.