wppfy

n8n community node for the WppFy WhatsApp API

Package Information

Released: this month
Downloads: 0 weekly / 0 monthly
Latest Version: 0.2.0
Author: WppFy

Documentation

WppFy

n8n-nodes-wppfy

n8n community node for the WppFy WhatsApp API.
npm version MIT license

Automate WhatsApp from n8n with two nodes:

Installation

n8n Cloud and self-hosted (UI)

  1. Go to Settings → Community Nodes.
  2. Click Install.
  3. Enter n8n-nodes-wppfy, accept the risks notice and click Install.

Self-hosted (CLI / Docker)

cd ~/.n8n/nodes
npm install n8n-nodes-wppfy
# restart n8n

With Docker, run the command inside the container (or in the mounted ~/.n8n/nodes volume) and restart it.

See the n8n guide on installing community nodes for details.

Credentials

Create a WppFy API credential:

Field Value
Instance Token Token of your WhatsApp instance, from the WppFy dashboard
Base URL https://api.wppfy.com (default, change only if instructed)

Clicking Save tests the credential with GET /instance/status. Each credential is tied to one WhatsApp instance; create one credential per number.

Usage

  1. Add the WppFy node to a workflow.
  2. Pick a Resource (for example Send Message) and an Operation (for example Send text message).
  3. Fill in the required fields. Optional fields are under Add Field in Additional Fields.

Example: send a text message

Parameter Value
Resource Send Message
Operation Send text message
Number 5511999999999 (or a group ID ending in @g.us)
Text Hello {{ $json.name }}!

Fields that take JSON

Fields with lists or objects (menu choices, carousel cards, group participants, product data, etc.) are JSON fields. You can type JSON directly or use an expression:

["Option 1", "Option 2", "Option 3"]
{{ JSON.stringify($json.participants) }}

Message placeholders

Send operations support placeholders such as {{name}}, {{first_name}} and {{lead_email}}, filled by WppFy with the chat's data. In n8n, write them inside a plain string (not an expression), or escape them in expressions as {{ "{{name}}" }}.

Receiving messages (WppFy Trigger)

Add the WppFy Trigger node to start a workflow on WhatsApp events.

Parameter Description
Events Events that start the workflow: Messages, Message Updates, Connection, Groups, Call, Presence, Chats, Labels, Contacts, Status Posts, Newsletter Messages... (default: Messages)
Ignore Messages Filters applied by WppFy before sending: Sent by API, Sent by Me, Received Messages, Groups, Private Chats (default: Sent by API)
Options → Include Instance Token Keep the instance token that comes in the payload. Off by default, since it is a secret

How it works:

  • When you activate the workflow, the node adds a webhook to the instance pointing to n8n. When you deactivate it, that webhook is removed.
  • Webhooks you already have on the instance are not changed; the trigger adds its own.
  • Each event becomes one item with the event payload (EventType, message, chat, owner, ...).
  • Keep Ignore Messages → Sent by API if the workflow replies with the WppFy node; otherwise your own replies trigger the workflow again.
  • n8n must be reachable from the internet (n8n Cloud, or self-hosted with a public WEBHOOK_URL) for events to arrive.

Prefer the raw approach? A regular Webhook node works too: copy its production URL and configure it as described in Configure Webhook.

Using with AI agents

The node is marked as usable as a tool. In an AI Agent node, add WppFy as a tool and pick the operation the agent may use (for example Send text message), letting the model fill fields with $fromAI().

Operations

Operations are grouped by resource, matching the sections of the API reference.

17 resources, 136 operations.

