Skip to content
WaveSenda
Start free
Docs / Integrations

Integrations

For the cases where the point is not to write code at all. Each one sends through a number you own, so messages arrive from the business rather than from a shortcode nobody recognises.

What each one is

These are not all the same shape, and the difference matters before you go looking for something to install. Two are packages you add to software you already run. One is an application you connect to your store, with nothing to download.

ShapeWhere it comes from
n8nCommunity node@kunshort/n8n-nodes-wavesenda
WordPressPluginPlugin directory, wavesenda
WooCommercePluginPlugin directory, wavesenda-for-woocommerce
ShopifyConnected appInstalled from a listing or an install link — there is nothing to download

n8n

Two nodes: an action node with five operations, and a trigger that starts a workflow from anything that happens on your number. Between them you can answer an inbound message, check a list of numbers before a campaign, or route a conversation into whatever else n8n reaches.

Self-hosted n8n only, for now
Community nodes cannot be installed on n8n Cloud. Verified nodes can, and verification is something we are going through — until it completes, this works on an n8n you run yourself.

Install it from Settings → Community nodes → Install, then create a WaveSenda API credential from a key issued under API keys in the console. The credential’s Test button calls the API, so a wrong key fails in the dialog rather than halfway through a production run.

Build against the sandbox
Use a ws_test_ key while you are still wiring things up. It acknowledges every send and fires the same webhooks without touching WhatsApp, so a half-finished workflow cannot message a real customer at three in the morning.
OperationWhat it does
Send MessageText, image, video, document or location
Check NumbersWhich of these numbers are reachable on WhatsApp
List ConversationsThreads, most recently active first
Read ConversationThe messages in one thread
Get Session HealthDeliverability and warm-up state for a number

The trigger fires on sixteen events, which are the same events the webhooks deliver — the node is a way to receive them without hosting an endpoint.

Events
Messagesreceived, sent, delivered, read, failed, reaction
Sessionsconnected, disconnected, logged_out, at_risk
AI agentsreplied, handoff
Othercall.received, campaign.completed, contact.opted_out, group.participants_changed

WordPress

Two plugins, because a shop and a brochure site want different things. Both are in the WordPress plugin directory and install the usual way.

PluginForWhat it does
wavesendaAny siteThe chat widget, form submissions forwarded to your WhatsApp, a click-to-chat button, and alerts for comments, registrations and publishes.
wavesenda-for-woocommerceShopsOrder status notifications and one abandoned-cart reminder, with consent collected at checkout.

Running both is supported and does not double anything up: the first messages you about your own site, the second messages your customers about their orders. They are configured separately and bill separately.

Consent is not a setting
Neither plugin will message a customer who did not tick a box. In the WooCommerce plugin that box is at checkout and is never pre-ticked; in the other, replying to someone who submitted a form requires naming a consent field on that form. There is deliberately no override, because the cost of getting this wrong is not a complaint — it is the number your business runs on.

Shopify

Not a package. The Shopify integration is an application you connect to your store, and it sends order confirmations, fulfilment and tracking, cancellations, refunds, and one abandoned-checkout reminder.

Shopify checkout has no WhatsApp consent field
So the app reads consent from a checkout UI extension or a note attribute, and treats a delivery phone number as not consent. A store that decides otherwise can say so explicitly, and owns that decision. Cart reminders always require marketing consent, which is a separate and higher bar than agreeing to order updates.

Or write the four lines yourself

None of this is doing anything you could not do directly. An integration exists to save you hosting something; the API underneath is the same one.

Send from anywhere
curl -X POST https://api.wavesenda.com/api/v1/messages/send/ \
  -H "Authorization: Bearer $WAVESENDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"session":"support","to":"+237670000000","text":"Your order is ready."}'
Integrations · WaveSenda Docs