whatsapp-outreach-run
$
npx mdskill add aAAaqwq/AGI-Super-Team/whatsapp-outreach-runExecute automated WhatsApp campaigns with personalized messaging.
- Sends mass messages to filtered recipients using templates.
- Depends on Baileys session and YAML campaign configurations.
- Validates filters and personalization before execution.
- Outputs dry-run logs and recipient counts for verification.
SKILL.md
.github/skills/whatsapp-outreach-runView on GitHub ↗
---
name: whatsapp-outreach-run
description: Automatic WhatsApp outreach agent run
---
# WhatsApp Outreach Agent - Run Skill
> Run the agent for mass WhatsApp message sending
## When to use
- "run WhatsApp outreach for X"
- "send WhatsApp messages for campaign Y"
- "build and run WhatsApp campaign"
## Before running
1. **Check WhatsApp session:**
```bash
ls $SALES_PATH/whatsapp/baileys_session/
```
If empty -> authenticate first:
```bash
cd $SALES_PATH/whatsapp
node index.js
# Scan QR code
```
2. **Check setup:**
```bash
cd $AGENTS_PATH/whatsapp-outreach
python3 test_setup.py
```
## How to run
### Step 1: Create or select a campaign
If no campaign exists -- create a config:
```yaml
# $AGENTS_PATH/campaigns/my-campaign.yaml
campaign_name: "Campaign Name"
filters:
company_id: ["comp-XXX"] # Optional
product_id: ["prod-XXX"] # Optional
stage: ["new", "qualified"] # Optional
preferred_channel: "whatsapp" # Optional
message_template: |
Hi, {first_name}!
This is Ivan from WeLabelData.
Your message here...
variables:
custom_var: "value"
```
### Step 2: Dry-run (mandatory!)
```bash
cd $AGENTS_PATH/whatsapp-outreach
python3 whatsapp_outreach_agent.py \
--dry-run \
--campaign campaigns/my-campaign.yaml
```
Check:
- Number of recipients
- Message personalization
- Filters are working correctly
### Step 3: Test with one recipient
```bash
python3 whatsapp_outreach_agent.py \
--test-recipient p-XXX
```
Check:
- Message was sent
- Activity was logged
- Git branch was created
### Step 4: Small batch (3 people)
```bash
python3 whatsapp_outreach_agent.py \
--limit 3 \
--campaign campaigns/my-campaign.yaml
```
Check:
- 60 second delay is working
- All activities were logged
- Git branch is correct
### Step 5: Full run
```bash
python3 whatsapp_outreach_agent.py \
--campaign campaigns/my-campaign.yaml
```
- Agent shows preview (first 3 messages)
- Agent asks for confirmation: `[y/N]`
- If `y` -> starts sending
- Progress: `[X/Y] Name → +phone... OK/FAIL`
### Step 6: Review and merge
```bash
cd $PROJECT_ROOT
# Check changes
git diff main
# If OK -> merge
git checkout main
git merge whatsapp-outreach-YYYY-MM-DD-HHMM
# If NOT OK -> delete branch
git branch -D whatsapp-outreach-YYYY-MM-DD-HHMM
```
## Flags
| Flag | Description |
|------|-------------|
| `--campaign FILE` | Path to campaign config (YAML) |
| `--dry-run` | Test run (no sending) |
| `--auto-approve` | Skip human approval (use with caution!) |
| `--test-recipient p-XXX` | Send to one person only |
| `--limit N` | Limit to N recipients |
## Environment Variables
```bash
# Delay between messages (seconds)
export WHATSAPP_DELAY_SECONDS=60
# Daily message limit
export WHATSAPP_DAILY_LIMIT=20
# Lookback for idempotency (days)
export IDEMPOTENCY_LOOKBACK_DAYS=7
```
## Output
### Logs
`$AGENTS_PATH/logs/whatsapp_outreach_YYYY-MM-DD_HH-MM.md`
### Git branch
`whatsapp-outreach-YYYY-MM-DD-HHMM`
### CRM changes
- `sales/crm/activities.csv` — added activities
- `sales/crm/relationships/leads.csv` — updated last_contact_date
- `sales/crm/contacts/people.csv` — added notes (if failed)
## Troubleshooting
### "WhatsApp session expired"
```bash
cd $SALES_PATH/whatsapp
node index.js
# Scan QR code
```
### "FloodWait error"
- Increase `WHATSAPP_DELAY_SECONDS`
- Decrease `WHATSAPP_DAILY_LIMIT`
- Wait 24 hours
### "No recipients found"
- Check filters in campaign config
- Check CRM data (people.csv, leads.csv)
- Check phone numbers in people.csv
### Git branch not created
- Check if there were successful sends
- Check `git status` in $PROJECT_ROOT
- Possibly all sends failed
## Examples
### Client D training reminder
```bash
python3 whatsapp_outreach_agent.py \
--campaign campaigns/clientd-training-reminder.yaml
```
### Quick test
```bash
python3 whatsapp_outreach_agent.py \
--dry-run \
--limit 1 \
--campaign campaigns/example-whatsapp.yaml
```
## Related files
- **Spec:** `$AGENTS_PATH/specs/whatsapp-outreach.spec.md`
- **README:** `$AGENTS_PATH/whatsapp-outreach/README.md`
- **Implementation:** `$AGENTS_PATH/whatsapp-outreach/IMPLEMENTATION.md`
## Important
- **Always --dry-run first**
- **Never --auto-approve without testing**
- **Max 20 messages per day** (WhatsApp may ban)
- **Human approval required** (per owner decision)
- **Review git branch before merge**
More from aAAaqwq/AGI-Super-Team
- a-fund-monitor监控 A 股基金实时估值与盘后净值,自动判断交易日并生成提醒或分析。
- account-executive>
- add-leadAdd company/person/relationship to CRM
- adsComprehensive ad account analysis across all major platforms (Google, Meta
- ads-agentAI-агент для управления Facebook рекламой. Вызывай для анализа, оптимизации, создания кампаний и отчётов.
- afrexai-compliance-auditRun internal compliance audits against major governance and security
- afrexai-personal-financeComplete personal finance system — budgeting, debt payoff, investing, tax optimization, net worth tracking, and financial independence planning. Use when managing money, building wealth, paying off debt, planning retirement, or optimizing taxes. Zero dependencies.
- after-salesUse when managing post-purchase experience, building customer loyalty, or increasing repeat purchases
- agent-contactsAI agent contacts — add, list, remove MCP contacts. Use when someone gives an agent URL, or when you need to view/remove contacts.
- agent-model-switcher批量查看和切换子 agent 的模型配置,用于统一调整多 agent 的 provider/model 设置。