Integrate WhatsApp with Make

To integrate WhatsApp with Make, calls go out through its HTTP > Make a request and events come back through its Webhooks > Custom webhook; authentication is Authorization header on the HTTP module, or an API-key connection reused across scenarios, and the setup below takes about 10 minutes. No official connector is involved: groups, Channels, status posts and template-free sends all go through one plain HTTPS call.

Automation

What you can do with Make

Setup in Make

Calls go through
HTTP > Make a request
Events arrive through
Webhooks > Custom webhook
Authentication
Authorization header on the HTTP module, or an API-key connection reused across scenarios
Time to first call
About 10 minutes
  1. Add an HTTP > Make a request module, set the method and the full Wapito URL, and add an Authorization header with Bearer followed by your channel token.

  2. Set the body type to Raw with JSON content, and build the payload with mapped fields rather than pasting values, so the scenario keeps working when the trigger changes.

  3. Switch on Parse response so later modules see the returned message or group id as real fields instead of a string.

  4. For inbound events, add a Webhooks > Custom webhook module as the trigger, copy its URL, and register it in Wapito.

  5. Run the scenario once to let Make learn the payload shape, then add a filter so only the events you care about continue past the trigger.

Example flows

Add a new customer to the members group

A payment webhook starts the scenario, a router checks the plan, and an HTTP module posts the customer's number to the group's participants endpoint. The per-participant result is stored so an invite-instead-of-add is visible later.

POST /groups/{id}/participants Add participants to a group

curl --request POST \
  --url https://api.wapito.com/v1/groups/120363041234567890@g.us/participants \
  --header 'Authorization: Bearer wpt_YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"participants":["+15551234567","+15559876543"]}'

Post an image status when new stock lands

A Google Drive watch module picks up a new photo, one HTTP module uploads it to Wapito, and a second posts it to status with the caption mapped from the file name. The whole scenario is three modules.

POST /stories/media Post an image or video status

curl --request POST \
  --url https://api.wapito.com/v1/stories/media \
  --header 'Authorization: Bearer wpt_YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"media":"https://acme.example/status/new-colours.jpg","caption":"New colours, same price.","contacts":["+15551234567"]}'

Log every inbound message to a data store

A Custom webhook receives message events and writes them to a Make data store keyed by message id, with a scheduled HTTP module backfilling anything the webhook missed during a scenario outage.

GET /messages/list/{chat_id} List messages in a chat

Beta

curl --request GET \
  --url 'https://api.wapito.com/v1/messages/list/15551234567@s.whatsapp.net?count=50&offset=0&from_me=true&time_from=1789372800000&time_to=1789459200000' \
  --header 'Authorization: Bearer wpt_YOUR_TOKEN'

Send a document when a form is submitted

A form trigger collects the request, an HTTP module uploads the generated PDF, and a second sends it to the submitter's number with a short caption. The upload is reused if the same document goes to several people.

POST /messages/document Send a document

curl --request POST \
  --url https://api.wapito.com/v1/messages/document \
  --header 'Authorization: Bearer wpt_YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"to":"+15551234567","media":"https://acme.example/invoices/4182.pdf","filename":"Invoice-4182.pdf","caption":"Invoice for order #4182"}'

Receiving events

In Make the inbound side is the Webhooks > Custom webhook: it gives you the URL to register in Wapito.Every event Wapito delivers — an inbound message, a delivery receipt, a member joining a group, a number disconnecting — is one HTTPS POST to a URL you register, signed with the webhook's secret in the X-Wapito-Signature header. Verify that header against the raw request body before you act on anything, answer with a 2xx within the retry window, and do slow work afterwards.

Webhooks guide: events, envelope and signature Webhooks > Custom webhook documentation

Step-by-step recipes for Make

What the official connector does instead

Make publishes a WhatsApp Business Cloud app that wraps Meta's official API, so it inherits the template rules, the 24-hour window and the absence of groups, Channels and status. The HTTP module against Wapito is the route when you need any of those.

Wapito is an independent product. It is not affiliated with, endorsed by, sponsored by or certified by WhatsApp or Meta Platforms, Inc. WhatsApp is a trademark of Meta Platforms, Inc.

Frequently asked questions

Should I use a connection or a plain header?

A plain Authorization header is fine for one scenario, but an API-key connection is better once you have several: the token lives in one place, it is masked in the editor, and rotating it does not mean opening every scenario to find where the header was typed.

How many operations does a WhatsApp send cost?

One HTTP module run is one operation, the same as any other module. A scenario that uploads media and then sends it costs two. Bulk loops are where the operation count adds up, so aggregate before you iterate rather than running one scenario per recipient.

Can Make verify the webhook signature?

Yes, with a short Tools module that computes an HMAC over the raw body and compares it with the header. The important part is getting the raw body: configure the Custom webhook so the payload is not re-serialised before you hash it, or the comparison will never match.

Related

Try it on your own number

Create a channel, link a WhatsApp number by QR or pairing code, and call the API in a couple of minutes. The Sandbox plan is free and needs no card.