@moltflow/skills 1.4.0 β 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +188 -0
- package/SKILL.md +672 -35
- package/moltflow/SKILL.md +463 -0
- package/moltflow-a2a/SKILL.md +437 -0
- package/moltflow-admin/SKILL.md +392 -0
- package/moltflow-ai/SKILL.md +473 -0
- package/moltflow-leads/SKILL.md +275 -0
- package/moltflow-outreach/SKILL.md +403 -0
- package/moltflow-reviews/SKILL.md +242 -0
- package/package.json +18 -4
- package/scripts/a2a_client.py +1 -1
- package/scripts/admin.py +2 -4
- package/scripts/ai_config.py +107 -30
- package/scripts/gdpr.py +81 -0
- package/scripts/group_monitor.py +123 -0
- package/scripts/leads.py +111 -0
- package/scripts/outreach.py +332 -0
- package/scripts/quickstart.py +2 -2
- package/scripts/reviews.py +1 -1
- package/scripts/send_message.py +32 -23
package/SKILL.md
CHANGED
|
@@ -1,28 +1,68 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: "WhatsApp Automation
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
name: "MoltFlow β WhatsApp AI Automation Platform and More"
|
|
3
|
+
version: "2.1.0"
|
|
4
|
+
description: "MoltFlow β complete WhatsApp automation platform: bulk messaging, scheduled messages, custom groups, lead detection & CRM, AI replies with style cloning, knowledge base (RAG), voice transcription, group monitoring, labels, anti-spam, content safeguards, review collection, webhooks, GDPR compliance (data export, contact erasure, account deletion), and agent-to-agent protocol (JSON-RPC, encryption). 90+ API endpoints."
|
|
5
|
+
source: "MoltFlow Team"
|
|
6
|
+
risk: safe
|
|
7
|
+
homepage: "https://molt.waiflow.app"
|
|
8
|
+
requiredEnv:
|
|
9
|
+
- MOLTFLOW_API_KEY
|
|
10
|
+
primaryEnv: MOLTFLOW_API_KEY
|
|
11
|
+
disable-model-invocation: true
|
|
12
|
+
metadata: {"openclaw":{"emoji":"π±","homepage":"https://molt.waiflow.app","requires":{"env":["MOLTFLOW_API_KEY"]},"primaryEnv":"MOLTFLOW_API_KEY"}}
|
|
5
13
|
---
|
|
6
14
|
|
|
7
15
|
# WhatsApp Automation & A2A
|
|
8
16
|
|
|
9
|
-
MoltFlow
|
|
17
|
+
MoltFlow is a complete WhatsApp automation platform with 90+ API endpoints covering messaging, lead management, AI intelligence, and agent-to-agent communication.
|
|
18
|
+
|
|
19
|
+
> **Save up to 17% with yearly billing** β Free tier available, no credit card required.
|
|
20
|
+
|
|
21
|
+
### Platform Features
|
|
22
|
+
|
|
23
|
+
| Category | Features |
|
|
24
|
+
|----------|----------|
|
|
25
|
+
| **Messaging** | Send text, media, polls, stickers, GIFs, voice notes, locations, vCards. Reply, react, edit, unsend. Read receipts & typing simulation. |
|
|
26
|
+
| **Bulk Messaging** | Broadcast to custom groups with ban-safe throttling (random 30sβ2min delays). Real-time progress via SSE. Pause/resume/cancel. |
|
|
27
|
+
| **Scheduled Messages** | One-time, daily, weekly, monthly, or custom cron. Timezone-aware. Pause, resume, edit. Execution history tracking. |
|
|
28
|
+
| **Custom Groups** | Build targeted contact lists. Import members from WhatsApp groups or add manually. Feed into Bulk Send or Scheduled Messages. CSV/JSON export. |
|
|
29
|
+
| **Lead Detection & CRM** | Auto-detect purchase intent in monitored groups. Lead pipeline with status tracking (new β contacted β qualified β converted). Bulk status update, bulk add-to-group, CSV/JSON export. Reciprocity check (anti-spam). |
|
|
30
|
+
| **Group Monitoring** | Monitor 50+ groups simultaneously. Keyword/mention detection. Auto-respond with AI. Per-group prompts. Skip admins & existing contacts. |
|
|
31
|
+
| **Labels** | Create, sync to WhatsApp Business, import from WhatsApp. Color-coded contact organization. |
|
|
32
|
+
| **AI Replies** | GPT-4/Claude powered reply generation. Context-aware with RAG knowledge base. Preview before sending. |
|
|
33
|
+
| **Style Cloning (Learn Mode)** | Train style profiles from your message history. AI replies that match your tone, vocabulary, and patterns. Per-contact profiles. |
|
|
34
|
+
| **Knowledge Base (RAG)** | Upload PDF/TXT documents. Semantic search with embeddings. AI uses your docs to answer questions accurately. |
|
|
35
|
+
| **Voice Transcription** | Whisper-powered voice message transcription. Async task queue with status tracking. |
|
|
36
|
+
| **Review Collection** | Auto-collect positive feedback via sentiment analysis (14+ languages). Approve/reject. Export testimonials as JSON/HTML. |
|
|
37
|
+
| **Anti-Spam Engine** | Rate limits, duplicate blocking, pattern filters (block/flag/delay). Human-like typing simulation. Burst rate limiting (4 msgs/2 min). |
|
|
38
|
+
| **Content Safeguards** | Block API keys, credit cards, SSNs, PII, prompt injection. Custom regex rules. Test content against full policy stack. |
|
|
39
|
+
| **Webhooks** | 10+ event types (message.received, lead.detected, session.connected, etc.). HMAC-SHA256 signed. Delivery history. Test payloads. |
|
|
40
|
+
| **A2A Protocol** | JSON-RPC 2.0 agent-to-agent communication. X25519-AES256GCM encryption. Agent discovery, trust levels, encrypted messaging. |
|
|
41
|
+
| **GDPR Compliance** | Auto-expiring messages (90-day). Data minimization (500-char preview). Contact erasure. Data export. Account deletion (32+ table cascade). AI consent enforcement. DPA available. Named sub-processors (Art. 28). |
|
|
42
|
+
| **Billing & Usage** | Stripe-powered. Free/Starter/Pro/Business plans. Usage tracking, daily breakdown. Billing portal. **Yearly plans save up to 17%.** |
|
|
10
43
|
|
|
11
44
|
## When to use
|
|
12
45
|
|
|
13
46
|
Use this skill when you need to:
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
- Manage contact
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
47
|
+
- **Send messages** β text, media, polls, stickers, GIFs, voice notes, locations, vCards
|
|
48
|
+
- **Bulk message** β broadcast to custom groups with ban-safe throttling and progress tracking
|
|
49
|
+
- **Schedule messages** β one-time, recurring (daily/weekly/monthly), or cron expressions with timezone support
|
|
50
|
+
- **Manage custom groups** β create contact lists, import from WhatsApp groups, export CSV/JSON
|
|
51
|
+
- **Detect and manage leads** β monitor groups for purchase intent, track lead pipeline, bulk operations
|
|
52
|
+
- **Monitor WhatsApp groups** β keyword detection, auto-respond, per-group AI prompts
|
|
53
|
+
- **Organize with labels** β create labels, sync with WhatsApp Business, import/export
|
|
54
|
+
- **Generate AI replies** β GPT-4/Claude powered, context-aware, with style cloning
|
|
55
|
+
- **Train style profiles** β Learn Mode analyzes your messages to clone your communication style
|
|
56
|
+
- **Build a knowledge base** β upload documents (PDF/TXT), semantic RAG search, AI-powered answers
|
|
57
|
+
- **Transcribe voice messages** β Whisper-powered async transcription
|
|
58
|
+
- **Collect reviews** β sentiment analysis across 14+ languages, testimonial export (JSON/HTML)
|
|
59
|
+
- **Configure anti-spam** β rate limits, duplicate blocking, custom pattern filters
|
|
60
|
+
- **Set content safeguards** β block secrets, PII, prompt injection with custom regex rules
|
|
61
|
+
- **Manage webhooks** β subscribe to 10+ event types, HMAC signing, delivery tracking
|
|
62
|
+
- **Connect AI agents** β A2A JSON-RPC 2.0 with X25519-AES256GCM encryption
|
|
63
|
+
- **Manage API keys** β create, rotate, revoke; SHA-256 hashed
|
|
64
|
+
- **Track usage & billing** β current period, daily breakdown, Stripe checkout/portal
|
|
65
|
+
- **Ensure GDPR compliance** β auto-expiring messages, data minimization, contact erasure, DPA
|
|
26
66
|
|
|
27
67
|
## Use cases
|
|
28
68
|
|
|
@@ -32,12 +72,26 @@ Use this skill when you need to:
|
|
|
32
72
|
- Schedule follow-up messages to contacts after meetings
|
|
33
73
|
- Collect and organize customer testimonials from group conversations
|
|
34
74
|
|
|
75
|
+
**Bulk messaging & scheduling:**
|
|
76
|
+
- Build "VIP Clients" list from WhatsApp group members, then broadcast a promo to all 200 contacts
|
|
77
|
+
- Schedule weekly Monday 9 AM updates to your "Newsletter" group β timezone-aware, fires even when your laptop is off
|
|
78
|
+
- Pause a running bulk send mid-flight, edit the message, then resume
|
|
79
|
+
- Set up daily cron job to send stock alerts to your trading group at market open
|
|
80
|
+
|
|
35
81
|
**Business & lead management:**
|
|
36
82
|
- Monitor industry groups for purchase-intent keywords ("looking for", "need help with")
|
|
83
|
+
- Auto-detect leads β track pipeline (new β contacted β qualified β converted)
|
|
84
|
+
- Bulk update 50 leads to "contacted" status and add them to your "Follow-up" custom group in one API call
|
|
85
|
+
- Export leads as CSV for your CRM, or JSON for your automation pipeline
|
|
37
86
|
- Auto-label new leads as VIP/Hot/Cold based on message sentiment
|
|
38
|
-
- Route group-detected leads to your sales team via labels
|
|
39
87
|
- Run feedback collectors across all chats β auto-approve positive reviews for your website
|
|
40
88
|
|
|
89
|
+
**AI & knowledge:**
|
|
90
|
+
- Train a style profile from 500+ of your messages β AI replies sound exactly like you
|
|
91
|
+
- Upload your product catalog as PDF β AI answers customer questions using RAG search
|
|
92
|
+
- Transcribe voice messages with Whisper and auto-respond with AI
|
|
93
|
+
- Generate context-aware replies that combine your style + your knowledge base
|
|
94
|
+
|
|
41
95
|
**Agent-to-Agent (A2A):**
|
|
42
96
|
- Build a support agent that escalates complex tickets to a human agent over A2A
|
|
43
97
|
- Connect your booking agent with a payment agent β encrypted end-to-end
|
|
@@ -51,12 +105,25 @@ Use this skill when you need to:
|
|
|
51
105
|
- Create custom regex rules to flag sensitive content before it leaves your account
|
|
52
106
|
- Test any message against your full policy stack before sending
|
|
53
107
|
|
|
108
|
+
**GDPR & data privacy:**
|
|
109
|
+
- Message previews auto-expire after 90 days (configurable) β no indefinite storage
|
|
110
|
+
- Only first 500 characters stored β full messages are not retained
|
|
111
|
+
- Style training extracts only statistical patterns, never stores raw message text
|
|
112
|
+
- Full GDPR Article 13/14 compliant privacy policy with named sub-processors
|
|
113
|
+
- Data Controller (you) / Data Processor (MoltFlow) model with DPA available
|
|
114
|
+
- Third-party contact erasure process for GDPR right-to-be-forgotten requests
|
|
115
|
+
|
|
54
116
|
## Setup
|
|
55
117
|
|
|
118
|
+
> **Free tier available** β 1 session, 50 messages/month, no credit card required.
|
|
119
|
+
> Sign up at https://molt.waiflow.app/checkout?plan=free
|
|
120
|
+
|
|
56
121
|
Env vars:
|
|
57
122
|
- `MOLTFLOW_API_KEY` (required) β API key from waiflow.app dashboard
|
|
58
123
|
- `MOLTFLOW_API_URL` (optional) β defaults to `https://apiv2.waiflow.app`
|
|
59
124
|
|
|
125
|
+
**Security note:** Use the principle of least privilege. If you only need messaging and monitoring features, create a non-admin API key. Admin-level keys grant access to tenant management, user operations, and GDPR erasure endpoints. Only supply an admin key if you explicitly need those capabilities.
|
|
126
|
+
|
|
60
127
|
Authentication: `X-API-Key: $MOLTFLOW_API_KEY` header or `Authorization: Bearer $TOKEN` (JWT from login).
|
|
61
128
|
|
|
62
129
|
Base URL: `https://apiv2.waiflow.app/api/v2`
|
|
@@ -76,9 +143,25 @@ curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
|
76
143
|
-d '{"name": "Main Line"}' \
|
|
77
144
|
https://apiv2.waiflow.app/api/v2/sessions
|
|
78
145
|
|
|
79
|
-
#
|
|
146
|
+
# Start session (triggers QR code generation)
|
|
147
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
148
|
+
https://apiv2.waiflow.app/api/v2/sessions/{session_id}/start
|
|
149
|
+
|
|
150
|
+
# Get QR code for pairing
|
|
80
151
|
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
81
|
-
https://apiv2.waiflow.app/api/v2/sessions/{session_id}
|
|
152
|
+
https://apiv2.waiflow.app/api/v2/sessions/{session_id}/qr
|
|
153
|
+
|
|
154
|
+
# Stop session
|
|
155
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
156
|
+
https://apiv2.waiflow.app/api/v2/sessions/{session_id}/stop
|
|
157
|
+
|
|
158
|
+
# Restart session (preserves auth if previously paired)
|
|
159
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
160
|
+
https://apiv2.waiflow.app/api/v2/sessions/{session_id}/restart
|
|
161
|
+
|
|
162
|
+
# Logout (clears WhatsApp auth, requires fresh QR scan)
|
|
163
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
164
|
+
https://apiv2.waiflow.app/api/v2/sessions/{session_id}/logout
|
|
82
165
|
|
|
83
166
|
# Delete session
|
|
84
167
|
curl -X DELETE -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
@@ -91,6 +174,16 @@ curl -X DELETE -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
|
91
174
|
| `/sessions` | POST | Create session |
|
|
92
175
|
| `/sessions/{id}` | GET | Get session details |
|
|
93
176
|
| `/sessions/{id}` | DELETE | Delete session |
|
|
177
|
+
| `/sessions/{id}/start` | POST | Start session (triggers QR code) |
|
|
178
|
+
| `/sessions/{id}/stop` | POST | Stop session |
|
|
179
|
+
| `/sessions/{id}/restart` | POST | Restart (preserves auth if paired) |
|
|
180
|
+
| `/sessions/{id}/qr` | GET | Get QR code for WhatsApp pairing |
|
|
181
|
+
| `/sessions/{id}/logout` | POST | Logout (clears auth, needs new QR) |
|
|
182
|
+
| `/sessions/{id}/events` | GET | SSE stream for real-time status updates |
|
|
183
|
+
|
|
184
|
+
**Session lifecycle:** `create` β `start` β scan QR β `working` β `stop`/`restart`/`logout`/`delete`
|
|
185
|
+
|
|
186
|
+
**SSE events:** Connect to `/sessions/{id}/events?token=JWT` for real-time status changes (stopped, starting, qr_code, working, failed).
|
|
94
187
|
|
|
95
188
|
## 2. Messages
|
|
96
189
|
|
|
@@ -113,6 +206,9 @@ curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
|
113
206
|
| Endpoint | Method | Description |
|
|
114
207
|
|----------|--------|-------------|
|
|
115
208
|
| `/messages/send` | POST | Send text message |
|
|
209
|
+
| `/messages/send/poll` | POST | Send poll (question + options) |
|
|
210
|
+
| `/messages/send/sticker` | POST | Send sticker (WebP URL or base64) |
|
|
211
|
+
| `/messages/send/gif` | POST | Send GIF (MP4 URL or base64) |
|
|
116
212
|
| `/messages/chats/{session_id}` | GET | List chats |
|
|
117
213
|
| `/messages/chat/{session_id}/{chat_id}` | GET | Get messages in chat |
|
|
118
214
|
| `/messages/{message_id}` | GET | Get single message |
|
|
@@ -137,7 +233,7 @@ curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
|
137
233
|
# Update monitoring settings
|
|
138
234
|
curl -X PATCH -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
139
235
|
-H "Content-Type: application/json" \
|
|
140
|
-
-d '{"monitor_mode": "
|
|
236
|
+
-d '{"monitor_mode": "keywords", "monitor_keywords": ["looking for", "need help"]}' \
|
|
141
237
|
https://apiv2.waiflow.app/api/v2/groups/{group_id}
|
|
142
238
|
```
|
|
143
239
|
|
|
@@ -146,9 +242,14 @@ curl -X PATCH -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
|
146
242
|
| `/groups` | GET | List monitored groups |
|
|
147
243
|
| `/groups/available/{session_id}` | GET | List available WhatsApp groups |
|
|
148
244
|
| `/groups` | POST | Add group to monitoring |
|
|
245
|
+
| `/groups/create` | POST | Create new WhatsApp group |
|
|
149
246
|
| `/groups/{id}` | GET | Get group details |
|
|
150
247
|
| `/groups/{id}` | PATCH | Update monitoring settings |
|
|
151
248
|
| `/groups/{id}` | DELETE | Remove from monitoring |
|
|
249
|
+
| `/groups/{wa_group_id}/participants/add` | POST | Add members to group |
|
|
250
|
+
| `/groups/{wa_group_id}/participants/remove` | POST | Remove members from group |
|
|
251
|
+
| `/groups/{wa_group_id}/admin/promote` | POST | Promote to admin |
|
|
252
|
+
| `/groups/{wa_group_id}/admin/demote` | POST | Demote from admin |
|
|
152
253
|
|
|
153
254
|
## 4. Labels
|
|
154
255
|
|
|
@@ -310,11 +411,11 @@ curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
|
310
411
|
# Generate AI reply (uses style profile)
|
|
311
412
|
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
312
413
|
-d '{"contact_id": "jid", "context": "customer question", "apply_style": true}' \
|
|
313
|
-
https://apiv2.waiflow.app/api/v2/ai/
|
|
414
|
+
https://apiv2.waiflow.app/api/v2/ai/generate-reply
|
|
314
415
|
|
|
315
416
|
# Preview AI reply (no usage tracking)
|
|
316
417
|
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
317
|
-
"https://apiv2.waiflow.app/api/v2/ai/
|
|
418
|
+
"https://apiv2.waiflow.app/api/v2/ai/preview?contact_id=jid&context=question&apply_style=true"
|
|
318
419
|
```
|
|
319
420
|
|
|
320
421
|
### AI API Reference
|
|
@@ -326,14 +427,14 @@ curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
|
326
427
|
| `/ai/style/profile` | GET | Get style profile |
|
|
327
428
|
| `/ai/style/profiles` | GET | List all profiles |
|
|
328
429
|
| `/ai/style/profile/{id}` | DELETE | Delete profile |
|
|
329
|
-
| `/ai/
|
|
330
|
-
| `/ai/
|
|
430
|
+
| `/ai/generate-reply` | POST | Generate AI reply |
|
|
431
|
+
| `/ai/preview` | GET | Preview reply (no tracking) |
|
|
331
432
|
|
|
332
433
|
---
|
|
333
434
|
|
|
334
435
|
## 9. A2A β Agent-to-Agent Protocol
|
|
335
436
|
|
|
336
|
-
**Requires
|
|
437
|
+
**Requires Pro plan or above.** Uses JSON-RPC 2.0 over HTTPS with X25519-AES256GCM encryption.
|
|
337
438
|
|
|
338
439
|
### Bootstrap & encryption
|
|
339
440
|
|
|
@@ -459,7 +560,50 @@ curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
|
459
560
|
|
|
460
561
|
---
|
|
461
562
|
|
|
462
|
-
## 11.
|
|
563
|
+
## 11. Webhooks
|
|
564
|
+
|
|
565
|
+
```bash
|
|
566
|
+
# List webhooks
|
|
567
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
568
|
+
https://apiv2.waiflow.app/api/v2/webhooks
|
|
569
|
+
|
|
570
|
+
# Create webhook
|
|
571
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
572
|
+
-H "Content-Type: application/json" \
|
|
573
|
+
-d '{"name": "Order Bot", "url": "https://example.com/webhook", "events": ["message.received", "lead.detected"], "secret": "optional-hmac-secret"}' \
|
|
574
|
+
https://apiv2.waiflow.app/api/v2/webhooks
|
|
575
|
+
|
|
576
|
+
# Update webhook
|
|
577
|
+
curl -X PATCH -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
578
|
+
-H "Content-Type: application/json" \
|
|
579
|
+
-d '{"events": ["message.received", "message.sent", "session.connected"]}' \
|
|
580
|
+
https://apiv2.waiflow.app/api/v2/webhooks/{webhook_id}
|
|
581
|
+
|
|
582
|
+
# Test webhook (sends sample payload)
|
|
583
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
584
|
+
https://apiv2.waiflow.app/api/v2/webhooks/{webhook_id}/test
|
|
585
|
+
|
|
586
|
+
# Delete webhook
|
|
587
|
+
curl -X DELETE -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
588
|
+
https://apiv2.waiflow.app/api/v2/webhooks/{webhook_id}
|
|
589
|
+
```
|
|
590
|
+
|
|
591
|
+
| Endpoint | Method | Description |
|
|
592
|
+
|----------|--------|-------------|
|
|
593
|
+
| `/webhooks` | GET | List webhooks |
|
|
594
|
+
| `/webhooks` | POST | Create webhook |
|
|
595
|
+
| `/webhooks/{id}` | GET | Get webhook details |
|
|
596
|
+
| `/webhooks/{id}` | PATCH | Update webhook |
|
|
597
|
+
| `/webhooks/{id}` | DELETE | Delete webhook |
|
|
598
|
+
| `/webhooks/{id}/test` | POST | Send test payload |
|
|
599
|
+
|
|
600
|
+
**Events:** `message.received`, `message.sent`, `message.delivered`, `message.read`, `lead.detected`, `session.connected`, `session.disconnected`, `group.message`
|
|
601
|
+
|
|
602
|
+
**Security:** Webhooks include HMAC-SHA256 signature in `X-Webhook-Signature` header when `secret` is set. URLs must not resolve to private IPs (SSRF protection).
|
|
603
|
+
|
|
604
|
+
---
|
|
605
|
+
|
|
606
|
+
## 12. Auth & API Keys
|
|
463
607
|
|
|
464
608
|
```bash
|
|
465
609
|
# Login
|
|
@@ -489,12 +633,17 @@ curl -X POST -H "Authorization: Bearer $TOKEN" \
|
|
|
489
633
|
| `/auth/login` | POST | Login (email/password), returns JWT |
|
|
490
634
|
| `/auth/refresh` | POST | Refresh token |
|
|
491
635
|
| `/auth/me` | GET | Current user + tenant |
|
|
636
|
+
| `/auth/logout` | POST | Invalidate refresh token |
|
|
492
637
|
| `/auth/magic-link/request` | POST | Request magic link |
|
|
638
|
+
| `/auth/magic-link/verify` | POST | Verify magic link token |
|
|
639
|
+
| `/auth/forgot-password` | POST | Request password reset email |
|
|
640
|
+
| `/auth/reset-password` | POST | Confirm password reset (token + new password) |
|
|
641
|
+
| `/auth/verify-email` | POST | Verify email address (token from signup email) |
|
|
493
642
|
| `/api-keys` | GET/POST | List/create API keys |
|
|
494
643
|
| `/api-keys/{id}` | GET/DELETE | Get/revoke key |
|
|
495
644
|
| `/api-keys/{id}/rotate` | POST | Rotate key |
|
|
496
645
|
|
|
497
|
-
##
|
|
646
|
+
## 13. Usage & Billing
|
|
498
647
|
|
|
499
648
|
```bash
|
|
500
649
|
# Current period usage
|
|
@@ -514,7 +663,7 @@ curl -X POST -H "Authorization: Bearer $TOKEN" \
|
|
|
514
663
|
https://apiv2.waiflow.app/api/v2/billing/checkout
|
|
515
664
|
|
|
516
665
|
# Billing portal
|
|
517
|
-
curl -H "Authorization: Bearer $TOKEN" \
|
|
666
|
+
curl -X POST -H "Authorization: Bearer $TOKEN" \
|
|
518
667
|
https://apiv2.waiflow.app/api/v2/billing/portal
|
|
519
668
|
```
|
|
520
669
|
|
|
@@ -524,31 +673,519 @@ curl -H "Authorization: Bearer $TOKEN" \
|
|
|
524
673
|
| `/usage/history` | GET | Historical usage |
|
|
525
674
|
| `/usage/daily` | GET | Daily breakdown |
|
|
526
675
|
| `/billing/plans` | GET | Available plans |
|
|
527
|
-
| `/billing/subscription` | GET |
|
|
676
|
+
| `/billing/subscription` | GET | Subscription details (plan info, usage, next invoice) |
|
|
528
677
|
| `/billing/checkout` | POST | Stripe checkout session |
|
|
529
|
-
| `/billing/portal` |
|
|
678
|
+
| `/billing/portal` | POST | Stripe billing portal |
|
|
530
679
|
| `/billing/cancel` | POST | Cancel subscription |
|
|
531
680
|
|
|
532
681
|
---
|
|
533
682
|
|
|
683
|
+
## 14. Scheduled Messages
|
|
684
|
+
|
|
685
|
+
```bash
|
|
686
|
+
# Create scheduled message (one-time)
|
|
687
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
688
|
+
-H "Content-Type: application/json" \
|
|
689
|
+
-d '{"name": "Follow-up", "session_id": "uuid", "custom_group_id": "custom-group-uuid", "message_content": "Just checking in!", "schedule_type": "one_time", "scheduled_time": "2026-02-15T09:00:00", "timezone": "Asia/Jerusalem"}' \
|
|
690
|
+
https://apiv2.waiflow.app/api/v2/scheduled-messages
|
|
691
|
+
|
|
692
|
+
# Create recurring schedule (cron)
|
|
693
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
694
|
+
-H "Content-Type: application/json" \
|
|
695
|
+
-d '{"name": "Weekly Update", "session_id": "uuid", "custom_group_id": "custom-group-uuid", "message_content": "Weekly report...", "schedule_type": "cron", "cron_expression": "0 9 * * MON", "timezone": "America/New_York"}' \
|
|
696
|
+
https://apiv2.waiflow.app/api/v2/scheduled-messages
|
|
697
|
+
|
|
698
|
+
# Pause / resume / cancel
|
|
699
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
700
|
+
https://apiv2.waiflow.app/api/v2/scheduled-messages/{schedule_id}/pause
|
|
701
|
+
|
|
702
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
703
|
+
https://apiv2.waiflow.app/api/v2/scheduled-messages/{schedule_id}/resume
|
|
704
|
+
|
|
705
|
+
# View execution history
|
|
706
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
707
|
+
https://apiv2.waiflow.app/api/v2/scheduled-messages/{schedule_id}/history
|
|
708
|
+
```
|
|
709
|
+
|
|
710
|
+
| Endpoint | Method | Description |
|
|
711
|
+
|----------|--------|-------------|
|
|
712
|
+
| `/scheduled-messages` | GET | List all scheduled messages |
|
|
713
|
+
| `/scheduled-messages` | POST | Create scheduled message (one-time or recurring) |
|
|
714
|
+
| `/scheduled-messages/{id}` | GET | Get schedule with execution history |
|
|
715
|
+
| `/scheduled-messages/{id}` | PATCH | Update schedule and recalculate next run |
|
|
716
|
+
| `/scheduled-messages/{id}/cancel` | POST | Cancel schedule |
|
|
717
|
+
| `/scheduled-messages/{id}/pause` | POST | Pause active schedule |
|
|
718
|
+
| `/scheduled-messages/{id}/resume` | POST | Resume paused schedule |
|
|
719
|
+
| `/scheduled-messages/{id}` | DELETE | Delete cancelled/completed schedule |
|
|
720
|
+
| `/scheduled-messages/{id}/history` | GET | Execution history (paginated) |
|
|
721
|
+
|
|
722
|
+
**Schedule types:** `one_time`, `daily`, `weekly`, `monthly`, `cron`
|
|
723
|
+
|
|
724
|
+
**Required fields:** `name`, `session_id`, `custom_group_id`, `message_content`, `scheduled_time` (for one-time) or `cron_expression` (for cron)
|
|
725
|
+
|
|
726
|
+
---
|
|
727
|
+
|
|
728
|
+
## 15. Bulk Send
|
|
729
|
+
|
|
730
|
+
```bash
|
|
731
|
+
# Create bulk send job
|
|
732
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
733
|
+
-H "Content-Type: application/json" \
|
|
734
|
+
-d '{"session_id": "uuid", "custom_group_id": "custom-group-uuid", "message_content": "Special offer for VIP clients!"}' \
|
|
735
|
+
https://apiv2.waiflow.app/api/v2/bulk-send
|
|
736
|
+
|
|
737
|
+
# List bulk send jobs
|
|
738
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
739
|
+
https://apiv2.waiflow.app/api/v2/bulk-send
|
|
740
|
+
|
|
741
|
+
# Stream real-time progress (SSE)
|
|
742
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
743
|
+
https://apiv2.waiflow.app/api/v2/bulk-send/{job_id}/progress
|
|
744
|
+
|
|
745
|
+
# Pause / resume / cancel
|
|
746
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
747
|
+
https://apiv2.waiflow.app/api/v2/bulk-send/{job_id}/pause
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
| Endpoint | Method | Description |
|
|
751
|
+
|----------|--------|-------------|
|
|
752
|
+
| `/bulk-send` | POST | Create bulk send job (quota reserved) |
|
|
753
|
+
| `/bulk-send` | GET | List all bulk send jobs |
|
|
754
|
+
| `/bulk-send/{id}` | GET | Job details with recipients |
|
|
755
|
+
| `/bulk-send/{id}/pause` | POST | Pause running job |
|
|
756
|
+
| `/bulk-send/{id}/resume` | POST | Resume paused job |
|
|
757
|
+
| `/bulk-send/{id}/cancel` | POST | Cancel job (releases unused quota) |
|
|
758
|
+
| `/bulk-send/{id}/progress` | GET | Real-time progress via SSE |
|
|
759
|
+
|
|
760
|
+
**Anti-ban:** Random 30sβ2min delays between messages, typing simulation, seen indicators. Zero ban risk.
|
|
761
|
+
|
|
762
|
+
---
|
|
763
|
+
|
|
764
|
+
## 16. Custom Groups
|
|
765
|
+
|
|
766
|
+
```bash
|
|
767
|
+
# Create custom group
|
|
768
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
769
|
+
-H "Content-Type: application/json" \
|
|
770
|
+
-d '{"name": "VIP Clients", "members": [{"phone": "+15550123456"}, {"phone": "+15550987654"}]}' \
|
|
771
|
+
https://apiv2.waiflow.app/api/v2/custom-groups
|
|
772
|
+
|
|
773
|
+
# List all custom groups
|
|
774
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
775
|
+
https://apiv2.waiflow.app/api/v2/custom-groups
|
|
776
|
+
|
|
777
|
+
# Add members
|
|
778
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
779
|
+
-H "Content-Type: application/json" \
|
|
780
|
+
-d '{"contacts": [{"phone": "+15551112222"}, {"phone": "+15553334444"}]}' \
|
|
781
|
+
https://apiv2.waiflow.app/api/v2/custom-groups/{group_id}/members/add
|
|
782
|
+
|
|
783
|
+
# Export as CSV
|
|
784
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
785
|
+
https://apiv2.waiflow.app/api/v2/custom-groups/{group_id}/export/csv
|
|
786
|
+
|
|
787
|
+
# List WhatsApp groups available for import
|
|
788
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
789
|
+
https://apiv2.waiflow.app/api/v2/custom-groups/wa-groups
|
|
790
|
+
|
|
791
|
+
# Create group by importing members from WhatsApp groups
|
|
792
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
793
|
+
-H "Content-Type: application/json" \
|
|
794
|
+
-d '{"name": "Imported Leads", "wa_groups": [{"wa_group_id": "123@g.us", "session_id": "session-uuid"}]}' \
|
|
795
|
+
https://apiv2.waiflow.app/api/v2/custom-groups/from-wa-groups
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
| Endpoint | Method | Description |
|
|
799
|
+
|----------|--------|-------------|
|
|
800
|
+
| `/custom-groups` | GET | List all custom groups |
|
|
801
|
+
| `/custom-groups` | POST | Create group (with optional initial members) |
|
|
802
|
+
| `/custom-groups/contacts` | GET | List all unique contacts across sessions |
|
|
803
|
+
| `/custom-groups/wa-groups` | GET | List WhatsApp groups for import |
|
|
804
|
+
| `/custom-groups/from-wa-groups` | POST | Create group by importing WA group members |
|
|
805
|
+
| `/custom-groups/{id}` | GET | Group details with members |
|
|
806
|
+
| `/custom-groups/{id}` | PATCH | Update group name |
|
|
807
|
+
| `/custom-groups/{id}` | DELETE | Delete group and members |
|
|
808
|
+
| `/custom-groups/{id}/members/add` | POST | Add members (skips duplicates) |
|
|
809
|
+
| `/custom-groups/{id}/members/remove` | POST | Remove members by phone |
|
|
810
|
+
| `/custom-groups/{id}/export/csv` | GET | Export members as CSV |
|
|
811
|
+
| `/custom-groups/{id}/export/json` | GET | Export members as JSON |
|
|
812
|
+
|
|
813
|
+
**Note:** Custom Groups are MoltFlow contact lists, not WhatsApp groups. Use them for targeted Bulk Send and Scheduled Messages.
|
|
814
|
+
|
|
815
|
+
---
|
|
816
|
+
|
|
817
|
+
## 17. Leads
|
|
818
|
+
|
|
819
|
+
```bash
|
|
820
|
+
# List leads (with filters)
|
|
821
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
822
|
+
"https://apiv2.waiflow.app/api/v2/leads?status=new&source_group_id=uuid&search=pricing&limit=50"
|
|
823
|
+
|
|
824
|
+
# Get lead details
|
|
825
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
826
|
+
https://apiv2.waiflow.app/api/v2/leads/{lead_id}
|
|
827
|
+
|
|
828
|
+
# Update lead status
|
|
829
|
+
curl -X PATCH -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
830
|
+
-H "Content-Type: application/json" \
|
|
831
|
+
-d '{"status": "contacted"}' \
|
|
832
|
+
https://apiv2.waiflow.app/api/v2/leads/{lead_id}/status
|
|
833
|
+
|
|
834
|
+
# Bulk update status
|
|
835
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
836
|
+
-H "Content-Type: application/json" \
|
|
837
|
+
-d '{"lead_ids": ["uuid1", "uuid2"], "status": "qualified"}' \
|
|
838
|
+
https://apiv2.waiflow.app/api/v2/leads/bulk/status
|
|
839
|
+
|
|
840
|
+
# Bulk add to custom group
|
|
841
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
842
|
+
-H "Content-Type: application/json" \
|
|
843
|
+
-d '{"lead_ids": ["uuid1", "uuid2"], "custom_group_id": "custom-group-uuid"}' \
|
|
844
|
+
https://apiv2.waiflow.app/api/v2/leads/bulk/add-to-group
|
|
845
|
+
|
|
846
|
+
# Export as CSV (Pro+ plan)
|
|
847
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
848
|
+
https://apiv2.waiflow.app/api/v2/leads/export/csv
|
|
849
|
+
```
|
|
850
|
+
|
|
851
|
+
| Endpoint | Method | Description |
|
|
852
|
+
|----------|--------|-------------|
|
|
853
|
+
| `/leads` | GET | List leads (filter by status, group, search) |
|
|
854
|
+
| `/leads/{id}` | GET | Lead details |
|
|
855
|
+
| `/leads/{id}/status` | PATCH | Update status (state machine validated) |
|
|
856
|
+
| `/leads/{id}/reciprocity` | GET | Check if lead messaged you first (anti-spam) |
|
|
857
|
+
| `/leads/bulk/status` | POST | Bulk status update |
|
|
858
|
+
| `/leads/bulk/add-to-group` | POST | Bulk add leads to custom group |
|
|
859
|
+
| `/leads/export/csv` | GET | Export as CSV (Pro+ plan, max 10,000) |
|
|
860
|
+
| `/leads/export/json` | GET | Export as JSON (Pro+ plan, max 10,000) |
|
|
861
|
+
|
|
862
|
+
**Lead statuses:** `new` β `contacted` β `qualified` β `converted` / `lost`
|
|
863
|
+
|
|
864
|
+
---
|
|
865
|
+
|
|
866
|
+
## 18. Knowledge Base (RAG)
|
|
867
|
+
|
|
868
|
+
```bash
|
|
869
|
+
# Upload document to knowledge base
|
|
870
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
871
|
+
-F "file=@product-catalog.pdf" \
|
|
872
|
+
https://apiv2.waiflow.app/api/v2/ai/knowledge/ingest
|
|
873
|
+
|
|
874
|
+
# Search knowledge base
|
|
875
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
876
|
+
-H "Content-Type: application/json" \
|
|
877
|
+
-d '{"query": "What are the pricing plans?"}' \
|
|
878
|
+
https://apiv2.waiflow.app/api/v2/ai/knowledge/search
|
|
879
|
+
|
|
880
|
+
# List documents
|
|
881
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
882
|
+
https://apiv2.waiflow.app/api/v2/ai/knowledge/sources
|
|
883
|
+
|
|
884
|
+
# Delete document
|
|
885
|
+
curl -X DELETE -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
886
|
+
https://apiv2.waiflow.app/api/v2/ai/knowledge/{source_id}
|
|
887
|
+
```
|
|
888
|
+
|
|
889
|
+
| Endpoint | Method | Description |
|
|
890
|
+
|----------|--------|-------------|
|
|
891
|
+
| `/ai/knowledge/ingest` | POST | Upload document (PDF or TXT) |
|
|
892
|
+
| `/ai/knowledge/search` | POST | Semantic search with embeddings |
|
|
893
|
+
| `/ai/knowledge/sources` | GET | List all documents |
|
|
894
|
+
| `/ai/knowledge/{id}` | DELETE | Delete document |
|
|
895
|
+
|
|
896
|
+
**How it works:** Upload your product docs, FAQ, or any reference material. When AI generates a reply, it searches your knowledge base for relevant context (RAG β Retrieval-Augmented Generation) to give accurate, grounded answers.
|
|
897
|
+
|
|
898
|
+
---
|
|
899
|
+
|
|
900
|
+
## 19. Voice Transcription
|
|
901
|
+
|
|
902
|
+
```bash
|
|
903
|
+
# Transcribe a voice message
|
|
904
|
+
curl -X POST -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
905
|
+
-H "Content-Type: application/json" \
|
|
906
|
+
-d '{"message_id": "msg-uuid"}' \
|
|
907
|
+
https://apiv2.waiflow.app/api/v2/ai/voice/transcribe
|
|
908
|
+
|
|
909
|
+
# Check transcription status
|
|
910
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
911
|
+
https://apiv2.waiflow.app/api/v2/ai/voice/status/{task_id}
|
|
912
|
+
|
|
913
|
+
# Get transcript
|
|
914
|
+
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \
|
|
915
|
+
https://apiv2.waiflow.app/api/v2/ai/messages/{message_id}/transcript
|
|
916
|
+
```
|
|
917
|
+
|
|
918
|
+
| Endpoint | Method | Description |
|
|
919
|
+
|----------|--------|-------------|
|
|
920
|
+
| `/ai/voice/transcribe` | POST | Queue voice message for Whisper transcription |
|
|
921
|
+
| `/ai/voice/status/{task_id}` | GET | Check transcription status |
|
|
922
|
+
| `/ai/messages/{message_id}/transcript` | GET | Get transcript text |
|
|
923
|
+
|
|
924
|
+
---
|
|
925
|
+
|
|
926
|
+
## Comparison with Other Skills
|
|
927
|
+
|
|
928
|
+
> MoltFlow isn't a messaging wrapper β it's a complete WhatsApp business automation platform. Here's how it stacks up.
|
|
929
|
+
|
|
930
|
+
### Messaging
|
|
931
|
+
|
|
932
|
+
| Feature | **MoltFlow** | whatsapp-ultimate | wacli | whatsapp-automation |
|
|
933
|
+
|---------|:-------:|:-----------------:|:-----:|:-------------------:|
|
|
934
|
+
| Send text | β
| β
| β
| β |
|
|
935
|
+
| Send media (image, audio) | β
| β
| β
| β |
|
|
936
|
+
| Polls | β
| β
| β | β |
|
|
937
|
+
| Stickers (URL + base64) | β
| β
| β | β |
|
|
938
|
+
| Voice notes | β
| β
| β | β |
|
|
939
|
+
| GIFs (URL + base64) | β
| β
| β | β |
|
|
940
|
+
| Reactions | β
| β
| β | β |
|
|
941
|
+
| Reply / Quote | β
| β
| β | β |
|
|
942
|
+
| Edit messages | β
| β
| β | β |
|
|
943
|
+
| Unsend messages | β
| β
| β | β |
|
|
944
|
+
| Send location | β
| β | β | β |
|
|
945
|
+
| Send vCards (contact cards) | β
| β | β | β |
|
|
946
|
+
| Star / unstar messages | β
| β | β | β |
|
|
947
|
+
| Read receipts control | β
| β | β | β |
|
|
948
|
+
| Typing simulation (anti-ban) | β
| β | β | β |
|
|
949
|
+
| Presence management | β
| β | β | β |
|
|
950
|
+
| Receive messages | β
| β
| β
| β
|
|
|
951
|
+
| Two-way chat | β
| β
| β | β |
|
|
952
|
+
|
|
953
|
+
### Groups
|
|
954
|
+
|
|
955
|
+
| Feature | **MoltFlow** | whatsapp-ultimate | wacli | whatsapp-automation |
|
|
956
|
+
|---------|:-------:|:-----------------:|:-----:|:-------------------:|
|
|
957
|
+
| List groups | β
| β
| β | β |
|
|
958
|
+
| Create group | β
| β
| β | β |
|
|
959
|
+
| Add / remove members | β
| β
(full) | β | β |
|
|
960
|
+
| Promote / demote admin | β
| β
| β | β |
|
|
961
|
+
| Smart monitoring (keywords, mentions) | β
| β | β | β |
|
|
962
|
+
| Group lead auto-detection | β
| β | β | β |
|
|
963
|
+
| Group auto-respond | β
| β | β | β |
|
|
964
|
+
| Per-group AI prompts | β
| β | β | β |
|
|
965
|
+
|
|
966
|
+
### Outreach & Scheduling
|
|
967
|
+
|
|
968
|
+
| Feature | **MoltFlow** | whatsapp-ultimate | wacli | whatsapp-automation |
|
|
969
|
+
|---------|:-------:|:-----------------:|:-----:|:-------------------:|
|
|
970
|
+
| Bulk messaging (ban-safe) | β
| β | β | β |
|
|
971
|
+
| Scheduled messages (cron) | β
| β | β | β |
|
|
972
|
+
| Custom contact groups | β
| β | β | β |
|
|
973
|
+
| Timezone-aware scheduling | β
| β | β | β |
|
|
974
|
+
| Pause/resume/cancel jobs | β
| β | β | β |
|
|
975
|
+
| Real-time progress (SSE) | β
| β | β | β |
|
|
976
|
+
| CSV/JSON export | β
| β | β | β |
|
|
977
|
+
|
|
978
|
+
### CRM & Lead Management
|
|
979
|
+
|
|
980
|
+
| Feature | **MoltFlow** | whatsapp-ultimate | wacli | whatsapp-automation |
|
|
981
|
+
|---------|:-------:|:-----------------:|:-----:|:-------------------:|
|
|
982
|
+
| Contact management | β
| β | β | β |
|
|
983
|
+
| Lead pipeline & scoring | β
| β | β | β |
|
|
984
|
+
| Lead auto-detection | β
| β | β | β |
|
|
985
|
+
| Bulk lead operations | β
| β | β | β |
|
|
986
|
+
| Lead export (CSV/JSON) | β
| β | β | β |
|
|
987
|
+
| Label system (WA Business sync) | β
| β | β | β |
|
|
988
|
+
| Team assignment | β
| β | β | β |
|
|
989
|
+
|
|
990
|
+
### AI & Intelligence
|
|
991
|
+
|
|
992
|
+
| Feature | **MoltFlow** | whatsapp-ultimate | wacli | whatsapp-automation |
|
|
993
|
+
|---------|:-------:|:-----------------:|:-----:|:-------------------:|
|
|
994
|
+
| AI reply suggestions | β
| β | β | β |
|
|
995
|
+
| Style cloning (Learn Mode) | β
| β | β | β |
|
|
996
|
+
| Knowledge base (RAG) | β
| β | β | β |
|
|
997
|
+
| Voice transcription (Whisper) | β
| β | β | β |
|
|
998
|
+
| AI auto-labeling | β
| β | β | β |
|
|
999
|
+
| AI auto-responses | β
| β | β | β |
|
|
1000
|
+
| AI prompt templates | β
| β | β | β |
|
|
1001
|
+
|
|
1002
|
+
### Analytics & Reporting
|
|
1003
|
+
|
|
1004
|
+
| Feature | **MoltFlow** | whatsapp-ultimate | wacli | whatsapp-automation |
|
|
1005
|
+
|---------|:-------:|:-----------------:|:-----:|:-------------------:|
|
|
1006
|
+
| Message statistics | β
| β | β | β |
|
|
1007
|
+
| Engagement insights | β
| β | β | β |
|
|
1008
|
+
| Lead pipeline analytics | β
| β | β | β |
|
|
1009
|
+
| Executive briefing | β
| β | β | β |
|
|
1010
|
+
| Team activity & workload | β
| β | β | β |
|
|
1011
|
+
|
|
1012
|
+
### Compliance & Security
|
|
1013
|
+
|
|
1014
|
+
| Feature | **MoltFlow** | whatsapp-ultimate | wacli | whatsapp-automation |
|
|
1015
|
+
|---------|:-------:|:-----------------:|:-----:|:-------------------:|
|
|
1016
|
+
| Anti-spam engine (human-like typing) | β
| β | β | β |
|
|
1017
|
+
| GDPR audit logging | β
| β | β | β |
|
|
1018
|
+
| Content filtering (PII, secrets, injection) | β
| β | β | β |
|
|
1019
|
+
| Consent tracking | β
| β | β | β |
|
|
1020
|
+
| Tiered rate limiting | β
| β | β | β |
|
|
1021
|
+
| Auto-expiring messages (90-day retention) | β
| β | β | β |
|
|
1022
|
+
| Data minimization (500-char preview only) | β
| β | β | β |
|
|
1023
|
+
| Named sub-processors (GDPR Art. 28) | β
| β | β | β |
|
|
1024
|
+
| Contact erasure (right to be forgotten) | β
| β | β | β |
|
|
1025
|
+
| Data Processing Agreement (DPA) | β
| β | β | β |
|
|
1026
|
+
|
|
1027
|
+
### Review Collection
|
|
1028
|
+
|
|
1029
|
+
| Feature | **MoltFlow** | whatsapp-ultimate | wacli | whatsapp-automation |
|
|
1030
|
+
|---------|:-------:|:-----------------:|:-----:|:-------------------:|
|
|
1031
|
+
| Auto review collection | β
| β | β | β |
|
|
1032
|
+
| Sentiment analysis (14+ languages) | β
| β | β | β |
|
|
1033
|
+
| Testimonial export (JSON / HTML) | β
| β | β | β |
|
|
1034
|
+
|
|
1035
|
+
### Platform & Infrastructure
|
|
1036
|
+
|
|
1037
|
+
| Feature | **MoltFlow** | whatsapp-ultimate | wacli | whatsapp-automation |
|
|
1038
|
+
|---------|:-------:|:-----------------:|:-----:|:-------------------:|
|
|
1039
|
+
| Multi-session (up to 10 numbers) | β
| β | β | β |
|
|
1040
|
+
| Webhooks (30+ event types) | β
| β | β | β |
|
|
1041
|
+
| Real-time SSE events | β
| β | β | β |
|
|
1042
|
+
| API key management | β
| β | β | β |
|
|
1043
|
+
| Multi-tenant architecture | β
| β | β | β |
|
|
1044
|
+
| A2A protocol (E2E encrypted) | β
| β | β | β |
|
|
1045
|
+
| Web dashboard | β
| β | β | β |
|
|
1046
|
+
| Stripe billing | β
| β | β | β |
|
|
1047
|
+
|
|
1048
|
+
### Summary
|
|
1049
|
+
|
|
1050
|
+
| | **MoltFlow** | **whatsapp-ultimate** | **wacli** | **whatsapp-automation** |
|
|
1051
|
+
|---|---|---|---|---|
|
|
1052
|
+
| **Messaging** | 18 / 18 | 14 / 18 | 3 / 18 | 1 / 18 |
|
|
1053
|
+
| **Outreach & scheduling** | 7 | 0 | 0 | 0 |
|
|
1054
|
+
| **Business features** | 55+ | 0 | 0 | 0 |
|
|
1055
|
+
| **Total** | **80+** | **~15** | **~3** | **~1** |
|
|
1056
|
+
| **External deps** | Docker + WAHA | None | Go binary | Docker + WAHA |
|
|
1057
|
+
|
|
1058
|
+
---
|
|
1059
|
+
|
|
1060
|
+
## Credentials & Security
|
|
1061
|
+
|
|
1062
|
+
**Only one credential is required:** `MOLTFLOW_API_KEY` β get it from the [API Keys page](https://molt.waiflow.app) in your dashboard.
|
|
1063
|
+
|
|
1064
|
+
No other secrets are needed by external users:
|
|
1065
|
+
- **A2A encryption keys** (X25519) are generated and managed server-side β your API key grants access
|
|
1066
|
+
- **Stripe billing keys** are handled internally β you interact via checkout/portal URLs
|
|
1067
|
+
- **JWT tokens** are obtained via `/auth/login` using email/password, no separate secret needed
|
|
1068
|
+
|
|
1069
|
+
This skill is **documentation-only** β it provides API guidance to AI agents. The `scripts/` directory contains Python example scripts for common workflows, not executable dependencies.
|
|
1070
|
+
|
|
1071
|
+
## Example Scripts
|
|
1072
|
+
|
|
1073
|
+
The `scripts/` directory contains standalone Python examples (requires `requests`):
|
|
1074
|
+
|
|
1075
|
+
| Script | Purpose |
|
|
1076
|
+
|--------|---------|
|
|
1077
|
+
| `quickstart.py` | Create session, send first message |
|
|
1078
|
+
| `send_message.py` | Send text messages to contacts |
|
|
1079
|
+
| `a2a_client.py` | Discover agents, send A2A messages |
|
|
1080
|
+
| `admin.py` | Login, create API keys, check billing |
|
|
1081
|
+
| `ai_config.py` | Train style profiles, generate AI replies |
|
|
1082
|
+
| `reviews.py` | Create collectors, export testimonials |
|
|
1083
|
+
| `outreach.py` | Bulk send, scheduled messages, custom groups |
|
|
1084
|
+
| `leads.py` | Lead pipeline, bulk ops, CSV/JSON export |
|
|
1085
|
+
| `gdpr.py` | Contact erasure, data export, account deletion |
|
|
1086
|
+
| `group_monitor.py` | WhatsApp group monitoring & lead detection |
|
|
1087
|
+
|
|
1088
|
+
Run any script: `MOLTFLOW_API_KEY=your-key python scripts/quickstart.py`
|
|
1089
|
+
|
|
1090
|
+
---
|
|
1091
|
+
|
|
1092
|
+
## Pricing
|
|
1093
|
+
|
|
1094
|
+
> **Yearly plan available** β save up to 17% with annual billing. Pay once, use for 12 months.
|
|
1095
|
+
|
|
1096
|
+
| Plan | Monthly | Yearly | Messages/mo | Sessions | Groups | API Rate |
|
|
1097
|
+
|------|---------|--------|-------------|----------|--------|----------|
|
|
1098
|
+
| Free | $0 | β | 50 | 1 | 2 | 10/min |
|
|
1099
|
+
| Starter | $9.90 | $99/yr | 500 | 1 | 5 | 20/min |
|
|
1100
|
+
| Pro | $29.90 | $299/yr | 1,500 | 5 | 20 | 40/min |
|
|
1101
|
+
| Business | $69.90 | $699/yr | 3,000 | 15 | 100 | 60/min |
|
|
1102
|
+
|
|
1103
|
+
Sign up: https://molt.waiflow.app/checkout?plan=free
|
|
1104
|
+
|
|
1105
|
+
---
|
|
1106
|
+
|
|
1107
|
+
## Blog & Guides
|
|
1108
|
+
|
|
1109
|
+
Tutorials and guides for common MoltFlow workflows:
|
|
1110
|
+
|
|
1111
|
+
- [Getting Started with WhatsApp Automation](https://molt.waiflow.app/blog/whatsapp-automation-getting-started)
|
|
1112
|
+
- [MoltFlow API Complete Guide](https://molt.waiflow.app/blog/moltflow-api-complete-guide)
|
|
1113
|
+
- [MoltFlow + n8n WhatsApp Automation](https://molt.waiflow.app/blog/moltflow-n8n-whatsapp-automation)
|
|
1114
|
+
- [n8n + WhatsApp + Google Sheets](https://molt.waiflow.app/blog/n8n-whatsapp-google-sheets)
|
|
1115
|
+
- [n8n WhatsApp Group Auto-Reply](https://molt.waiflow.app/blog/n8n-whatsapp-group-auto-reply)
|
|
1116
|
+
- [n8n WhatsApp Lead Pipeline](https://molt.waiflow.app/blog/n8n-whatsapp-lead-pipeline)
|
|
1117
|
+
- [n8n Multi-Model AI Orchestration](https://molt.waiflow.app/blog/n8n-multi-model-ai-orchestration)
|
|
1118
|
+
- [AI Auto-Replies for WhatsApp Setup](https://molt.waiflow.app/blog/ai-auto-replies-whatsapp-setup)
|
|
1119
|
+
- [WhatsApp Group Lead Generation Guide](https://molt.waiflow.app/blog/whatsapp-group-lead-generation-guide)
|
|
1120
|
+
- [A2A Protocol: Agent-to-Agent Communication](https://molt.waiflow.app/blog/a2a-protocol-agent-communication)
|
|
1121
|
+
- [OpenClaw WhatsApp Customer Support](https://molt.waiflow.app/blog/openclaw-whatsapp-customer-support)
|
|
1122
|
+
- [Scaling WhatsApp Automation ROI](https://molt.waiflow.app/blog/scaling-whatsapp-automation-roi)
|
|
1123
|
+
|
|
1124
|
+
Full blog: https://molt.waiflow.app/blog
|
|
1125
|
+
|
|
1126
|
+
---
|
|
1127
|
+
|
|
534
1128
|
## Notes
|
|
535
1129
|
|
|
536
1130
|
- All messages include anti-spam compliance (typing indicators, random delays)
|
|
537
|
-
-
|
|
1131
|
+
- API rate limits by plan: Free 10/min, Starter 20/min, Pro 40/min, Business 60/min
|
|
538
1132
|
- Sessions require QR code pairing on first connect
|
|
539
1133
|
- Use E.164 phone format without `+` where required
|
|
540
|
-
- AI features require Pro plan or above
|
|
541
|
-
- A2A protocol requires
|
|
1134
|
+
- AI features (auto-responses, RAG, Learn Mode) require Pro plan or above
|
|
1135
|
+
- A2A protocol requires Pro plan or above
|
|
542
1136
|
- Anti-spam rules support pattern matching with block, flag, or delay actions
|
|
543
1137
|
- Content safeguards filter secrets (API keys, tokens), PII (SSN, credit cards), and prompt injection
|
|
544
1138
|
- AI reply generation includes safety: input sanitization, intent verification, output filtering
|
|
545
1139
|
- API keys use name + expires_in_days (no scopes param); raw key shown only once at creation
|
|
546
1140
|
- Respect WhatsApp opt-in, business hours, and opt-out requests
|
|
547
1141
|
|
|
1142
|
+
---
|
|
1143
|
+
|
|
1144
|
+
## Changelog
|
|
1145
|
+
|
|
1146
|
+
### v2.0.0 (2026-02-12)
|
|
1147
|
+
|
|
1148
|
+
**New API sections:**
|
|
1149
|
+
- **Scheduled Messages** (Section 14) β one-time, daily/weekly/monthly, cron, timezone-aware, pause/resume/cancel, execution history
|
|
1150
|
+
- **Bulk Send** (Section 15) β ban-safe broadcast to custom groups, real-time SSE progress, pause/resume/cancel, quota management
|
|
1151
|
+
- **Custom Groups** (Section 16) β contact lists for targeted outreach, import from WhatsApp, CSV/JSON export, member management
|
|
1152
|
+
- **Leads** (Section 17) β auto-detected lead pipeline, status tracking (newβcontactedβqualifiedβconverted), bulk operations, CSV/JSON export, reciprocity check
|
|
1153
|
+
- **Knowledge Base / RAG** (Section 18) β upload PDF/TXT documents, semantic search with embeddings, AI uses your docs for grounded answers
|
|
1154
|
+
- **Voice Transcription** (Section 19) β Whisper-powered async transcription with task status tracking
|
|
1155
|
+
|
|
1156
|
+
**Updated:**
|
|
1157
|
+
- Complete feature matrix at the top with all 18 platform capabilities
|
|
1158
|
+
- Expanded "When to use" list covering all features
|
|
1159
|
+
- New use case categories: Bulk messaging & scheduling, AI & knowledge
|
|
1160
|
+
- Comparison table: added Outreach & Scheduling section (7 features), Bulk lead operations, Lead export
|
|
1161
|
+
- Updated totals: 80+ features (was 63+)
|
|
1162
|
+
- Yearly billing offer highlighted in pricing and feature matrix
|
|
1163
|
+
|
|
1164
|
+
### v1.6.0 (2026-01-28)
|
|
1165
|
+
- Added GDPR compliance section (auto-expiring messages, data minimization, contact erasure, DPA)
|
|
1166
|
+
- Added AI consent enforcement documentation
|
|
1167
|
+
- Updated comparison tables with compliance features (10 new entries)
|
|
1168
|
+
|
|
1169
|
+
### v1.5.0 (2026-01-15)
|
|
1170
|
+
- Added Reviews & Testimonials API (Section 10)
|
|
1171
|
+
- Added A2A Protocol with X25519-AES256GCM encryption
|
|
1172
|
+
- Added Content Safeguards API (Section 6)
|
|
1173
|
+
- Added blog & guides section
|
|
1174
|
+
|
|
1175
|
+
### v1.0.0 (2025-12-01)
|
|
1176
|
+
- Initial release: Sessions, Messages, Groups, Labels, Anti-Spam, AI, Webhooks, Auth, Billing
|
|
1177
|
+
|
|
548
1178
|
<!-- FILEMAP:BEGIN -->
|
|
549
1179
|
```text
|
|
550
1180
|
[moltflow file map]|root: .
|
|
551
|
-
|.:{SKILL.md,package.json}
|
|
552
|
-
|scripts:{quickstart.py,a2a_client.py,send_message.py,admin.py,ai_config.py,reviews.py}
|
|
1181
|
+
|.:{SKILL.md,CHANGELOG.md,package.json}
|
|
1182
|
+
|scripts:{quickstart.py,a2a_client.py,send_message.py,admin.py,ai_config.py,reviews.py,outreach.py,leads.py}
|
|
1183
|
+
|moltflow:{SKILL.md}
|
|
1184
|
+
|moltflow-ai:{SKILL.md}
|
|
1185
|
+
|moltflow-a2a:{SKILL.md}
|
|
1186
|
+
|moltflow-reviews:{SKILL.md}
|
|
1187
|
+
|moltflow-outreach:{SKILL.md}
|
|
1188
|
+
|moltflow-leads:{SKILL.md}
|
|
1189
|
+
|moltflow-admin:{SKILL.md}
|
|
553
1190
|
```
|
|
554
1191
|
<!-- FILEMAP:END -->
|