Description
@setup-automatizado/n8n-nodes-zedaapi
The most complete WhatsApp integration for n8n
163 operations · 19 resources · AI Agent ready





—
Overview
n8n community node for Ze da API — a high-performance WhatsApp API built on whatsmeow. Send messages, manage groups, communities, newsletters, configure webhooks, and more — all from your n8n workflows.
Key highlights:
- 163 operations across 19 resources — the most comprehensive WhatsApp node available
- AI Agent compatible —
usableAsTool: truefor seamless LLM integration - Webhook trigger — receive 13 event types in real-time
- Declarative routing — zero custom code, pure n8n-native implementation
- Dual-token auth — path-based instance token +
Client-Tokenheader
Installation
Via n8n UI
1. Go to Settings > Community Nodes
2. Select Install a community node
3. Enter: @setup-automatizado/n8n-nodes-zedaapi
4. Accept the risks and install
Via CLI
cd ~/.n8n
npm install @setup-automatizado/n8n-nodes-zedaapi
> Restart n8n after installation.
Configuration
Credentials
Create a new Ze da API credential with the following fields:
| Field | Description |
|—|—|
| Base URL | Your Ze da API server URL (default: http://localhost:8080) |
| Instance ID | UUID of your WhatsApp instance |
| Instance Token | Per-instance authentication token |
| Client Token | Global CLIENTAUTHTOKEN from your server configuration |
AI Agent Usage
To use this node as an AI Agent tool, set the environment variable:
N8NCOMMUNITYPACKAGESALLOWTOOL_USAGE=true
Resources & Operations
Message — 12 operations
| Operation | Method | Endpoint |
|—|—|—|
| Send Text | POST | /send-text |
| Send Image | POST | /send-image |
| Send Video | POST | /send-video |
| Send Audio | POST | /send-audio |
| Send Sticker | POST | /send-sticker |
| Send GIF | POST | /send-gif |
| Send Document | POST | /send-document |
| Send PTV | POST | /send-ptv |
| Send Location | POST | /send-location |
| Send Contact | POST | /send-contact |
| Send Contacts | POST | /send-contacts |
| Send Link | POST | /send-link |
Interactive Message — 6 operations
| Operation | Method | Endpoint |
|—|—|—|
| Send Button List | POST | /send-button-list |
| Send Button Actions | POST | /send-button-actions |
| Send Option List | POST | /send-option-list |
| Send Carousel | POST | /send-carousel |
| Send Button PIX | POST | /send-button-pix |
| Send Button OTP | POST | /send-button-otp |
Message Action — 7 operations
| Operation | Method | Endpoint |
|—|—|—|
| Send Reaction | POST | /send-reaction |
| Remove Reaction | POST | /send-remove-reaction |
| Forward Message | POST | /forward-message |
| Delete Message | DELETE | /messages |
| Read Message | POST | /read-message |
| Pin Message | POST | /pin-message |
| Modify Chat | POST | /modify-chat |
Poll — 2 operations
| Operation | Method | Endpoint |
|—|—|—|
| Send Poll | POST | /send-poll |
| Send Poll Vote | POST | /send-poll-vote |
Event — 3 operations
| Operation | Method | Endpoint |
|—|—|—|
| Send Event | POST | /send-event |
| Edit Event | POST | /send-edit-event |
| Send Event Response | POST | /send-event-response |
Status/Story — 4 operations
| Operation | Method | Endpoint |
|—|—|—|
| Send Text Status | POST | /send-text-status |
| Send Image Status | POST | /send-image-status |
| Send Audio Status | POST | /send-audio-status |
| Send Video Status | POST | /send-video-status |
Business — 28 operations
Profile (8):
| Operation | Method | Endpoint |
|—|—|—|
| Get Available Categories | GET | /business/available-categories |
| Get Business Profile | GET | /business/profile |
| Set Business Hours | POST | /business/hours |
| Set Categories | POST | /business/categories |
| Set Company Address | POST | /business/company-address |
| Set Company Description | POST | /business/company-description |
| Set Company Email | POST | /business/company-email |
| Set Company Websites | POST | /business/company-websites |
Tags/Labels (7):
| Operation | Method | Endpoint |
|—|—|—|
| Add Tag to Chat | PUT | /chats/{phone}/tags/{tag}/add |
| Create Tag | POST | /business/create-tag |
| Delete Tag | DELETE | /business/tag/{tagId} |
| Edit Tag | POST | /business/edit-tag/{tagId} |
| Get Tag Colors | GET | /business/tags/colors |
| List Tags | GET | /tags |
| Remove Tag From Chat | PUT | /chats/{phone}/tags/{tag}/remove |
Products/Catalog (6):
| Operation | Method | Endpoint |
|—|—|—|
| Create Product | POST | /products |
| Delete Product | DELETE | /products/{productId} |
| Get Product | GET | /products/{productId} |
| Get Products By Phone | GET | /catalogs/{phone} |
| List Products | GET | /catalogs |
| Save Catalog Config | POST | /catalogs/config |
Collections (7):
| Operation | Method | Endpoint |
|—|—|—|
| Add Product to Collection | POST | /catalogs/collection/add-product |
| Create Collection | POST | /catalogs/collection |
| Delete Collection | DELETE | /catalogs/collection/{collectionId} |
| Edit Collection | POST | /catalogs/collection-edit/{collectionId} |
| List Collection Products | GET | /catalogs/collection-products/{phone} |
| List Collections | GET | /catalogs/collection |
| Remove Product From Collection | POST | /catalogs/collection/remove-product |
Contact — 9 operations
| Operation | Method | Endpoint |
|—|—|—|
| Add Contact | POST | /add-contact |
| Block/Unblock | POST | /modify-blocked |
| Get Metadata | GET | /contacts/{phone}/metadata |
| Get Profile Picture | GET | /contacts/{phone}/profile-picture |
| List Contacts | GET | /contacts |
| Phone Exists | GET | /phone-exists/{phone} |
| Phone Exists Batch | POST | /phone-exists-batch |
| Remove Contact | POST | /remove-contact |
| Resolve LIDs | POST | /resolve-lids |
Chat — 2 operations
| Operation | Method | Endpoint |
|—|—|—|
| List Chats | GET | /chats |
| Save Chat Notes | POST | /chats/{phone}/notes |
Group — 19 operations
| Operation | Method | Endpoint |
|—|—|—|
| List Groups | GET | /groups |
| Create Group | POST | /create-group |
| Update Name | POST | /update-group-name |
| Update Photo | POST | /update-group-photo |
| Update Description | POST | /update-group-description |
| Update Settings | POST | /update-group-settings |
| Add Participant | POST | /add-participant |
| Remove Participant | POST | /remove-participant |
| Approve Participant | POST | /approve-participant |
| Reject Participant | POST | /reject-participant |
| Add Admin | POST | /add-admin |
| Remove Admin | POST | /remove-admin |
| Leave Group | POST | /leave-group |
| Get Metadata | GET | /group-metadata/{id} |
| Get Light Metadata | GET | /light-group-metadata/{id} |
| Get Invitation Link | POST | /group-invitation-link/{id} |
| Redefine Invitation Link | POST | /redefine-invitation-link/{id} |
| Get Invitation Metadata | GET | /group-invitation-metadata |
| Accept Invite | GET | /accept-invite-group |
Community — 9 operations
| Operation | Method | Endpoint |
|—|—|—|
| List | GET | /communities |
| Create | POST | /communities |
| Delete | DELETE | /communities/{id} |
| Link Groups | POST | /communities/link |
| Unlink Groups | POST | /communities/unlink |
| Get Metadata | GET | /communities-metadata/{id} |
| Update Description | POST | /update-community-description |
| Update Settings | POST | /communities/settings |
| Redefine Invitation Link | POST | /redefine-invitation-link/{id} |
Newsletter — 18 operations
| Operation | Method | Endpoint |
|—|—|—|
| List | GET | /newsletter |
| Create | POST | /create-newsletter |
| Delete | DELETE | /delete-newsletter |
| Follow | PUT | /follow-newsletter |
| Unfollow | PUT | /unfollow-newsletter |
| Mute | PUT | /mute-newsletter |
| Unmute | PUT | /unmute-newsletter |
| Get Metadata | GET | /newsletter/metadata/{id} |
| Update Name | POST | /update-newsletter-name |
| Update Description | POST | /update-newsletter-description |
| Update Picture | POST | /update-newsletter-picture |
| Update Settings | POST | /newsletter/settings/{id} |
| Search | POST | /search-newsletter |
| Send Admin Invite | POST | /send-newsletter-admin-invite |
| Accept Admin Invite | POST | /newsletter/accept-admin-invite/{id} |
| Remove Admin | POST | /newsletter/remove-admin/{id} |
| Revoke Admin Invite | POST | /newsletter/revoke-admin-invite/{id} |
| Transfer Ownership | POST | /newsletter/transfer-ownership/{id} |
Instance — 10 operations
| Operation | Method | Endpoint |
|—|—|—|
| Get Status | GET | /status |
| Get QR Code | GET | /qr-code |
| Get QR Code Image | GET | /qr-code/image |
| Get Device Info | GET | /device |
| Get Phone Code | GET | /phone-code/{phone} |
| Restart | POST | /restart |
| Disconnect | POST | /disconnect |
| Update Auto Read Message | PUT | /update-auto-read-message |
| Update Call Reject Auto | PUT | /update-call-reject-auto |
| Update Call Reject Message | PUT | /update-call-reject-message |
Profile — 3 operations
| Operation | Method | Endpoint |
|—|—|—|
| Update Name | PUT | /profile-name |
| Update Picture | PUT | /profile-picture |
| Update Description | PUT | /profile-description |
Privacy — 8 operations
| Operation | Method | Endpoint |
|—|—|—|
| Get Settings | GET | /privacy-settings |
| Update Group Add | PUT | /privacy-settings/group-add |
| Update Last Seen | PUT | /privacy-settings/last-seen |
| Update Status | PUT | /privacy-settings/status |
| Update Profile Photo | PUT | /privacy-settings/profile-photo |
| Update Read Receipts | PUT | /privacy-settings/read-receipts |
| Update Online | PUT | /privacy-settings/online |
| Update Call Add | PUT | /privacy-settings/call-add |
Proxy — 6 operations
| Operation | Method | Endpoint |
|—|—|—|
| Get Config | GET | /proxy |
| Get Health | GET | /proxy/health |
| Remove | DELETE | /proxy |
| Swap | POST | /proxy/swap |
| Test | POST | /proxy/test |
| Update | PUT | /update-proxy |
Queue — 4 operations
| Operation | Method | Endpoint |
|—|—|—|
| List Queue | GET | /queue |
| Get Count | GET | /queue/count |
| Clear Queue | DELETE | /queue |
| Cancel Message | DELETE | /queue/{zaapId} |
Message Status — 4 operations
| Operation | Method | Endpoint |
|—|—|—|
| Get Messages Status | GET | /messages-status |
| Get Stats | GET | /messages-status/stats |
| Flush Status | POST | /messages-status/flush |
| Clear Cache | DELETE | /messages-status/cache |
Webhook — 9 operations
| Operation | Method | Endpoint |
|—|—|—|
| Update All Webhooks | PUT | /update-every-webhooks |
| Update Chat Presence Webhook | PUT | /update-webhook-chat-presence |
| Update Connected Webhook | PUT | /update-webhook-connected |
| Update Delivery Webhook | PUT | /update-webhook-delivery |
| Update Disconnected Webhook | PUT | /update-webhook-disconnected |
| Update Message Status Webhook | PUT | /update-webhook-message-status |
| Update Notify Sent By Me | PUT | /update-notify-sent-by-me |
| Update Received and Delivery Webhook | PUT | /update-webhook-received-delivery |
| Update Received Webhook | PUT | /update-webhook-received |
Trigger Events
The Ze da API Trigger node receives real-time webhook events:
| Event | Description |
|—|—|
| Message Received | Incoming messages |
| Message Sent | Outgoing messages |
| Message Delivery | Delivery confirmations |
| Message Read | Read receipts |
| Message Reaction | Emoji reactions |
| Message Revoked | Deleted messages |
| Call | Incoming calls |
| Chat Presence | Typing indicators |
| Connection Status | Online/offline status |
| Group Update | Group metadata changes |
| Poll Vote | Poll vote events |
| Status/Stories | Status updates |
Architecture
@setup-automatizado/n8n-nodes-zedaapi
├── credentials/
│ └── ZedaApi.credentials.ts # Dual-token auth (path + header)
├── nodes/ZedaApi/
│ ├── ZedaApi.node.ts # Main declarative node (19 resources)
│ ├── ZedaApiTrigger.node.ts # Webhook trigger (13 events)
│ ├── types.ts # TypeScript interfaces
│ ├── resources/ # 19 resource modules
│ └── shared/ # Reusable descriptions & transport
└── icons/
├── zedaapi.svg # Light theme
└── zedaapi.dark.svg # Dark theme
Tech Stack
| Technology | Purpose |
|—|—|
| TypeScript | Strict mode, full type safety |
| n8n Declarative API | Zero custom execute code — pure routing |
| n8n Node CLI | Build, lint, release tooling |
| whatsmeow | Go-based WhatsApp Web API (backend) |
| chi-router | HTTP routing on the API side |
Development
npm install # Install dependencies
npm run dev # Start n8n with hot reload
npm run build # Build for production
npm run lint # Lint (strict n8n rules)
npm run release # Create a release
Contributing
1. Fork the repository
2. Create your feature branch (git checkout -b feat/amazing-feature)
3. Commit using Conventional Commits
4. Push to the branch (git push origin feat/amazing-feature)
5. Open a Pull Request