GoHighLevel Webhooks Explained: Inbound and Outbound
GoHighLevel webhooks move data between your CRM and the outside world without anyone copying and pasting a thing. Some push information out the moment something happens inside a sub-account. Others pull information in from a form, a payment page, or a custom app, and use it to start a workflow.
Which one you need depends on the direction the data has to travel. Getting that backwards is usually why an integration looks broken when it's really just pointed the wrong way.
How GoHighLevel Webhooks Send Data Out of a Workflow
An outbound webhook is a workflow action, not a trigger. Open Workflow Builder, click the plus icon where you want the step, and search the Actions panel for Webhook.
Fill in an action name, a method (POST is the default), and the URL on the receiving end.
As GoHighLevel's own outbound webhook documentation lays out, once a contact reaches that step, the platform packages up name, email, phone, tags and custom fields, plus location data, and posts it to that URL.
Trigger-specific data rides along too, but only when it applies. An appointment, an order, an invoice or a message object shows up in the payload only when the workflow's own trigger relates to it.
Add fields of your own under Custom Data, each one a plain key and a value that can carry a dynamic placeholder such as {{contact.source}}.
If you're piping that payload into Make or Pabbly Connect rather than a server you built yourself, test the workflow against a sample contact first. Check the execution logs before you publish, since a malformed URL fails quietly otherwise.
What an Inbound Webhook Trigger Actually Does
An inbound webhook runs the opposite direction. Add the Inbound Webhook trigger to a new workflow and GoHighLevel generates a unique URL built around a random ID.
Send that URL a POST, GET or PUT request carrying a JSON body. The trigger captures it as sample data you can map to fields afterward, with keys in camelCase or snake_case.
Because the workflow can run contactless, you can send through almost anything: order details bound for a spreadsheet, a Slack alert, or a payload meant for another system further down the chain. A contact only gets created once an email address or phone number turns up in the mapped data.
Agencies on any GoHighLevel plan get 100 free executions per sub-account before Premium Trigger pricing applies, according to GoHighLevel's support documentation on the inbound webhook trigger. Premium actions have to be switched on in agency settings first.
That's worth confirming during initial GHL setup and configuration, rather than after a client's first big campaign leans on it.
If a URL ever leaks, don't try to patch it. Delete the trigger and add a new one, since a fresh ID is the only way to get a clean URL.
Keeping a Webhook Integration From Failing Silently
Workflow webhooks cover day-to-day automation. A different webhook system sits underneath the GoHighLevel API for developers building a marketplace app rather than a trigger inside one sub-account.
Every delivery there carries a type such as ContactCreate, a timestamp, a webhookId for deduplication, and a data object, as GoHighLevel's webhook integration guide for the marketplace API lays out.
GoHighLevel expects a 200 response the moment your endpoint receives the payload, not once it's finished processing. Anything short of that triggers a retry with exponential backoff and random jitter, so failures don't all land again at once.
Check the X-GHL-Signature header, built on Ed25519, rather than the older X-WH-Signature header built on RSA-SHA256. GoHighLevel retired that legacy header on 1 September 2026, so an integration still checking only the old signature is already running unverified.
An endpoint with a poor delivery record over a high volume of webhooks gets flagged by email, then paused if nothing improves. Fixing it means re-enabling the event subscription from the marketplace dashboard.
Cover photo by Cemrecan Yurtman on Pexels
Need help implementing this in GoHighLevel?
Our team builds, automates, and scales GoHighLevel systems for agencies every day. Book a free call and we'll map out exactly what to ship next.
Book a free call


