Conversations

Assign Conversation

Assign a conversation to a user

Required Scopes: conversations:update

Cross-agent rules (when allow_messaging_other_agents_conversations is False):

  • Self-assign ("Assign to me"): Always allowed for any agent
  • Reassign to someone else: Only ADMIN/OWNER roles
post/api/v1/conversations/{conversation_id}/assign/{user_id}

Request

  • Base URL: https://api.sendseven.com
  • URL: https://api.sendseven.com/api/v1/conversations/{conversation_id}/assign/{user_id}
  • Auth: HTTP bearer

Path parameters

conversation_idstring required
user_idstring required

Response

Successful Response

created_atstring required

When the resource was created (UTC)

updated_atstring nullable

When the resource was last updated (UTC)

idstring required

Unique identifier (UUID)

tenant_idstring required

Tenant this resource belongs to

contact_idstring nullable

Contact UUID (can be None for some types)

channel_idstring required

Channel UUID

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

Conversation status

subjectstring nullable
last_message_atstring nullable
contactobject nullable

Contact details

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

How was it resolved?

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.

Example response

{
  "channel_id": "channel012",
  "channel_type": "whatsapp",
  "contact": {
    "id": "contact789",
    "name": "John Doe",
    "phone": "+1234567890"
  },
  "contact_id": "contact789",
  "created_at": "2025-01-15T10:30:00Z",
  "id": "conv123",
  "is_email": false,
  "is_live_chat": false,
  "last_message": {
    "created_at": "2025-01-15T14:45:00Z",
    "direction": "inbound",
    "message_type": "text",
    "text": "Hello, I need help"
  },
  "last_message_at": "2025-01-15T14:45:00Z",
  "needs_reply": true,
  "status": "open",
  "tags": [
    {
      "color": "#FFD700",
      "id": "tag1",
      "name": "VIP"
    }
  ],
  "tenant_id": "tenant456",
  "updated_at": "2025-01-15T14:45:00Z"
}

Changes

No recorded changes to this operation across all 3 revisions of this API.