What a webhook does
When a webhook is set up on a number, WAGHL sends an HTTP request to your URL every time a chosen event happens — for example, a new message arrives or one goes out. Your endpoint receives the message details and can do whatever you like with them.
There are two kinds you can set up on a number: event webhooks (choose GHL Inbound and/or GHL Outbound — covered first below), and Direct WA Inbound (one URL that gets the raw incoming WhatsApp message, independent of GHL — covered near the end).
https://.
The two events
Each webhook fires on the events you tick:
| Event | Fires when… |
|---|---|
| GHL Inbound | a message comes in to your number (a customer messages you). |
| GHL Outbound | a message goes out from your number (you or an automation sends). |
Pick one or both. A webhook needs at least one event selected.
Add a webhook
Open the sub-account's devices
Sign in at waghl.com/login. In the left menu, click Sub-accounts — you'll see a list of sub-accounts with a Users Action column. Under that column, click the view icon (the eye) for the sub-account to open its list of numbers (devices).
Open the number's webhooks
In the device list, click the webhook icon on the number you want to send data from. This opens the webhooks panel for that number.
Click Add Webhook
Click Add Webhook to open the form.
Fill in the details
Give it a Name (any label to recognise it, e.g. "CRM Inbound"), paste your Target URL (must start with https://), and tick GHL Inbound, GHL Outbound, or both.
Save
Save the form. The webhook appears in the list and starts firing on the events you chose. You can add more than one webhook to the same number — for example, one URL for inbound and another for outbound.
Send a test payload
You don't have to wait for a real message to check your webhook works. Each webhook in the list has a paper-plane icon ( Send test payload).
Save the webhook first
The test sends to the saved URL, so add and save the webhook before testing.
Click the paper-plane icon
Click on the webhook's row. WAGHL immediately posts a sample payload — the same shape as a real message event — to your URL.
Read the result
A result shows right there: a green tick if your endpoint accepted it, or a red mark with the reason if it didn't. Use it to confirm your endpoint is receiving and reading the data correctly before you go live.
Edit or delete a webhook
Each row in the webhook list has Edit (pencil) and Delete (trash) actions. Edit to change the URL or events; delete to stop that webhook firing. Changes take effect immediately.
Direct WA Inbound
Alongside the event webhooks above, there's a second, simpler option: Direct WA Inbound. It sends the raw incoming WhatsApp message straight to your URL, independent of GHL processing — you get the inbound message as it arrives from WhatsApp, rather than as a GHL Inbound event. Use it when you want the raw inbound feed for your own app or automation.
Click Direct WA Inbound
In the webhooks panel, click the Direct WA Inbound button.
Enter your Target URL
There's just one field — your Target URL (starting with https://). No name, no event checkboxes: it's inbound-only by design.
Save
Save it. Direct WA Inbound appears as its own row in the same list, with the same Send test payload button so you can check it right away.
Multi-user numbers
If your account uses multiple numbers, webhooks are set per number, so each number can send to its own URL. To make sure your endpoint can tell which physical number an event belongs to, the sending/receiving number needs to be included in the payload — controlled by a per-sub-account setting called Show device number on messages (Multi device). It's on by default, so normally there's nothing to do.
To check or change it, open the WAGHL admin panel, click Edit on the sub-account, and toggle Show device number on messages (Multi device).
Troubleshooting
| Problem | What to check |
|---|---|
| Test payload fails | Confirm the URL is correct, reachable, starts with https://, and accepts a POST request. The result message shows the reason. |
| Nothing arrives on real messages | Check the right event is ticked (Inbound vs Outbound), and that the webhook is saved on the correct number. |
| Wrong number in the payload (multi-user) | In the WAGHL admin panel, click Edit on the sub-account and make sure Show device number on messages (Multi device) is on (it's on by default). See Multi-user numbers. |
| "At least one event must be selected" | Tick GHL Inbound, GHL Outbound, or both before saving. |
| Can't add a second Direct WA Inbound | There's only one Direct WA Inbound per number. Edit the existing one with the pencil, or Remove it first. |
| URL rejected on save | The URL must start with https:// and be a valid address. |
What's next?
- Premium actions & webhook — trigger sends from GHL workflows
- Send via API — send messages from your own code
- Reseller notifications — webhook alerts for resellers