GoHighLevel webhook event
OutboundMessage
Called whenever a user sends a message to a contact. GoHighLevel POSTs a JSON body carrying 19 top-level fields to your subscribed URL; the full shape is below.
How to receive it
Webhook events are delivered to the URL configured on your marketplace app as an HTTP POST with a JSON body. Acknowledge quickly with a 2xx and do the real work asynchronously — a slow handler shows up as a delivery failure. Events carry no ordering guarantee, so keep handlers idempotent and key them off the IDs in the payload rather than arrival order.
Payload fields
The JSON body POSTed to your webhook URL. Nested objects are shown indented under their parent.
| Name | Type | Description |
|---|---|---|
type | string | — |
locationId | string | — |
attachments | array | — |
body | string | — |
contactId | string | — |
contentType | string | — |
conversationId | string | — |
dateAdded | string | — |
direction | string | — |
messageType | string | — |
status | string | — |
messageId | string | — |
userId | string | — |
source | string | — |
conversationProviderId | string | — |
callDuration | number | — |
callStatus | string | — |
from | string | Sender number (live docs) |
to | string | Recipient number (live docs) |
Skip the schema lookup
Handling OutboundMessage usually means calling back into the GoHighLevel API to enrich or act on what changed. Hylo gives your AI agent every endpoint schema it needs for that second half — and can execute the call against your own sub-account.
Other webhook events