GoHighLevel webhook event

InboundMessage

Called whenever a contact sends a message to the user. GoHighLevel POSTs a JSON body carrying 20 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.

NameTypeDescription
typestring
locationIdstring
attachmentsarray
bodystring
contactIdstring
contentTypestring
conversationIdstring
dateAddedstring
directionstring
messageTypestring
statusstring
messageIdstring
userIdstring
conversationProviderIdstring
callDurationnumber
callStatusstring
fromstring

Caller/sender number (live docs; CALL payloads)

tostring

Dialed tracking number (live docs; CALL payloads)

messageTypeIdnumber

Numeric message type (live docs)

messageTypeStringstring

e.g. TYPE_CALL (live docs)

Skip the schema lookup

Handling InboundMessage 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