Skip to content

HighLevel: Conversations schemas

36 HighLevel schemas with complete fields and constraints.

← Conversations operations · All schemas

Add an external outbound call — request body — body

FieldTypePresenceDescription and constraints
$objectRoot
altIdstringOptionalexternal mail provider's message id
attachmentsarrayOptionalArray of attachments
attachments[]stringEach item
callJSONOptionalPhone call dialer and receiver information
call (allOf 1)ModelAll variants applyExpand Add an inbound message — request body — body call from, status, to
conversationIdstringRequired within parentConversation Id
conversationProviderIdstringRequired within parentConversation Provider Id
datestringOptionalDate of the outbound message
Format: date-time
typestringRequired within parentMessage Type
One of: Call

Referenced models: Add an inbound message — request body — body call from, status, to

Add an inbound message — request body — body

FieldTypePresenceDescription and constraints
$objectRoot
altIdstringOptionalexternal mail provider's message id
attachmentsarrayOptionalArray of attachments
attachments[]stringEach item
callJSONOptionalPhone call dialer and receiver information
call (allOf 1)ModelAll variants applyExpand Add an inbound message — request body — body call from, status, to
contactIdstringRequired within parentContact Id
conversationIdstringRequired within parentConversation Id
conversationProviderIdstringRequired within parentConversation Provider Id
datestringOptionalDate of the inbound message
Format: date-time
directionobjectOptionalMessage direction, if required can be set manually, default is outbound
Default: outbound
emailBccarrayOptionalList of email address to BCC
emailBcc[]stringEach item
emailCcarrayOptionalList of email address to CC
emailCc[]stringEach item
emailFromstringOptionalEmail address to send from. This field is associated with the contact record and cannot be dynamically changed.
emailMessageIdstringOptionalSend the email message id for which this email should be threaded. This is for replying to a specific email
emailTostringOptionalRecipient email address. This field is associated with the contact record and cannot be dynamically changed.
htmlstringOptionalHTML Body of Email
messagestringOptionalMessage Body
subjectstringOptionalSubject of the Email
typestringRequired within parentMessage 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

Referenced models: Add an inbound message — request body — body call from, status, to

Add an inbound message — request body — body call from, status, to

FieldTypePresenceDescription and constraints
$objectRoot
fromstringOptionalPhone number of the dialer
statusstringOptionalCall status
One of: pending, completed, answered, busy, no-answer, failed, canceled, voicemail
tostringOptionalPhone number of the receiver

Add an inbound message — response body

FieldTypePresenceDescription and constraints
$objectRoot
contactIdstringOptionalContact ID associated with the processed message
conversationIdstringRequired within parentConversation ID.
dateAddedstringOptionalTimestamp when the processed message was created
Format: date-time
emailMessageIdstringOptionalEmail message ID created for email conversations
messagestringRequired within parentResult message returned after processing
messageIdstringRequired within parentThis is the main Message ID
successbooleanRequired within parentWhether the message processing succeeded

Add message attachments — request body — body

FieldTypePresenceDescription and constraints
$objectRoot
attachmentsarrayRequired within parentArray of attachment URLs to set on the message (replaces existing). Maximum 5 URLs.
attachments[]stringEach item

Agent Ai-Bot is typing a message indicator for live chat — request body — body

FieldTypePresenceDescription and constraints
$objectRoot
conversationIdstringRequired within parentConversation Id
isTypingstringRequired within parentTyping status
locationIdstringRequired within parentLocation Id
visitorIdstringRequired within parentUnique ID assigned to each live chat visitor.

Agent Ai-Bot is typing a message indicator for live chat — response body

FieldTypePresenceDescription and constraints
$objectRoot
successbooleanRequired within parentWhether the live chat feedback was recorded successfully

Cancel a scheduled message — response body

