Skip to main content
POST
Reply or create internal note

Authorizations

X-Initdesk-Token
string
header
required

Path Parameters

ticket_id
string
required
organization_id
string
required
Pattern: ^[-a-zA-Z0-9_]+$

Body

next_assignee_id
integer | null
write-only
next_action
enum<string>
  • `` - (none)
  • close_and_mark_resolved - Close and Mark Resolved
  • close_and_mark_invalid - Close and Mark Invalid
  • close_and_mark_customer_inactivity - Close and Mark Customer Inactivity
  • reopen_waiting_customer - Reopen Waiting Customer
  • reopen_waiting_associate - Reopen Waiting Associate
  • close_and_mark_other - Close and Mark Other
  • report_spam - Report Spam
  • remove_from_spam - Remove from Spam
Available options:
,
close_and_mark_resolved,
close_and_mark_invalid,
close_and_mark_customer_inactivity,
reopen_waiting_customer,
reopen_waiting_associate,
close_and_mark_other,
report_spam,
remove_from_spam
content
string
content_html
string
is_visible_to_customer
boolean
external_recipient_emails
string<email>[] | null

On create with CC email routing: for customer-visible messages, a list (empty or not) sets this message's external CC snapshot only; the ticket row is not updated. Omitted or null copies the last customer-visible message's snapshot, or the ticket's creation-time list if none. Internal messages (not visible to customer) always store an empty list; this field is ignored for them. The ticket requester is always kept when a list is sent. On read: snapshot stored on this message.

Minimum string length: 1
bcc_recipient_emails
string<email>[] | null

On create with CC email routing: for customer-visible messages, optional BCC list for this send only (SMTP Bcc). Omitted, null, or empty means no BCC — prior message BCC is never carried forward. Internal messages and orgs without CC routing always store an empty list. Cannot overlap the requester (To) or this message's CC list. On read: audit snapshot.

Minimum string length: 1
attachment_ids
string<uuid>[]
write-only

List of attachment IDs to associate with this message.

Response

id
integer
required
read-only
author
object | null
required

Legacy author object; may be deprecated for display in a future API version in favor of sender.

role
enum<string>
required
read-only
  • customer - Customer
  • cc - Cc
  • associate - Associate
  • system - System
Available options:
customer,
cc,
associate,
system
sender
object
required

Who sent the message. Shape is one of the MessageSender variants in the schema; use top-level role to select it. Each variant includes nullable profile_picture for that author only. null when role is system, or for associate without author.

next_assignee
object | null
required
next_priority
enum<string> | null
required
read-only

Priority this message sets on the ticket. Null means no change.

  • not_set - No priority
  • low - Low
  • medium - Medium
  • high - High
  • urgent - Urgent
Available options:
not_set,
low,
medium,
high,
urgent,
null
kind
enum<string>
required
read-only

Message body kind. text or audio. audio: transcript lives in content; empty content means pending STT; content_html stays empty.

  • text - Text
  • audio - Audio
Available options:
text,
audio
has_raw_content
boolean
required
read-only

True when message raw content is available for see-entire-message.

created_at
string<date-time>
required
read-only
updated_at
string<date-time>
required
read-only
delivery_status
enum<string> | null
required
read-only

Consolidated outbound delivery state. Null when not applicable (inbound, internal notes, or pre-rollout messages).

  • pending - Pending
  • sent - Sent
  • read - Read
  • failed - Failed
Available options:
pending,
sent,
read,
failed,
null
sent_at
string<date-time> | null
required
read-only

When the message was first handed to the delivery platform (email, WhatsApp, or Telegram). Null until sent or read.

read_at
string<date-time> | null
required
read-only

When a read receipt was observed. Null until read; may be best-effort depending on channel.

failed_at
string<date-time> | null
required
read-only

When delivery permanently failed. Null until failed.

delivery_failure_reason
string
required
read-only

Short diagnostic for failed delivery. Content is unstable and must not be branched on in client code.

merged_from_ticket
object | null
required

Ticket this message was originally created on, when a merge moved it here. Null for messages created on this ticket.

attachments
object[]
required
read-only
next_action
enum<string>
  • `` - (none)
  • close_and_mark_resolved - Close and Mark Resolved
  • close_and_mark_invalid - Close and Mark Invalid
  • close_and_mark_customer_inactivity - Close and Mark Customer Inactivity
  • reopen_waiting_customer - Reopen Waiting Customer
  • reopen_waiting_associate - Reopen Waiting Associate
  • close_and_mark_other - Close and Mark Other
  • report_spam - Report Spam
  • remove_from_spam - Remove from Spam
Available options:
,
close_and_mark_resolved,
close_and_mark_invalid,
close_and_mark_customer_inactivity,
reopen_waiting_customer,
reopen_waiting_associate,
close_and_mark_other,
report_spam,
remove_from_spam
content
string
content_html
string
is_visible_to_customer
boolean
external_recipient_emails
string<email>[] | null

On create with CC email routing: for customer-visible messages, a list (empty or not) sets this message's external CC snapshot only; the ticket row is not updated. Omitted or null copies the last customer-visible message's snapshot, or the ticket's creation-time list if none. Internal messages (not visible to customer) always store an empty list; this field is ignored for them. The ticket requester is always kept when a list is sent. On read: snapshot stored on this message.

bcc_recipient_emails
string<email>[] | null

On create with CC email routing: for customer-visible messages, optional BCC list for this send only (SMTP Bcc). Omitted, null, or empty means no BCC — prior message BCC is never carried forward. Internal messages and orgs without CC routing always store an empty list. Cannot overlap the requester (To) or this message's CC list. On read: audit snapshot.