Skip to content

Get conversation by ID

GET
/api/conversations/{id}

Retrieves a single conversation with its full details including the linked contact and account information, message history, and attention items. Contact and account data is fetched in parallel from the CRM service and enriched in the response.

id
required
string format: uuid

The unique identifier of the conversation to retrieve.

The conversation was found and returned with enriched contact/account data.

A conversation represents a threaded exchange between a customer and your organization on a specific channel. Conversations are created automatically when a new inbound message arrives, or manually via the compose endpoint. Each conversation tracks its lifecycle through status transitions and maintains links to the associated contact and account.

object
id
required

Unique identifier for the conversation.

string format: uuid
Example
c1a2b3c4-5678-9abc-def0-1234567890ab
tenantId
required

The tenant this conversation belongs to.

string format: uuid
Example
a0b1c2d3-4567-89ab-cdef-0123456789ab
workspaceId
required

The workspace this conversation is assigned to.

string format: uuid
Example
w1a2b3c4-5678-9abc-def0-1234567890ab
channelId
required

The channel (email, WhatsApp, chat widget, etc.) through which this conversation is conducted.

string format: uuid
Example
ch1a2b3c-5678-9abc-def0-1234567890ab
contactId

The contact (individual person) participating in this conversation. May be null if the contact has not yet been resolved.

string | null format: uuid
Example
ct1a2b3c-5678-9abc-def0-1234567890ab
accountId

The account (company or organization) the contact belongs to. May be null for B2C conversations or if the account has not yet been resolved.

string | null format: uuid
Example
ac1a2b3c-5678-9abc-def0-1234567890ab
status
required

Current lifecycle status of the conversation. Possible values: ‘new’ (just created, no AI response yet), ‘active’ (AI is managing), ‘human_managed’ (a human agent has taken over), ‘resolved’ (closed with an outcome), ‘waiting’ (awaiting customer response).

string
Example
active
summary

AI-generated summary of the conversation, updated after each turn. Provides a concise overview of the discussion so far.

string | null
Example
Customer asked about delivery times for order #4521. Agent confirmed 3-5 business days to Germany.
subject

Subject line of the conversation. For email conversations, this is the email subject. For other channels, it may be AI-generated or null.

string | null
Example
Re: Delivery time for order #4521
outcome

A short description of how the conversation was resolved. Set when the conversation is moved to ‘resolved’ status, either by the AI or a human agent.

string | null
Example
Delivery timeline confirmed, customer satisfied.
messageCount
required

Total number of messages in the conversation thread, including both customer and agent messages.

integer
Example
6
lastMessageAt

Timestamp of the most recent message in the conversation. Null if no messages have been exchanged yet.

string | null format: date-time
Example
2026-03-25T11:42:00.000Z
createdAt
required

Timestamp when the conversation was created.

string format: date-time
Example
2026-03-24T08:15:00.000Z
updatedAt
required

Timestamp when the conversation was last updated (status change, new message, etc.).

string format: date-time
Example
2026-03-25T11:42:00.000Z

No conversation exists with the given ID in the authenticated tenant.

Standard error response returned by all endpoints on failure.

object
error
required

A human-readable error message describing what went wrong.

string
Example
Conversation not found