kevinbadi/ai-os-skills · Archived

whatsapp-outreach

Send WhatsApp messages to Samoan businesses via Playwright + WhatsApp Web and track delivery

First seen Apr 8, 2026

Installation

$ npx skills add kevinbadi/ai-os-skills --skill whatsapp-outreach

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from kevinbadi/ai-os-skills · top by installs.

npx skills add kevinbadi/ai-os-skills

Browse all from kevinbadi/ai-os-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 55
License MIT
Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,490 B
  • docs SUMMARY.md 117 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 4 installs

SKILL.md

What It Does

  • Normalizes Samoan phone numbers from business_leads to E.164 format (+685XXXXX)
  • Sends WhatsApp messages via Playwright browser automation on web.whatsapp.com
  • Uses https://web.whatsapp.com/send?phone=...&text=... URL scheme (works for numbers not in contacts)
  • Rate-limited with configurable daily limits, batch sizes, and human-like jittered delays
  • Filters by category, island, priority
  • Detects "not on WhatsApp" errors and marks as failed

Setup

1. First-Run QR Login

On first run (no cookies/whatsapp-web.json), the script opens a visible browser to WhatsApp Web. Scan the QR code with your phone's WhatsApp app. Cookies are saved automatically.

# First run — will open browser for QR scan
node skills/whatsapp-outreach/scripts/whatsapp-outreach.js --limit 1

To re-authenticate, delete the cookie file and run again:

rm cookies/whatsapp-web.json
node skills/whatsapp-outreach/scripts/whatsapp-outreach.js --limit 1

2. Environment Variables

Add to .env:

WA_DELAY_BETWEEN_MESSAGES=12000
WA_BATCH_SIZE=25
WA_DAILY_LIMIT=50

3. Prerequisites

  • Clawdbot CDP browser running (clawdbot browser start --profile clawd --headless) — script auto-starts it if needed
  • WhatsApp account linked on your phone
  • Playwright installed (npm install)

How to Run

Step 1: Normalize phone numbers

# Preview which leads have valid Samoan mobile numbers
node skills/whatsapp-outreach/scripts/whatsapp-phone-normalize.js --dry-run

# Populate whatsapp_outreach table with normalized numbers
node skills/whatsapp-outreach/scripts/whatsapp-phone-normalize.js

Step 2: Send messages

# Preview targets without sending (no browser opened)
node skills/whatsapp-outreach/scripts/whatsapp-outreach.js --dry-run --limit 5

# Send to 10 high-priority leads on Upolu
node skills/whatsapp-outreach/scripts/whatsapp-outreach.js --limit 10 --priority high --island Upolu

# Send with a specific campaign name
node skills/whatsapp-outreach/scripts/whatsapp-outreach.js --campaign samoa_tourism_q1 --limit 25

CLI Options

whatsapp-phone-normalize.js

Flag Default Description
--dry-run false Preview without DB writes
--limit N all Max leads to process

whatsapp-outreach.js

Flag Default Description
--dry-run false Preview without sending (no browser)
--limit N batch size (25) Max messages to send
--campaign NAME discoversamoaintro Campaign name for tracking
--category CAT all Filter by business category
--island ISLAND all Filter by island (Upolu, Savai'i)
--priority P all Filter by priority (high/medium/low)

Database

Table: whatsappoutreach (see migrations/003whatsapp_outreach.sql)

Scripts

  • scripts/whatsapp-phone-normalize.js — Phone number normalizer
  • scripts/whatsapp-outreach.js — Main message sender (Playwright + WhatsApp Web)