An inbound webhook is how GoHighLevel listens for events from the outside world. You give the webhook URL to an external system, like Stripe, Typeform, Calendly, or your own application. When something happens in that system, it sends a POST request to the URL with a JSON payload. GoHighLevel receives the payload, maps the data to contact fields, and starts a workflow.
This makes GoHighLevel the hub of your automation. A payment in Stripe triggers a GoHighLevel workflow that tags the contact as a customer, moves the opportunity to Won, and sends a welcome email. All of that happens within seconds of the Stripe payment completing.
Inbound webhooks are different from native integrations. A native integration is a pre-built connection GoHighLevel sets up for you. An inbound webhook is a general-purpose endpoint you wire up yourself. This gives you more flexibility but requires a bit more configuration.
How Inbound Webhook works
In the workflow builder, you select "Inbound Webhook" as the trigger. GoHighLevel generates a unique URL for that workflow. You copy the URL and paste it into the external system as the webhook destination.
When the external system sends a request, GoHighLevel receives the JSON payload. You then use the "Workflow Data" merge tags to reference the incoming fields in subsequent actions. For example, if Stripe sends a customer email, you can use that email to find or create a contact in GoHighLevel.