Conversation Statuses

A status is where a conversation sits in the inbox — the tabs agents work through. Every workspace ships with pending, open and resolved, and can define its own on top. These two endpoints let you read the catalogue and move a conversation between statuses from your own systems.

List Inbox Statuses

Returns the workspace status catalogue in display order. This is the only teambox endpoint that does not depend on the realtime inbox backend, so it always answers.

GET/v2.0/conversations/statuses

Code Example

curl -X GET "https://api.sendiee.com/v2.0/conversations/statuses" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response — 200 OK

{
  "success": true,
  "data": [
    {
      "key": "pending",
      "label": "Pending",
      "color": "#f59e0b",
      "order": 0,
      "isDefault": true,
      "isSystem": true
    },
    {
      "key": "open",
      "label": "Open",
      "color": "#3b82f6",
      "order": 1,
      "isDefault": false,
      "isSystem": true
    },
    {
      "key": "resolved",
      "label": "Resolved",
      "color": "#16a34a",
      "order": 2,
      "isDefault": false,
      "isSystem": true
    }
  ]
}

Status Object

ParameterTypeDescription
keystringMachine key — this is what you send when changing a status
labelstringHuman label shown on the inbox tab
colorstringHex colour of the status chip, or null
ordernumberDisplay order, ascending
isDefaultbooleantrue for the status new conversations start in
isSystembooleantrue for the built-in pending / open / resolved statuses

Try It — List Statuses

Try it — API Playground

Change Conversation Status

Moves one conversation to another status — resolving it from your helpdesk when the ticket closes, reopening it when a refund fails, or dropping it into a custom queue.

POST/v2.0/conversations/status

Body Parameters

ParameterTypeDescription
statusstringA key from the catalogue above, e.g. resolved
conversationIdstringTarget conversation id. Required unless phone is given
phonestringCustomer identifier — WhatsApp number without +, or the Instagram / Messenger sender id
channelstringwhatsapp | instagram | messengerDefault: whatsapp
businessNumberstringYour business number or platform id. Defaults to the org's only active WhatsApp sender

Code Example

curl -X POST "https://api.sendiee.com/v2.0/conversations/status" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "phone": "919876543210", "status": "resolved" }'

Response — 200 OK

{
  "success": true,
  "data": {
    "conversationId": "66c3f0a19d2b4e0011ab9911",
    "status": "resolved",
    "statusFrom": "open"
  }
}

statusFromis filled in for you from the conversation’s current status, so you can log the transition without reading it first.

Errors

StatusCodeMeaning
400STATUS_REQUIREDNo status key in the body
400UNKNOWN_STATUSThat key is not defined in this workspace
400LOCATOR_REQUIREDNeither conversationId nor phone was sent
404NOT_FOUNDNo conversation for that customer on that channel

What a status change triggers

  • The inbox updates live for every agent watching that conversation.
  • A status-changed entry is appended to the assignment history, carrying statusFrom, statusTo and your API key as the actor.
  • The teambox.conversation_status_changed automation event fires, so resolved counts and time-to-resolution reporting stay correct.

Try It — Change Status

Try it — API Playground

Use instead of a conversation id