Files
fusion/plugins/fusion-plugin-whatsapp-chat/README.md
Fusion dcea611a9d feat(FN-3713): migrate WhatsApp plugin to Baileys pairing flow
- Add Baileys-based connection/auth modules and pairing route support for QR, pair code, status, and logout
- Refactor plugin entrypoint and split reply/auth/connection logic into focused modules
- Update plugin metadata/docs/settings schema to pairing-era configuration and remove legacy webhook key usage
- Add targeted tests for auth state, connection handling, reply flow, and updated schema expectations

Fusion-Task-Id: FN-3713
2026-05-07 18:26:14 -07:00

52 lines
2.1 KiB
Markdown

# WhatsApp Chat Plugin
WhatsApp Web (Baileys) bridge for Fusion. It pairs with your phone (QR or pairing code), keeps a background connection alive, forwards inbound direct text messages to a Fusion AI session, and sends the assistant reply back to WhatsApp.
No Meta Cloud app, webhook URL, verify token, or Graph API credentials are required.
## Setup
1. Enable/install the plugin in Plugin Manager.
2. Configure `allowedSenders` (empty means **nobody is allowed**).
3. Choose `pairingMode`:
- `qr` (default): fetch QR from `/api/plugins/fusion-plugin-whatsapp-chat/qr` and scan in WhatsApp.
- `code`: set `pairingPhoneNumber` (E.164 digits without `+`) and request code via `/pair-code`.
4. Confirm `/status` reports `connected`.
## Settings
- `pairingMode`: `qr` or `code`.
- `pairingPhoneNumber`: E.164 digits without `+` (used for `code` mode).
- `allowedSenders`: allowed WhatsApp JIDs or E.164 digits.
- `agentSystemPrompt`: system prompt for replies.
- `historyTurnLimit`: persisted turn window (default `40`).
## Routes
- `GET /api/plugins/fusion-plugin-whatsapp-chat/status`
- `GET /api/plugins/fusion-plugin-whatsapp-chat/qr`
- `POST /api/plugins/fusion-plugin-whatsapp-chat/pair-code`
- `POST /api/plugins/fusion-plugin-whatsapp-chat/logout`
## Storage and lifecycle
- Starts socket on `onLoad`, stops on `onUnload`.
- Persists transcript and dedupe state in:
- `whatsapp_chat_sessions`
- `whatsapp_chat_dedupe`
- Persists Baileys auth state in:
- `whatsapp_auth_creds`
- `whatsapp_auth_keys`
- After restart, plugin reconnects automatically when auth is valid.
## Troubleshooting
- Stuck `awaiting-qr`: fetch a fresh QR and scan promptly.
- `loggedOut`: call `/logout` (or wait for clear) and re-pair.
- Pair code not generated: ensure `pairingPhoneNumber` is E.164 digits without `+`.
- No replies: check `allowedSenders`; empty list blocks all inbound messages by design.
## Compliance warning
Baileys is an unofficial WhatsApp Web protocol client. Use may violate WhatsApp Terms of Service. This plugin is intended for self-hosted, single-user use at your own risk.