If you're using this tool to generate income, consider supporting its development by becoming a Patreon member!
Your support helps ensure the project stays maintained and receives regular updates!
Download:
@aldinokemal2104/n8n-nodes-gowa, and select Install.v6<binary> rest instead of <binary>../whatsapp rest instead of ./whatsapp.<binary> mcp../whatsapp mcp.v7v8/devices manage multiple devices.X-Device-Id header, ordevice_id query parameter./ws?device_id=<id> to scope the WebSocket connection to a specific device.Authorization and X-Device-Id headers, so a standalone web UI
(for example, gowa-ui) hosted on another origin can call the API directly.
GET /app/info exposes the version and media size limits. Because browsers cannot set headers on WebSocket
connections, pass /ws?device_id=<id>&authorization=<base64(user:pass)> when Basic Auth is enabled
(use TLS—the credential is visible in the URL).Webhook payload changes: All webhook payloads now include a top-level device_id field identifying which
device received the event:
json
{
"event": "message",
"device_id": "628123456789@s.whatsapp.net",
"payload": { ... }
}
v9
rest: MCP is no longer a separate mode or process. Run
./whatsapp rest to serve both the REST API and MCP; MCP is available at /mcp (no standalone mcp
subcommand). See MCP Server (Model Context Protocol) for migration
details.gowa-ui.html. The server downloads the latest dashboard release at startup, verifies its SHA-256 digest,
caches it under storages/ui/, and serves it at /.
See Web dashboard (gowa-ui) for the APP_UI_* settings, supply-chain pinning,
and air-gapped deployment.@phoneNumberHello @628974812XXXX, @628974812XXXX@phone in the message text.mentions field to mention users without a visible @ in the message.@everyone to automatically mention all group participants.scheduled_at (RFC3339) and timezone (IANA) to a send request; recurrence, weekdays, day_of_month,
end_at, and occurrence_limit control repeats./send/schedules.--os=Chrome or --os=MyApplication--basic-auth=kemal:secret,toni:password,userName:secretPassword-b=kemal:secret,toni:password,userName:secretPassword--base-path="/gowa" allows deployment under a path such as /gowa.--port 8000--debug true--autoreply="Don't reply to this message"--auto-mark-read=true--auto-download-media=false disables automatic media downloads (default: true).--ignore-status-media=true disables downloading status media (default: false).--auto-reject-call=true or WHATSAPP_AUTO_REJECT_CALL=true (see
Webhook Payload for call events).--presence-on-connect=unavailable or WHATSAPP_PRESENCE_ON_CONNECT=unavailableavailable — Mark the account as online (suppresses phone notifications).unavailable — Register the push name without going online (default; preserves phone notifications).none — Skip presence entirely (the push name is not registered, so contacts may see - as the name).--presence-pulse-enabled=true or WHATSAPP_PRESENCE_PULSE_ENABLED=true (default: true).--presence-pulse-interval=24h controls how often each connected device is pulsed.--presence-pulse-duration=5m controls how long the account stays available before returning to unavailable.--webhook="http://yourwebhook.site/handler"-w="http://yourwebhook.site/handler"PATCH /devices/:device_id/webhook with {"webhook_url": "https://device-webhook.site/handler"}.GET /devices/:device_id/webhook.--webhook).webhook_url to an empty string with PATCH to clear it and use the global webhook.WHATSAPP_WEBHOOK_DEVICE_MERGE_GLOBAL=true (or --webhook-device-merge-global=true) to make a
device webhook an addition instead of a replacement: the global --webhook URLs still receive the
device's events (signed with the global secret, filtered by WHATSAPP_WEBHOOK_EVENTS) while the
device URL keeps its own secret and event filter.X-Hub-Signature-256
header. Set a private key with --webhook-secret or WHATSAPP_WEBHOOK_SECRET. The old published
default secret is not used. If no secret is configured, the process generates a random key and
logs a warning; that key changes on restart, so receivers should not rely on it.Generate a stable key once, for example with openssl rand -hex 32, and set it with:
- --webhook-secret="<generated key>"
- Webhook payload documentation — For detailed schemas, security implementation, and integration examples,
see Webhook Payload Documentation.
- Webhook event filtering — Filter which events are forwarded to your webhook with:
- --webhook-events="message,message.ack" (a comma-separated list), or
- WHATSAPP_WEBHOOK_EVENTS=message,message.ack.
Available Webhook Events:
| Event | Description |
|---|---|
message |
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|