Published 2026-06-129 min readTutorial

How to add WhatsApp to Make.com.

The end-to-end recipe for catching inbound WhatsApp messages inside a Make.com scenario and sending outbound replies from the same scenario. No WhatsApp Business API. No business verification. No template approval. Your customer scans one QR, the line is live, the scenario runs. Total time: under 30 minutes if Make is already familiar.



01

Provision a WhatsApp line in Mossmoon

Sign up at mossmoon.app/signup if you haven’t already. Grab an API key from Dashboard > API keys. Then provision a line with one POST. You can do this with curl, Postman, or directly from a Make scenario, but for the tutorial we’ll use curl:

curl -X POST https://mossmoon.app/api/v1/wa/lines \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agency_external_user_id": "my_first_line"
  }'

You’ll get back something like:

{
  "line_id": "ln_8KQ9pP2nR",
  "status": "provisioned",
  "connect_url": "https://mossmoon.app/wa/connect/c_5fT9vY4tX",
  "created_at": "2026-06-12T14:30:00Z"
}

Save the line_id. You’ll reference it in the outbound module later. The line isn’t billed yet: billing only starts when a customer scans the QR.


02

Scan the QR to connect WhatsApp

Open the connect_url in a browser. You’ll see a QR code. On your phone, open WhatsApp, tap Settings > Linked Devices > Link a Device, scan the QR.

Within seconds of scanning, the line transitions to ready and Mossmoon fires a line.ready webhook to whatever URL you have configured (we’ll set that up in the next step). The billing clock starts here: 7-day free trial on your very first line, $15/month thereafter.


03

Create the Make.com scenario with a webhook trigger

In Make.com, click Create a new scenario. Add the first module by clicking the big plus, search for Webhooks, choose Custom webhook.

Make gives you a webhook URL that looks like https://hook.eu1.make.com/abc123…. Copy it. That’s where Mossmoon will POST every inbound message.


04

Point Mossmoon's inbound webhook at Make

In the Mossmoon dashboard, go to Settings > Webhooks and set the workspace webhook URL to the Make webhook URL you just copied. Save. From this moment, every inbound message on any line under your account will hit Make.

To populate Make’s data structure, run a test from your phone: text the connected WhatsApp number from any other phone. The message hits the webhook, Make catches it, and the module learns the inbound JSON shape.

Mossmoon’s inbound JSON looks like this:

{
  "event": "message.received",
  "line_id": "ln_8KQ9pP2nR",
  "message": {
    "id": "msg_3kP4vQ7nT",
    "from": "+15551234567",
    "to": "+15559876543",
    "type": "text",
    "body": "Hi, is the 3pm tour still available?",
    "received_at": "2026-06-12T14:35:22Z"
  }
}

05

Add an HTTP module to send the reply

After the trigger, add whatever Make modules you want in the middle. For this tutorial, let’s assume you want an OpenAI module that drafts a reply, and then you want to send that reply through Mossmoon.

  1. After the Webhook trigger, add an OpenAI > Create a completion module. Pass the inbound message body as the user prompt. Give the system prompt whatever persona you want. The module returns the generated reply text.
  2. After OpenAI, add an HTTP > Make a request module. That’s where the outbound goes through Mossmoon.
{
  "to": "{{1.message.from}}",
  "type": "text",
  "body": "{{2.choices[].text}}"
}

The double-curly references are Make’s template syntax for pulling values from earlier modules. Module 1 is the webhook (so {{1.message.from}} is the sender’s number). Module 2 is the OpenAI completion (so {{2.choices[].text}} is the generated reply).

Save the scenario, turn it on, send another test message from your phone. The Make scenario fires, OpenAI generates a reply, the HTTP module sends it through Mossmoon, your phone receives the bot’s response.


06

Where to take this next

Once you have the inbound trigger and the outbound HTTP module, everything else is just Make modules in the middle. A few patterns we see teams build out from here:

  • CRM-routed inbound. Add a Google Sheets, HubSpot, or Pipedrive module that looks up the inbound number against your contacts and either creates the contact or attaches the message to an existing one before replying.
  • Multi-line routing. If you’re running multiple Mossmoon lines (one per client, one per agent), use Make’s Router module to branch on line_id and run a different downstream flow per line.
  • Calendar booking inline. Add a Cal.com or Google Calendar module that grabs available slots when the AI decides it’s booking time. Send the slot list back as a WhatsApp message. Catch the user’s pick on a follow-up inbound, confirm the booking.
  • Media handling. Inbound webhooks include payloads for images, voice notes, and documents. Pipe images into OpenAI Vision, voice notes into Whisper, documents into your DMS. All inside the same scenario.

07

Why this beats the Make.com Business API templates

Make’s native WhatsApp Business module sits on top of Meta’s WhatsApp Business API. Everything you build with it inherits the Business API rules: every customer onboarded through Meta business verification (days to weeks per account), template pre-approval for every outbound past the 24-hour window, per-conversation pricing on top of Make’s operations cost.

The pattern in this tutorial avoids all of that. Mossmoon connects through the customer’s actual WhatsApp on their phone, not through Meta’s server-side API. No business verification. No template approval. No 24-hour window. No per-conversation fees. For a deeper comparison of the two paths, see: WhatsApp Business API vs personal WhatsApp API.


Spin up your first line and run the scenario this afternoon.

First line free for 7 days. No Meta onboarding. One QR scan. Make scenario triggers immediately.

How to add WhatsApp to Make.com: step-by-step tutorial — Mossmoon