Each skill now: - Pre-flight: checks for file present + import line + dep listed (idempotent) - git fetch origin channels - git show origin/channels:<paths> > <paths> to copy adapter (and helpers/tests/setup-step where applicable) - Append `import './<chan>.js';` to src/channels/index.ts - pnpm install <pkg>@<pinned-version> - pnpm run build Telegram additionally copies 4 helper/test files + setup/pair-telegram.ts and registers `'pair-telegram':` in setup/index.ts STEPS. WhatsApp (native) additionally copies setup/whatsapp-auth.ts and registers `'whatsapp-auth':` in setup/index.ts STEPS, installs @whiskeysockets/baileys + qrcode + @types/qrcode pinned. All credential / next-steps / channel-info / troubleshooting sections preserved verbatim. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.0 KiB
3.0 KiB
name, description
| name | description |
|---|---|
| add-whatsapp-cloud-v2 | Add WhatsApp Business Cloud API channel to NanoClaw v2 via Chat SDK. Official Meta API. |
Add WhatsApp Cloud API Channel
Connect NanoClaw to WhatsApp via the official Meta WhatsApp Business Cloud API.
Install
v2 trunk doesn't ship channels. This skill copies the WhatsApp Cloud adapter in from the channels branch.
Pre-flight (idempotent)
Skip to Credentials if all of these are already in place:
src/channels/whatsapp-cloud.tsexistssrc/channels/index.tscontainsimport './whatsapp-cloud.js';@chat-adapter/whatsappis listed inpackage.jsondependencies
Otherwise continue. Every step below is safe to re-run.
1. Fetch the channels branch
git fetch origin channels
2. Copy the adapter
git show origin/channels:src/channels/whatsapp-cloud.ts > src/channels/whatsapp-cloud.ts
3. Append the self-registration import
Append to src/channels/index.ts (skip if the line is already present):
import './whatsapp-cloud.js';
4. Install the adapter package (pinned)
pnpm install @chat-adapter/whatsapp@4.26.0
5. Build
pnpm run build
Credentials
- Go to Meta for Developers and create an app (type: Business).
- Add the WhatsApp product.
- Go to WhatsApp > API Setup:
- Note the Phone Number ID (not the phone number itself).
- Generate a permanent System User access token with
whatsapp_business_messagingpermission.
- Go to WhatsApp > Configuration:
- Set webhook URL:
https://your-domain/webhook/whatsapp. - Set a Verify Token (any random string you choose).
- Subscribe to webhook fields:
messages.
- Set webhook URL:
- Copy the App Secret from Settings > Basic.
Configure environment
Add to .env:
WHATSAPP_ACCESS_TOKEN=your-system-user-access-token
WHATSAPP_PHONE_NUMBER_ID=your-phone-number-id
WHATSAPP_APP_SECRET=your-app-secret
WHATSAPP_VERIFY_TOKEN=your-verify-token
Sync to container: mkdir -p data/env && cp .env data/env/env
Next Steps
If you're in the middle of /setup, return to the setup flow now.
Otherwise, run /manage-channels to wire this channel to an agent group.
Channel Info
- type:
whatsapp-cloud - terminology: WhatsApp Cloud API supports 1:1 conversations only (no group chats). Each conversation is with a phone number.
- how-to-find-id: The platform ID is the Phone Number ID from the Meta Business dashboard (not the phone number itself). Find it under WhatsApp > API Setup.
- supports-threads: no
- typical-use: Interactive 1:1 chat -- direct messages only
- default-isolation: Same agent group if you're the only person messaging the bot. Each additional person who messages gets their own conversation automatically, but they share the agent's workspace and memory -- use a separate agent group if you need information isolation between different contacts.