FieldTypePresenceDescription and constraints
$objectRoot
messagestringRequired within parentError message of the request
statusJSONRequired within parent
status (anyOf 1)numberAlternativeHTTP Status code of the request
status (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Create Conversation — request body — body

FieldTypePresenceDescription and constraints
$objectRoot
contactIdstringRequired within parentContact ID as string
locationIdstringRequired within parentLocation ID as string

Create Conversation — response body

FieldTypePresenceDescription and constraints
$objectRoot
conversationJSONRequired within parentConversation data of the provided conversation ID.
conversation (allOf 1)ModelAll variants applyExpand Create Conversation — response body — conversation assigned To, contact Id, date Added, date Updated, deleted, id, last Message Date, location Id
successbooleanRequired within parentIndicates whether the API request was successful.

Referenced models: Create Conversation — response body — conversation assigned To, contact Id, date Added, date Updated, deleted, id, last Message Date, location Id

Create Conversation — response body — conversation assigned To, contact Id, date Added, date Updated, deleted, id, last Message Date, location Id

FieldTypePresenceDescription and constraints
$objectRoot
assignedTostringOptionalUnique identifier of the team member assigned to this conversation
contactIdstringRequired within parentUnique identifier of the contact associated with this conversation
dateAddedstringRequired within parentDate when the conversation was created
dateUpdatedstringRequired within parentDate when the conversation was last updated
deletedbooleanRequired within parentFlag indicating if this conversation has been deleted
idstringRequired within parentUnique identifier for the conversation
lastMessageDatestringRequired within parentDate of the last message in the conversation
locationIdstringRequired within parentUnique identifier of the business location where this conversation takes place

Delete Conversation — response body

FieldTypePresenceDescription and constraints
$objectRoot
successbooleanRequired within parentBoolean value as the API response.

Export messages by location ID — response body

FieldTypePresenceDescription and constraints
$objectRoot
messagesarrayRequired within parentArray of messages
messages[]ModelEach itemExpand Get message by message id — response body
nextCursorstringOptionalCursor for fetching next page. Null if no more results.
totalJSONRequired within parent
total (anyOf 1)numberAlternativeTotal number of messages matching the query
total (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Referenced models: Get message by message id — response body

Get Conversation — response body

FieldTypePresenceDescription and constraints
$objectRoot
assignedTostringOptionalUnique identifier of the team member currently responsible for handling this conversation
contactIdstringRequired within parentUnique identifier of the contact associated with this conversation
deletedbooleanRequired within parentFlag indicating if this conversation has been moved to trash/deleted
idstringRequired within parentUnique identifier for this specific conversation thread
inboxbooleanRequired within parentFlag indicating if this conversation is currently in the main inbox view
locationIdstringRequired within parentUnique identifier of the business location where this conversation takes place
starredbooleanOptionalFlag indicating if this conversation has been marked as important/starred by the user
typeJSONRequired within parent
type (anyOf 1)numberAlternativeCommunication channel type for this conversation: 1 (Phone), 2 (Email), 3 (Facebook Messenger), 4 (Review), 5 (Group SMS), 6 (Internal Chat - coming soon)
type (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
unreadCountJSONRequired within parent
unreadCount (anyOf 1)numberAlternativeNumber of messages in this conversation that have not been read by the user
unreadCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Get email by Id — response body

FieldTypePresenceDescription and constraints
$objectRoot
altIdstringOptionalExternal Id
attachmentsarrayOptionalAn array of attachment URLs.
attachments[]stringEach item
bccarrayOptionalList of email Ids of the people in the bcc field
bcc[]stringEach item
bodystringRequired within parentBody content of the email message
ccarrayOptionalList of email Ids of the people in the cc field
cc[]stringEach item
contactIdstringRequired within parentContact ID associated with the email message
contentTypestringRequired within parentContent type of the email body
conversationIdstringRequired within parentConversation ID associated with the email message
conversationProviderIdstringOptionalConversation provider ID
dateAddedstringRequired within parentTimestamp when the email message was created
directionstringRequired within parentDirection of the email message
Known values: inbound, outbound
fromstringRequired within parentName and Email Id of the sender
idstringRequired within parentUnique identifier for the email message
locationIdstringRequired within parentLocation ID associated with the email message
providerstringOptionalEmail provider used to send or receive the message
replyToMessageIdstringOptionalIn case of reply, email message Id of the reply to email
sourcestringOptionalEmail source
Known values: workflow, bulk_actions, campaign, api, app
statusstringOptionalDelivery status of the email message
Known values: pending, scheduled, sent, delivered, read, undelivered, connected, failed, opened
subjectstringOptionalSubject line of the email message
threadIdstringRequired within parentMessage Id or thread Id
toarrayRequired within parentList of email Ids of the receivers
to[]stringEach item

Get message by message id — response body

FieldTypePresenceDescription and constraints
$objectRoot
attachmentsarrayOptionalAn array of attachment URLs. Attachments will be empty for Call and Voicemails, type 1 and 10. Please use get call recording API to fetch call recording and voicemails.
attachments[]stringEach item
bodystringOptionalBody content of the message
chatWidgetIdstringOptionalChat Widget Id
contactIdstringRequired within parentContact ID associated with the message
contentTypestringRequired within parentContent type of the message body
conversationIdstringRequired within parentConversation ID associated with the message
conversationProviderIdstringOptionalConversation Provider Id
dateAddedstringRequired within parentTimestamp when the message was created
directionstringRequired within parentDirection of the message
Known values: inbound, outbound
idstringRequired within parentUnique identifier for the message
locationIdstringRequired within parentLocation ID associated with the message
messageTypestringRequired within parentType of the message as a string
Known values: TYPE_CALL, TYPE_SMS, TYPE_RCS, TYPE_EMAIL, TYPE_SMS_REVIEW_REQUEST, TYPE_WEBCHAT, TYPE_SMS_NO_SHOW_REQUEST, TYPE_CAMPAIGN_SMS, TYPE_CAMPAIGN_CALL, TYPE_CAMPAIGN_EMAIL, TYPE_CAMPAIGN_VOICEMAIL, TYPE_FACEBOOK, TYPE_CAMPAIGN_FACEBOOK, TYPE_CAMPAIGN_MANUAL_CALL, TYPE_CAMPAIGN_MANUAL_SMS, TYPE_GMB, TYPE_CAMPAIGN_GMB, TYPE_REVIEW, TYPE_INSTAGRAM, TYPE_WHATSAPP, TYPE_CUSTOM_SMS, TYPE_CUSTOM_EMAIL, TYPE_CUSTOM_PROVIDER_SMS, TYPE_CUSTOM_PROVIDER_EMAIL, TYPE_IVR_CALL, TYPE_ACTIVITY_CONTACT, TYPE_ACTIVITY_INVOICE, TYPE_ACTIVITY_PAYMENT, TYPE_ACTIVITY_OPPORTUNITY, TYPE_LIVE_CHAT, TYPE_LIVE_CHAT_INFO_MESSAGE, TYPE_ACTIVITY_APPOINTMENT, TYPE_FACEBOOK_COMMENT, TYPE_INSTAGRAM_COMMENT, TYPE_CUSTOM_CALL, TYPE_INTERNAL_COMMENT, TYPE_ACTIVITY_EMPLOYEE_ACTION_LOG, TYPE_TIKTOK, TYPE_TIKTOK_COMMENT, TYPE_ACTIVITY_WHATSAPP, TYPE_FORM_SUBMISSION, TYPE_SMS_REACTION
metaModelOptionalExpand Get message by message id — response body — meta
Additional metadata associated with the message
sourcestringOptionalMessage source
Known values: workflow, bulk_actions, campaign, api, app
statusstringOptionalDelivery status of the message
Known values: connected, delivered, failed, opened, pending, read, scheduled, sent, undelivered, clicked, opt_out, queued
typeJSONRequired within parent
type (anyOf 1)numberAlternativeNumeric message type code
type (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
userIdstringOptionalUser Id

Referenced models: Get message by message id — response body — meta

Get message by message id — response body — meta

FieldTypePresenceDescription and constraints
$objectRoot
callDurationstringOptionalCall duration in seconds
callStatusstringOptionalCall status - can be pending, completed, answered, busy, no-answer, failed, canceled, or voicemail
Known values: pending, completed, answered, busy, no-answer, failed, canceled, voicemail
emailobjectOptionalmeta will contain email, for message type 3 (email). messageIds is list of all email message ids under the message thread

Get messages by conversation id — response body

FieldTypePresenceDescription and constraints
$objectRoot
lastMessageIdstringRequired within parentId of the last message in the messages array
messagesarrayRequired within parentArray of messages
messages[]ModelEach itemExpand Get message by message id — response body
nextPagebooleanRequired within parentNext page value true indicates only 20 message is in the response. Rest of the messages are in the next page. Please use the lastMessageId value in the query to get the next page messages

Referenced models: Get message by message id — response body

Get transcription by Message ID — response body

FieldTypePresenceDescription and constraints
$objectRoot
confidenceJSONRequired within parent
confidence (anyOf 1)numberAlternativeConfidence of the transcription
confidence (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
endTimeJSONRequired within parent
endTime (anyOf 1)numberAlternativeEnd time of the sentence in milliseconds
endTime (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
mediaChannelJSONRequired within parent
mediaChannel (anyOf 1)numberAlternativeMedia channel describes the user interaction channel
mediaChannel (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
sentenceIndexJSONRequired within parent
sentenceIndex (anyOf 1)numberAlternativeIndex of the sentence in the transcription
sentenceIndex (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
startTimeJSONRequired within parent
startTime (anyOf 1)numberAlternativeStart time of the sentence in milliseconds
startTime (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
transcriptstringRequired within parentTranscript of the sentence

Search Conversations — response body

FieldTypePresenceDescription and constraints
$objectRoot
conversationsarrayRequired within parentThe list of all conversations found for the given query
conversations[]ModelEach itemExpand Search Conversations — response body — conversations item
totalJSONRequired within parent
total (anyOf 1)numberAlternativeTotal Number of results found for the given query
total (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Referenced models: Search Conversations — response body — conversations item

Search Conversations — response body — conversations item

FieldTypePresenceDescription and constraints
$objectRoot
contactIdstringRequired within parentContact Id
contactNamestringRequired within parentAlternative display name for the contact - used when full name is not available
emailstringRequired within parentPrimary email address of the contact
fullNamestringRequired within parentComplete name of the contact (first and last name)
idstringRequired within parentConversation Id
lastMessageBodystringRequired within parentContent of the most recent message in the conversation
lastMessageTypestringRequired within parentChannel/type of the most recent message (SMS, Email, Call, etc)
Known values: TYPE_CALL, TYPE_SMS, TYPE_RCS, TYPE_EMAIL, TYPE_SMS_REVIEW_REQUEST, TYPE_WEBCHAT, TYPE_SMS_NO_SHOW_REQUEST, TYPE_CAMPAIGN_SMS, TYPE_CAMPAIGN_CALL, TYPE_CAMPAIGN_EMAIL, TYPE_CAMPAIGN_VOICEMAIL, TYPE_FACEBOOK, TYPE_CAMPAIGN_FACEBOOK, TYPE_CAMPAIGN_MANUAL_CALL, TYPE_CAMPAIGN_MANUAL_SMS, TYPE_GMB, TYPE_CAMPAIGN_GMB, TYPE_REVIEW, TYPE_INSTAGRAM, TYPE_WHATSAPP, TYPE_CUSTOM_SMS, TYPE_CUSTOM_EMAIL, TYPE_CUSTOM_PROVIDER_SMS, TYPE_CUSTOM_PROVIDER_EMAIL, TYPE_IVR_CALL, TYPE_ACTIVITY_CONTACT, TYPE_ACTIVITY_INVOICE, TYPE_ACTIVITY_PAYMENT, TYPE_ACTIVITY_OPPORTUNITY, TYPE_LIVE_CHAT, TYPE_LIVE_CHAT_INFO_MESSAGE, TYPE_ACTIVITY_APPOINTMENT, TYPE_FACEBOOK_COMMENT, TYPE_INSTAGRAM_COMMENT, TYPE_CUSTOM_CALL, TYPE_INTERNAL_COMMENT, TYPE_ACTIVITY_EMPLOYEE_ACTION_LOG, TYPE_TIKTOK, TYPE_TIKTOK_COMMENT, TYPE_ACTIVITY_WHATSAPP, TYPE_FORM_SUBMISSION, TYPE_SMS_REACTION
locationIdstringRequired within parentLocation Id
phonestringRequired within parentPrimary phone number of the contact
typestringRequired within parentPrimary channel/type of the conversation (Phone, Email, etc)
Known values: TYPE_PHONE, TYPE_EMAIL, TYPE_FB_MESSENGER, TYPE_REVIEW, TYPE_GROUP_SMS
unreadCountJSONRequired within parent
unreadCount (anyOf 1)numberAlternativeNumber of unread messages in this conversation
unreadCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Send a new message — request body — body

FieldTypePresenceDescription and constraints
$objectRoot
appointmentIdstringOptionalID of the associated appointment
attachmentsarrayOptionalArray of attachment URLs
attachments[]stringEach item
contactIdstringRequired within parentID of the contact receiving the message
conversationProviderIdstringOptionalID of conversation provider
customSubtypeIdstringOptionalCustom subtype ID for email unsubscription preferences. Only applies to email messages.
emailBccarrayOptionalArray of BCC email addresses
emailBcc[]stringEach item
emailCcarrayOptionalArray of CC email addresses
emailCc[]stringEach item
emailFromstringOptionalEmail address to send from
emailReplyModestringOptionalMode for email replies
One of: reply, reply_all
emailTostringOptionalEmail address to send to, if different from contact's primary email. This should be a valid email address associated with the contact.
forwardJSONOptionalForwarding configuration for emails
forward (allOf 1)ModelAll variants applyExpand Send a new message — request body — body forward email Message Id, forward Whole Thread, is Forwarded, message Id, recipient Contact Id, recipient Conversation Id, source Contact Id, source Conversation Id, to Email
fromNumberstringOptionalPhone number used as the sender number for outbound messages
htmlstringOptionalHTML content of the message
messagestringOptionalText content of the message
optimizationPeriodstringOptionalOptimization period in hours (24h, 48h, or 72h)
One of: 24h, 48h, 72h
replyMessageIdstringOptionalID of message being replied to
scheduledTimestampnumberOptionalUTC Timestamp (in seconds) at which the message should be scheduled
statusstringRequired within parentMessage status
One of: delivered, failed, pending, read
subTypeobjectRequired within parentType of message being sent
subjectstringOptionalSubject line for email messages
templateIdstringOptionalID of message template
threadIdstringOptionalID of message thread. For email messages, this is the message ID that contains multiple email messages in the thread
toNumberstringOptionalRecipient phone number for outbound messages
typestringRequired within parentType of message being sent
One of: SMS, RCS, Email, WhatsApp, IG, FB, Custom, Live_Chat, TIKTOK
usesNativeSchedulingAibooleanOptionalWhether the scheduled email uses native AI for the email scheduling

Referenced models: Send a new message — request body — body forward email Message Id, forward Whole Thread, is Forwarded, message Id, recipient Contact Id, recipient Conversation Id, source Contact Id, source Conversation Id, to Email

Send a new message — request body — body forward email Message Id, forward Whole Thread, is Forwarded, message Id, recipient Contact Id, recipient Conversation Id, source Contact Id, source Conversation Id, to Email

FieldTypePresenceDescription and constraints
$objectRoot
emailMessageIdstringOptionalEmail Message ID of the specific email being forwarded (source) - Required for single email forward, ignored for thread forward
forwardWholeThreadbooleanOptionalSpecify if forwarding the whole thread or just a single email
isForwardedbooleanRequired within parentSpecify if this is a forwarded email
messageIdstringOptionalMessage ID of the email thread being forwarded (source) - REQUIRED for forwarding
recipientContactIdstringOptionalContact ID of recipient when forwarding (destination)
recipientConversationIdstringOptionalConversation ID of recipient when forwarding (destination)
sourceContactIdstringOptionalContact ID where the forwarded email originated from (source) - Auto-populated if not provided
sourceConversationIdstringOptionalConversation ID where the forwarded email originated from (source) - Auto-populated if not provided
toEmailstringOptionalEmail address to forward to (destination)

Send a new message — response body

FieldTypePresenceDescription and constraints
$objectRoot
conversationIdstringRequired within parentConversation ID.
emailMessageIdstringOptionalThis contains the email message ID (only for Email type). Use this ID to send inbound replies through this API to create a threaded email.
forwardDataJSONOptionalOptional metadata for forwarded email
forwardData (allOf 1)ModelAll variants applyExpand Send a new message — response body — forward Data email Message Id, forward To Email, forward Whole Thread, message Id, recipient Contact Id, recipient Conversation Id, source Contact Id, source Conversation Id
messageIdstringRequired within parentThis is the main Message ID
messageIdsarrayOptionalWhen sending via the GMB channel, we will be returning list of `messageIds` instead of single `messageId`.
messageIds[]stringEach item
msgstringOptionalAdditional response message when sending a workflow message
statusstringRequired within parentMessage status
Known values: delivered, failed, pending, read

Referenced models: Send a new message — response body — forward Data email Message Id, forward To Email, forward Whole Thread, message Id, recipient Contact Id, recipient Conversation Id, source Contact Id, source Conversation Id

Send a new message — response body — forward Data email Message Id, forward To Email, forward Whole Thread, message Id, recipient Contact Id, recipient Conversation Id, source Contact Id, source Conversation Id

FieldTypePresenceDescription and constraints
$objectRoot
emailMessageIdstringOptionalEmail Message ID of the forwarded email (source)
forwardToEmailstringOptionalEmail address the message was forwarded to (destination)
forwardWholeThreadbooleanOptionalWhether the entire thread was forwarded
messageIdstringOptionalMessage ID of the forwarded message (source)
recipientContactIdstringOptionalContact ID of the recipient of the forwarded email (destination)
recipientConversationIdstringOptionalConversation ID of the recipient of the forwarded email (destination)
sourceContactIdstringOptionalContact ID where the forwarded email originated from (source)
sourceConversationIdstringOptionalConversation ID where the forwarded email originated from (source)

Update Conversation — request body — body

FieldTypePresenceDescription and constraints
$objectRoot
feedbackstringOptionalLive chat feedback value for the conversation
One of: positive, negative
locationIdstringRequired within parentLocation ID as string
starredbooleanOptionalStarred status of the conversation.
unreadCountnumberOptionalCount of unread messages in the conversation

Update Conversation — response body

FieldTypePresenceDescription and constraints
$objectRoot
conversationJSONRequired within parentConversation data of the provided conversation ID.
conversation (allOf 1)ModelAll variants applyExpand Update Conversation — response body — conversation assigned To, contact Id, deleted, id, inbox, last Message Body, last Message Date, last Message Type, location Id, starred, unread Count, user Id
successbooleanRequired within parentBoolean value as the API response.

Referenced models: Update Conversation — response body — conversation assigned To, contact Id, deleted, id, inbox, last Message Body, last Message Date, last Message Type, location Id, starred, unread Count, user Id

Update Conversation — response body — conversation assigned To, contact Id, deleted, id, inbox, last Message Body, last Message Date, last Message Type, location Id, starred, unread Count, user Id

FieldTypePresenceDescription and constraints
$objectRoot
assignedTostringOptionalAssigned User ID as string
contactIdstringRequired within parentContact ID as string
deletedbooleanRequired within parentDeleted status of the conversation.
idstringOptionalContact ID as string
inboxbooleanOptionalInbox status of the conversation.
lastMessageBodystringOptionalLast message body as string
lastMessageDatestringOptionalLast message date as UTC
lastMessageTypestringOptionalType of the last message sent/received in the conversation.
Known values: TYPE_CALL, TYPE_SMS, TYPE_RCS, TYPE_EMAIL, TYPE_SMS_REVIEW_REQUEST, TYPE_WEBCHAT, TYPE_SMS_NO_SHOW_REQUEST, TYPE_CAMPAIGN_SMS, TYPE_CAMPAIGN_CALL, TYPE_CAMPAIGN_EMAIL, TYPE_CAMPAIGN_VOICEMAIL, TYPE_FACEBOOK, TYPE_CAMPAIGN_FACEBOOK, TYPE_CAMPAIGN_MANUAL_CALL, TYPE_CAMPAIGN_MANUAL_SMS, TYPE_GMB, TYPE_CAMPAIGN_GMB, TYPE_REVIEW, TYPE_INSTAGRAM, TYPE_WHATSAPP, TYPE_CUSTOM_SMS, TYPE_CUSTOM_EMAIL, TYPE_CUSTOM_PROVIDER_SMS, TYPE_CUSTOM_PROVIDER_EMAIL, TYPE_IVR_CALL, TYPE_ACTIVITY_CONTACT, TYPE_ACTIVITY_INVOICE, TYPE_ACTIVITY_PAYMENT, TYPE_ACTIVITY_OPPORTUNITY, TYPE_LIVE_CHAT, TYPE_LIVE_CHAT_INFO_MESSAGE, TYPE_ACTIVITY_APPOINTMENT, TYPE_FACEBOOK_COMMENT, TYPE_INSTAGRAM_COMMENT, TYPE_CUSTOM_CALL, TYPE_INTERNAL_COMMENT, TYPE_ACTIVITY_EMPLOYEE_ACTION_LOG, TYPE_TIKTOK, TYPE_TIKTOK_COMMENT, TYPE_ACTIVITY_WHATSAPP, TYPE_FORM_SUBMISSION, TYPE_SMS_REACTION
locationIdstringRequired within parentLocation ID as string
starredbooleanOptionalStarred status of the conversation.
unreadCountJSONOptional
unreadCount (anyOf 1)numberAlternativeCount of unread messages in the conversation
unreadCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
userIdstringOptionalUser ID as string

Update email message status — request body — body

FieldTypePresenceDescription and constraints
$objectRootRequest body to update the delivery status of an email message. `status` is required. `events` and `recipients` are optional and may be included together with `status`.

- Use `events` to report aggregate delivery metrics (delivered count, open count, etc.).
- Use `recipients` to track per-recipient delivery outcomes for multi-recipient emails.
- Use `status` to set the overall message status.

Multiple calls are additive — event counters are merged, recipient statuses are upserted, and the message status is overwritten.
eventsJSONOptionalAggregate delivery event counters. Counters are merged into existing values. The API automatically infers related events (e.g., reporting `clicked` will also set `opened` and `delivered` if not already present). See the endpoint description for the full inference rules.
events (allOf 1)ModelAll variants applyExpand Update email message status — request body — body events accepted, clicked, complained, delivered, failed, opened, rejected, replied, stored, unsubscribed
recipientsarrayOptionalPer-recipient delivery statuses. Each entry maps a recipient email address to a delivery status. Entries are upserted — if a recipient already has a status, it will be overwritten with the new value.
recipients[]ModelEach itemExpand Update email message status — request body — body recipients item
statusstringRequired within parentThe overall status of the email message. Required on every request. For emails with multiple recipients, consider using the `recipients` array for granular tracking and this field for the aggregate status.
One of: pending, scheduled, sent, delivered, read, undelivered, connected, failed, opened, clicked

Referenced models: Update email message status — request body — body events accepted, clicked, complained, delivered, failed, opened, rejected, replied, stored, unsubscribed, Update email message status — request body — body recipients item

Update email message status — request body — body events accepted, clicked, complained, delivered, failed, opened, rejected, replied, stored, unsubscribed

FieldTypePresenceDescription and constraints
$objectRootAggregate delivery event counters for the email message. Values are merged into existing stored counters (additive update, not replacement). A value of `0` is treated as a no-op and will not reset the stored counter. Only include fields you want to update. Provider-specific counters such as `permanent_fail`, `temporary_fail`, and `esp_isp_block` may be sent using those snake_case keys.
Additional keys: see wildcard field
acceptedintegerOptionalNumber of messages accepted by the receiving mail server for delivery. Automatically inferred (set to 1) when `delivered`, `permanent_fail`, or `temporary_fail` events are reported.
clickedintegerOptionalNumber of link click events within the email body. Triggers automatic inference of both `opened` and `delivered`.
complainedintegerOptionalNumber of spam complaint events (e.g., recipient marked the email as spam). Triggers automatic inference of `opened` and `delivered`.
deliveredintegerOptionalNumber of successful deliveries — the recipient mail server accepted the message. Automatically inferred (set to 1) when `opened`, `clicked`, `complained`, `unsubscribed`, or `replied` events are reported.
failedintegerOptionalTotal number of delivery failures (includes both permanent and temporary). For more granular failure tracking, use `permanent_fail` and `temporary_fail` instead.
openedintegerOptionalNumber of unique open events (typically tracked via a tracking pixel). Automatically inferred (set to 1) when `clicked`, `complained`, `unsubscribed`, or `replied` events are reported, provided open tracking is enabled on the email.
rejectedintegerOptionalNumber of messages rejected outright by the receiving mail server (before acceptance).
repliedintegerOptionalNumber of reply events. Triggers automatic inference of both `opened` (if open tracking is enabled) and `delivered`.
storedintegerOptionalNumber of messages stored by the email service provider (ESP-specific event).
unsubscribedintegerOptionalNumber of unsubscribe events triggered by the recipient. Triggers automatic inference of `opened` and `delivered`.
$.*integerAdditional keysAdditional provider event counter (merged into stored values).

Update email message status — request body — body recipients item

FieldTypePresenceDescription and constraints
$objectRootDelivery status for an individual recipient of a multi-recipient email. Each entry is keyed by the recipient's email address and tracks their specific delivery outcome independently from the aggregate event counters.
emailIdstringRequired within parentThe recipient's email address. This is used as the key to store and update the per-recipient status. Must match one of the original recipients of the email.
failReasonstringOptionalHuman-readable reason for the delivery failure. Only applicable when `status` is `failed`. Examples: "Mailbox not found", "Quota exceeded", "Blocked by recipient server".
statusstringRequired within parentThe delivery status for this specific recipient. Common values for status updates: `delivered` (successfully delivered), `failed` (delivery failed — provide `failReason`), `opened` (recipient opened the email), `clicked` (recipient clicked a link).
One of: pending, scheduled, sent, delivered, read, undelivered, connected, failed, opened, clicked

Update email message status — response body

FieldTypePresenceDescription and constraints
$objectRootResponse returned after successfully updating the email message status.
messagestringRequired within parentHuman-readable result message.
successbooleanRequired within parentWhether the status update was persisted successfully.

Update message status — request body — body

FieldTypePresenceDescription and constraints
$objectRoot
emailMessageIdstringOptionalEmail message Id
errorJSONOptionalError object from the conversation provider
error (allOf 1)ModelAll variants applyExpand Update message status — request body — body error code, message, type
recipientsarrayOptionalEmail delivery status for additional email recipients.
recipients[]stringEach item
statusstringRequired within parentMessage status
One of: delivered, failed, pending, read

Referenced models: Update message status — request body — body error code, message, type

Update message status — request body — body error code, message, type

FieldTypePresenceDescription and constraints
$objectRoot
codestringRequired within parentError Code
messagestringRequired within parentError Message
typestringRequired within parentError Type

Upload file attachments — request body — body

FieldTypePresenceDescription and constraints
$objectRoot
attachmentUrlsarrayRequired within parentArray of attachment URLs to upload for the conversation
attachmentUrls[]stringEach item
chatServiceSidstringOptionalTwilio chat service SID for group SMS uploads
contactIdstringRequired within parentContact Id
conversationIdstringRequired within parentConversation Id
isGroupSmsstringOptionalFlag to indicate group SMS upload flow. When true, only 1 file upload is allowed per request.
locationIdstringRequired within parentLocation ID associated with the upload request

Upload file attachments — response body

FieldTypePresenceDescription and constraints
$objectRoot
twilioMediaSidsarrayOptionalTwilio media SIDs for group SMS (when isGroupSms=true)
twilioMediaSids[]stringEach item
uploadedFilesobjectRequired within parentMap of uploaded file names to their accessible URLs

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.