Skip to main content
POST
Create a session comment

Internal notes

Session comments are internal notes: agents see them in the inbox, the customer never does. A comment can be anchored two ways:
  • Attached to a message — pass thread_id, the UUID of the message being commented on. Message UUIDs come from Session History, where each event’s id is its message UUID.
  • Session-level — omit thread_id. The note stands on its own in the session timeline, not attached to any message.
agent_id is the numeric ID of the team member authoring the note.

Retrieving comments

Comments are part of the session timeline, so there is no separate list endpoint. Use Session History and filter for events where event.type is human_agent_comment. Each one carries the author (human_agent_id), the text (content.text), and the thread it belongs to (comment_thread_id).

Deep linking

You can link agents straight to a message or note in the dashboard inbox:
  • To a message: https://platform.open.cx/inbox/?s=<session_id>&h=<message_uuid>
  • To a comment on a message: https://platform.open.cx/inbox/?s=<session_id>&thread=<thread_id>&comment=<comment_uuid>thread_id is the message the comment is attached to, and comment_uuid is the uuid returned when the comment is created.
  • To a session-level comment: https://platform.open.cx/inbox/?s=<session_id>&comment=<comment_uuid>&h=<comment_uuid> — the note is its own timeline row, so h targets the note itself.
The inbox opens the session and scrolls to the target.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

session_id
string
required

The unique identifier of the chat session

Body

application/json
thread_id
string<uuid>
required

Message UUID to comment on

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
content
string
required

Comment text content

Minimum string length: 1
agent_id
integer
required

Agent user ID that authors the comment

Required range: x <= 9007199254740991
attachments
object[]

Response

Default Response

id
number
required
uuid
string
required
session_id
string
required
type
enum<string>
required
Available options:
agent_assigned_by_integration,
agent_assigned_by_system,
agent_assigned_by_user,
agent_changed,
agent_comment,
agent_initiated_session,
agent_joined,
agent_message,
agent_reopened_session,
agent_took_session_from_ai,
agent_unassigned_by_integration,
agent_unassigned_by_system,
agent_unassigned_by_user,
ai_assumed_the_session_resolved,
ai_decided_to_not_reply,
ai_decided_to_resolve_the_issue,
ai_reopened_session,
ai_response_cancelled,
ai_resumed_by_system,
call_history,
call_transferred,
closed_resolved_by_agent,
closed_resolved_by_api,
closed_resolved_by_contact,
closed_resolved_by_integration,
closed_resolved_by_system,
closed_unresolved_by_agent,
closed_unresolved_by_api,
closed_unresolved_by_system,
contact_data_updated,
csat_requested,
csat_submitted,
email_draft_message,
handoff,
handoff_to_salesforce_miaw,
handoff_to_zendesk,
integration_reopened_session,
message,
prohibited_topic_detected,
salesforce_fields_updated,
sequence_message,
session_forwarded,
skills_added_by_system,
sla_applied_by_agent,
sla_applied_by_system,
sla_first_reply_breached,
sla_first_reply_completed_after_breach,
sla_first_reply_fulfilled,
sla_first_reply_metric_started,
sla_freezed_office_hours_ended,
sla_freezed_snoozed,
sla_next_reply_breached,
sla_next_reply_completed_after_breach,
sla_next_reply_fulfilled,
sla_next_reply_metric_started,
sla_removed_by_agent,
sla_removed_by_system,
sla_resolution_breached,
sla_resolution_completed_after_breach,
sla_resolution_fulfilled,
sla_resolution_metric_started,
sla_resolution_paused_resolved,
sla_resolution_paused_waiting_on_customer,
sla_resolution_resumed_customer_replied,
sla_resolution_resumed_reopened,
sla_resumed_office_hours_started,
sla_resumed_snooze_cancelled,
sla_resumed_snooze_expired,
state_checkpoint,
sub_session_created,
sub_session_linked_by_agent,
sub_session_linked_by_api,
sub_session_linked_by_integration,
sub_session_linked_by_system,
sub_session_unlinked_by_agent,
sub_session_unlinked_by_api,
sub_session_unlinked_by_integration,
sub_session_unlinked_by_system,
sub_status_removed_by_agent,
sub_status_removed_by_api,
sub_status_removed_by_integration,
sub_status_removed_by_system,
sub_status_set_by_agent,
sub_status_set_by_api,
sub_status_set_by_integration,
sub_status_set_by_system,
system_reopened_session,
tag_added_by_agent,
tag_added_by_api,
tag_added_by_integration,
tag_added_by_system,
tag_removed_by_agent,
tag_removed_by_api,
tag_removed_by_integration,
tag_removed_by_system,
team_assigned_by_integration,
team_assigned_by_system,
team_assigned_by_user,
team_unassigned_by_integration,
team_unassigned_by_system,
team_unassigned_by_user,
user_confirmed_the_session_resolved,
workflow_message,
workflow_note,
workflow_triggered
session_closed_payload
any
required
chatbot_id
string | null
from_user
boolean | null
message
string | null
original_message
string | null
original_language
string | null
translated_message
string | null
translated_language
string | null
created_at
string<date-time> | null
updated_at
string<date-time> | null
debug_json
object
knowledgebase_called
boolean | null
extra_params
object | null
agent_id
number | null
agent_name
string | null
agent_avatar
string | null
handoff_happened_during_office_hours
boolean | null
sender_display_name
string | null
plan_executed
boolean | null
contact_id
string | null
contact_name
string | null
contact_avatar_url
string | null
contact_source
enum<string> | null
Available options:
csv,
form,
freshchat,
hubspot,
intercom,
pipedream,
salesforce,
slack
contact_slack_data
string | null
attachments
object[] | null
email_rfc_message_id
string | null
email_to
string[] | null
email_cc
string[] | null
external_message_id
string | null
csat_score
number | null
csat_feedback
string | null
state_checkpoint_payload
unknown
client_context
object | null
workflow_id
string | null
workflow_run_id
string | null
sequence_id
string | null
whatsapp_template_name
string | null
whatsapp_template_snapshot
object | null
from_opencx_public_api
boolean | null
sub_status_id
string | null
whatsapp_sent_at
string<date-time> | null
whatsapp_delivered_at
string<date-time> | null
whatsapp_read_at
string<date-time> | null
whatsapp_failed_at
string<date-time> | null
whatsapp_error_title
string | null
whatsapp_error_details
string | null
twitter_sent_at
string<date-time> | null
twitter_read_at
string<date-time> | null
twitter_failed_at
string<date-time> | null
twitter_error_title
string | null
twitter_error_details
string | null
agent_changed_payload
object
comment_thread_id
string | null
edited_at
string<date-time> | null
deleted_at
string<date-time> | null
phone_call_id
string | null
phone_call
object | null