GoHighLevel Conversations API

Add An Inbound Message

POST/conversations/messages/inbound

POST /conversations/messages/inbound Post the necessary fields for the API to add a new inbound message. It takes 17 body fields, requires the conversations/message.write scope and authenticates with a sub-account (location) token.

Request and authentication

Method
POST
Full URL
https://services.leadconnectorhq.com/conversations/messages/inbound
Scopes
conversations/message.write
Token type
Sub-account (location) token
Accepted auth
OAuth Access Token, Private Integration Token
API version header
Version: 2021-07-28
Schema verified
22 June 2026

Request body

JSON body fields. Nested objects are shown indented under their parent.

NameTypeDescription
typerequiredstring

Message Type

One of: SMS, RCS, Email, WhatsApp, GMB, IG, FB, Custom, WebChat, Live_Chat, Call, IVR_Call, Campaign_Call, Campaign_VoiceMail, TIKTOK, ALL_IN_ONE_CHAT, FORM_SUBMISSION

Example: SMS

attachmentsarray

Array of attachments

messagestring

Message Body

conversationIdrequiredstring

Conversation Id

Example: ve9EPM428h8vShlRW1KT

contactIdrequiredstring

Contact Id

Example: ve9EPM428h8vShlRW1KT

conversationProviderIdrequiredstring

Conversation Provider Id

Example: 61d6d1f9cdac7612faf80753

htmlstring

HTML Body of Email

subjectstring

Subject of the Email

emailFromstring

Email address to send from. This field is associated with the contact record and cannot be dynamically changed.

Example: sender@company.com

emailTostring

Recipient email address. This field is associated with the contact record and cannot be dynamically changed.

emailCcarray

List of email address to CC

Example: john1@doe.com,john2@doe.com

emailBccarray

List of email address to BCC

Example: john1@doe.com,john2@doe.com

emailMessageIdstring

Send the email message id for which this email should be threaded. This is for replying to a specific email

altIdstring

external mail provider's message id

Example: 61d6d1f9cdac7612faf80753

directionobject

Message direction, if required can be set manually, default is outbound

Example: outbound,inbound

datestring

Date of the inbound message

callunknown

Phone call dialer and receiver information

Response fields

Top-level fields returned on a successful call.

NameTypeDescription
successrequiredboolean
conversationIdrequiredstring

Conversation ID.

Example: ABC12h2F6uBrIkfXYazb

messageIdrequiredstring

This is the main Message ID

Example: t22c6DQcTDf3MjRhwf77

messagerequiredstring
contactIdstring
dateAddedstring
emailMessageIdstring

Example request

Copy-paste ready. Swap YOUR_TOKEN for your access token or Private Integration Token.

curl -X POST 'https://services.leadconnectorhq.com/conversations/messages/inbound' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Version: 2021-07-28' \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "SMS",
    "conversationId": "ve9EPM428h8vShlRW1KT",
    "contactId": "ve9EPM428h8vShlRW1KT",
    "conversationProviderId": "61d6d1f9cdac7612faf80753"
  }'

Skip the schema lookup

Hylo gives your AI agent this schema — and the other 52 documented here — without you looking anything up. Ask in plain English; it picks the endpoint, fills the body, and can run the call against your own sub-account.

More conversations endpoints