WAButton

Pro webhook

New WhatsApp lead, n8n workflow starts

WAButton POSTs the lead as JSON the moment it is saved. n8n's Webhook node is the trigger. One URL. No custom node to maintain.

5 min setup Target: Dashboard → Notifications → Webhook

Connect WAButton leads to n8n

Create a catch URL in n8n, paste it in Notifications, send a test, then add one action.

  1. 1

    Add a Webhook node in n8n

    Create a workflow. Add the Webhook core node as the trigger. Set HTTP Method to POST. Leave authentication on None: WAButton sends JSON and two headers, not a shared secret.

    Pro tip: Use Respond Immediately so n8n returns 200 before downstream nodes finish.

  2. 2

    Copy the Test URL and listen

    At the top of the node panel, select Test URL and copy it. Click Listen for Test Event (or Execute workflow). n8n is now waiting for one POST.

    Pro tip: The Test URL only works while the editor is listening. Live traffic needs the Production URL after you publish.

  3. 3

    Paste the URL into WAButton and send a test

    In the widget editor open Notifications. Enable Send leads to a webhook (Pro). Paste the n8n Test URL. Click the test button. n8n should show the JSON in the Webhook node.

    Pro tip: A sample delivery includes "test": true. Filter on that field if you do not want test leads in Sheets.

    {
      "event": "lead.created",
      "version": 1,
      "deliveryId": "sample-delivery-id",
      "sentAt": "2026-09-10T12:00:00.000Z",
      "widget": { "id": "YOUR_WIDGET_UUID", "name": "Your widget" },
      "lead": {
        "id": "sample-lead-id",
        "submittedAt": "2026-09-10T12:00:00.000Z",
        "answers": {
          "name": "Jane Sample",
          "email": "jane@example.com",
          "message": "This is a sample lead from your WAButton test request."
        },
        "contact": {
          "email": "jane@example.com",
          "whatsappReplyUrl": "https://wa.me/15550192831"
        },
        "metadata": {
          "country": "ES",
          "deviceType": "desktop",
          "referrer": "https://example.com/pricing"
        }
      }
    }
  4. 4

    Map one action, then go live

    Add a Google Sheets, Slack, or email node. Map {{ $json.body.lead.answers.email }}, {{ $json.body.lead.contact.whatsappReplyUrl }}, and {{ $json.body.widget.name }}. Publish the workflow. Copy the Production URL from the Webhook node and replace the Test URL in WAButton. Save.

    Pro tip: Headers X-WAButton-Event and X-WAButton-Delivery are on every POST if you later add an Only Run If expression.

Why send WAButton leads through n8n

The payload is already structured

event is always lead.created. answers, contact, and metadata arrive as JSON, not a blob of email text.

Test URL, then Production URL

n8n gives you both. Listen for a test event, then publish and switch WAButton to the production URL.

Respond immediately

n8n can acknowledge the POST before the rest of the workflow runs. WAButton retries on non-2xx, so a slow CRM step should not hold the HTTP response.

Same test button as production

The dashboard Send test request uses the same JSON shape, with test: true so you can filter sample runs.

Frequently asked questions

Which WAButton plan includes webhooks?

Pro and above. The Notifications tab shows a Pro badge until you upgrade. Delivery is also refused after a downgrade, even if a URL is still saved.

Why did my live lead never reach n8n?

The Test URL stops receiving once you leave Listen for Test Event. Publish the workflow and paste the Production URL into WAButton.

Does WAButton sign the body?

Not today. Treat the URL as the secret: do not post it publicly. n8n Header auth is unused unless we add a shared secret later.

Tomorrow's conversations are already visiting your website today.

The opportunity isn't only getting more visitors. It's connecting with the ones you already have, before their interest fades.

One line of code. No credit card. No waiting.