Instance (7)
Operation Endpoint
Check the initial history processing GET /instance/history-sync/status
Connect instance to WhatsApp POST /instance/connect
Disconnect instance POST /instance/disconnect
Get current limits for new WhatsApp conversations GET /instance/wa_messages_limits
Get instance status GET /instance/status
Restart the instance connection POST /instance/reset
Update instance presence status POST /instance/presence
Proxy (4)
Operation Endpoint
Configure or change the proxy POST /instance/proxy
Get instance proxy configuration GET /instance/proxy
Internal Proxy - List available cities GET /proxy-managed/cities
Internal Proxy - List available countries GET /proxy-managed/countries
Profile (2)
Operation Endpoint
Change WhatsApp profile image POST /profile/image
Change WhatsApp profile name POST /profile/name
Business (13)
Operation Endpoint
Create catalog collection POST /business/catalog/collection/create
Create or edit a catalog product POST /business/catalog/save
Delete a catalog product POST /business/catalog/delete
Delete catalog collection DELETE /business/catalog/collection/{id}
Edit catalog collection PATCH /business/catalog/collection/{id}
Get business categories GET /business/get/categories
Get information about a catalog product POST /business/catalog/info
Get the business profile POST /business/get/profile
Hide a product from the catalog POST /business/catalog/hide
List catalog collections GET /business/catalog/collection/list
List catalog products POST /business/catalog/list
Show a catalog product POST /business/catalog/show
Update the business profile POST /business/update/profile
Calls (2)
Operation Endpoint
Reject incoming call POST /call/reject
Start voice call POST /call/make
Send Message (13)
Operation Endpoint
Request payment POST /send/request-payment
Request user location POST /send/location-button
Send contact card (vCard) POST /send/contact
Send event POST /send/event
Send geographical location POST /send/location
Send interactive menu (buttons, carousel, list, or poll) POST /send/menu
Send media (image, video, audio, or document) POST /send/media
Send media carousel with buttons POST /send/carousel
Send PIX button POST /send/pix-button
Send presence update POST /message/presence
Send status (stories) POST /send/status
Send text message POST /send/text
Update payment and order POST /message/payment/status
Async Message (3)
Operation Endpoint
Clear direct-send async queue DELETE /message/async
Configure delay between async messages POST /instance/updateDelaySettings
Get the direct send async queue GET /message/async
Message Actions and Search (10)
Operation Endpoint
Delete Message For Everyone POST /message/delete
Download file from a message POST /message/download
Edit a sent message POST /message/edit
Group message status POST /message/status
Mark messages as read POST /message/markread
Pins or unpins a message POST /message/pin
Recover message that did not open POST /message/reload
Request on-demand history for a chat POST /message/history-sync
Search messages in a chat POST /message/find
Send reaction to a message POST /message/react
Chats (12)
Operation Endpoint
Archive/unarchive chat POST /chat/archive
Configure disappearing messages in a private chat POST /chat/ephemeral
Deletes chat POST /chat/delete
Edit chat internal notes POST /chat/notes/edit
Get a chat's avatar POST /chat/avatar
Get chat counters GET /chat/totalcount
Get the chat's internal notes POST /chat/notes
Mark chat as read/unread POST /chat/read
Mute chat POST /chat/mute
Pin/unpin chat POST /chat/pin
Reload the chat's internal notes in WhatsApp POST /chat/notes/refresh
Search chats with filters POST /chat/find
Contacts (6)
Operation Endpoint
Adds a contact to the address book POST /contact/add
Check Numbers on WhatsApp POST /chat/check
Get chat details POST /chat/details
List all contacts with pagination POST /contacts/list
Removes a contact from the address book POST /contact/remove
Returns the list of WhatsApp contacts GET /contacts
Blocklist (2)
Operation Endpoint
Blocks or unblocks a WhatsApp contact POST /chat/block
List blocked contacts GET /chat/blocklist
Labels (4)
Operation Endpoint
Create, edit or delete label POST /label/edit
Fetch all labels GET /labels
Manages a chat's labels POST /chat/labels
Start WhatsApp label refresh POST /labels/refresh
Groups and Communities (20)
Operation Endpoint
Configure approval for joining the group POST /group/updateJoinApproval
Configure disappearing messages in a group POST /group/ephemeral
Configure group editing permissions POST /group/updateLocked
Configure group messaging permissions POST /group/updateAnnounce
Configure who can add new members to the group POST /group/updateMemberAddMode
Create a community POST /community/create
Create a new group POST /group/create
Generate invite link for a group GET /group/invitelink/{groupJID}
Get group details and members POST /group/info
Get group information by invite code POST /group/inviteInfo
Join a group using an invite code POST /group/join
Leave a group POST /group/leave
List all groups (legacy) GET /group/list
List groups in pages (recommended) POST /group/list
Manage group participants POST /group/updateParticipants
Manage groups in a community POST /community/editgroups
Reset group invite code POST /group/resetInviteCode
Update group description POST /group/updateDescription
Update group image POST /group/updateImage
Update group name POST /group/updateName
Newsletters and Channels (26)
Operation Endpoint
Accept channel admin invitation POST /newsletter/admin/accept
Create channel POST /newsletter/create
Delete channel POST /newsletter/delete
Delete recent channel message POST /newsletter/messages/delete
Edit recent channel message POST /newsletter/messages/edit
Fetch channel message updates POST /newsletter/updates
Fetch channel messages POST /newsletter/messages
Find channel by invite key link POST /newsletter/link
Follow channel POST /newsletter/follow
Get channel information POST /newsletter/info
Invite channel admin POST /newsletter/admin/invite
List subscribed channels GET /newsletter/list
Mark channel posts as viewed POST /newsletter/viewed
Mute channel POST /newsletter/mute
React to a channel post POST /newsletter/reaction
Remove channel admin POST /newsletter/admin/remove
Revoke channel admin invite POST /newsletter/admin/revoke
Search public channels POST /newsletter/search
Subscribe to temporary live updates of a channel POST /newsletter/subscribe
Transfer channel owner POST /newsletter/owner/transfer
Unfollow channel POST /newsletter/unfollow
Unmute channel POST /newsletter/unmute
Update channel description POST /newsletter/description
Update channel name POST /newsletter/name
Update channel picture POST /newsletter/picture
Update channel settings POST /newsletter/settings
Quick Replies (5)
Operation Endpoint
Create quick reply POST /quick-replies
Delete quick reply DELETE /quick-replies/{id}
Edit quick reply PATCH /quick-replies/{id}
List quick replies GET /quick-replies
View quick reply GET /quick-replies/{id}
CRM (5)
Operation Endpoint
Completes conversations (awaiting you) POST /lead/resolve
Creates, edits or deletes a lead tag POST /lead/tags/edit
Edits lead information POST /chat/editLead
List lead tags GET /lead/tags
Name lead custom fields POST /instance/updateFieldsMap
Chatwoot Integration (2)
Operation Endpoint
Get Chatwoot configuration GET /chatwoot/config
Update Chatwoot configuration PUT /chatwoot/config

The streaming endpoint GET /sse is not included; use the WppFy Trigger to receive events in n8n.

Compatibility

  • Tested on n8n 2.43; requires a recent n8n 1.x or 2.x
  • Node.js 20 or later

Development

The operations are generated from the OpenAPI file in openapi/openapi.json, a copy of the docs' openapi-en.json.

npm install
npm run build   # regenerate operations, compile to dist/ and refresh this README
npm test        # build + sanity checks on the generated node

When the API changes, replace openapi/openapi.json, run npm run build, bump the version and publish.

To try the node locally, point n8n to the build output:

N8N_CUSTOM_EXTENSIONS="$(pwd)/dist" n8n start

Resources

License

MIT

Discussion