conversations

Post a reply or internal note to a ticket.

With is_private=false, the reply is delivered to the customer via the ticket's channel (email, Slack, Teams, GitHub). With is_private=true, the message is stored as an internal note only visible to team members.

Retrying an identical message from the same author within a short window returns the original message with a 200 rather than posting it twice, and a 409 while a concurrent request is still creating it.

post/api/projects/{project_id}/conversations/tickets/{id}/reply/

Request

  • Base URL: https://us.posthog.com
  • URL: https://us.posthog.com/api/projects/{project_id}/conversations/tickets/{id}/reply/
  • Auth: HTTP bearer

Path parameters

idstring required

The ticket's UUID or its numeric ticket number.

project_idstring required

Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Request body

messagestring required

Reply content in markdown.

is_privateboolean

If true, store as an internal note (not sent to the customer). If false, the reply is delivered to the customer over the ticket's channel.

rich_contentunknown

Response

An identical message was already posted by a recent request. The original message is returned and nothing new is written.

idstring uuid required

Message (comment) UUID.

message_type'customer_message' | 'sent_reply' | 'internal_note' | 'ai_draft' required
  • customer_message - Customer message
  • sent_reply - Sent reply
  • internal_note - Internal note
  • ai_draft - AI draft
contentstring required

Plain-text message body.

rich_contentunknown required
author_typestring required

One of: customer, support, AI.

author_namestring required

Display name of the author.

author_emailstring email nullable required

Email of the authoring PostHog user, when the message was written by one (support replies and internal notes). Null for customer and AI messages.

is_privateboolean required

True for internal notes not visible to the customer.

has_full_email_contentboolean required

True when the complete inbound email body can be retrieved.

versioninteger required

Edit count. 0 means never edited.

created_atstring date-time required

Changes

No recorded changes to this operation across all 1 revision of this API.