created_atstring required
When the resource was created (UTC)
updated_atstring nullable
When the resource was last updated (UTC)
tenant_idstring required
Tenant this resource belongs to
contact_idstring nullable
Contact UUID (can be None for some types)
channel_idstring required
channel_typestring nullable
Channel type: email, telegram, whatsapp, live_chat, etc.
contact_method_idstring nullable
Contact method used when conversation was created
active_contact_method_idstring nullable
Current active contact method for replies
assigned_user_idstring nullable
assigned_userobject nullable
Assigned user details (id, name, email, chat_nickname)
status'open' | 'assigned' | 'resolved' | 'closed' required
last_message_atstring nullable
is_live_chatboolean
Is this from a live chat session
is_emailboolean
Is this an email conversation
needs_replyboolean
True when last message is from customer
last_customer_message_atstring nullable
last_agent_reply_atstring nullable
live_chat_session_statusstring nullable
Live chat session status: waiting, active, closed
live_chat_last_activity_atstring nullable
Last activity timestamp from the live chat session
visitor_onlineboolean nullable
Whether the live chat visitor is currently connected via WebSocket
visitor_widget_statestring nullable
Widget panel state: 'open' or 'minimized'
visitor_tab_statestring nullable
Browser tab visibility: 'visible' or 'hidden'
visitor_focusedboolean nullable
Whether the chat input is currently focused (real-time only, may be null)
visitor_last_visible_atstring nullable
Last time visitor's tab was visible
visitor_last_focus_atstring nullable
Last time visitor focused the chat input
bot_session_idstring nullable
Active bot session ID if bot is handling this conversation
active_flow_runobject nullable
Currently active flow run on this conversation. Shape: {run_id, flow_id, flow_name, trigger_kind, trigger_class, started_at, current_node_id, current_node_display_name}. trigger_kind is the raw flow trigger type (e.g. incoming_message/manual/schedule) and trigger_class is the derived "inbound" | "background" bucket (background = manual/api_event/schedule); both are null when the trigger can't be resolved (frontend then fails open). None when no flow run is active for the contact+conversation.
snoozed_untilstring nullable
When the snooze expires (timezone-aware ISO, 'Z' suffix). NULL when not snoozed. Conversation is currently snoozed when status=='open' AND this is in the future.
snooze_reopen_on_messageboolean nullable
Per-snooze choice: auto-reopen the conversation to the Open tab when an inbound customer message arrives while snoozed. Only meaningful while snoozed_until is set.
closed_atstring nullable
When conversation was closed
closed_by_user_idstring nullable
User who closed the conversation
ai_summarystring nullable
AI-generated conversation summary
user_intentstring nullable
Why did the user contact us?
resolution_summarystring nullable
sentiment_analysisstring nullable
Customer sentiment progression
ai_tagsstring[] nullable
AI-generated tags/categories
summarized_atstring nullable
When AI summary was generated
customer_languagestring nullable
Language replies are sent in: the conversation's reply-language override, else the contact's detected/preferred language; null when unknown.
reply_languagestring nullable
Per-conversation "Send in" language override; null when not set.