← ClaudeAtlas

dove-bulklisted

Send a DLT SMS campaign to many numbers via Dove Soft — from a comma list or a file/CSV — with dedupe, throttle, a dry-run preview, an explicit send confirmation, and a delivered/failed breakdown. Use when the user wants to "send bulk sms", "blast", "send to a list", "campaign to these numbers", "/dove-bulk".
sandeep121sandeep/dove-sms-skill · ★ 0 · Data & Documents · score 68
Install: claude install-skill sandeep121sandeep/dove-sms-skill
# /dove-bulk — bulk campaign + breakdown Engine: `dove.py` in this skill's folder. Config: shared `~/.dove/config.json` (run `/dove-setup` if missing). ## Flow 1. Pick the approved template (`dove.py templates`) matching the campaign. For promotional content, remember the route is **DND-filtered** and any URL needs a whitelisted CTA. **If there's no approved template for this campaign yet**, the content isn't registered on DLT — guide the user through `docs/DLT-SETUP.md` (Smartping: header + promo template + CTA whitelist), then `/dove-setup`. 2. **Always dry-run first** to show the deduped recipient list: ``` python3 ~/.claude/skills/dove-bulk/dove.py bulk --name <template> \ --file <numbers.txt | numbers.csv> --dry-run # or: --to 98xxxx,99xxxx ``` Numbers come from `--to` (comma) or `--file` (one per line, or CSV first column; a header row like "mobile/number/phone" is skipped). Duplicates are removed by last-10-digits. 3. Confirm count with the user, then send for real with `--yes`: ``` python3 ~/.claude/skills/dove-bulk/dove.py bulk --name <template> \ --file <path> --yes --date <YYYY-MM-DD> [--rate 0.5] ``` - `--rate <s>` throttles (seconds between sends) to avoid flooding. - `--date <today>` makes it poll the DLR and print a **breakdown** (counts by DELIVRD / blocked_ndnc / template-not-matched / gateway-rejected / pending). - Add `--schedule "YYYY-MM-DD HH:MM:SS"` to schedule instead of sending now