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.
Read the catalogue, do not hardcode keys
GET /v2.0/conversations/statuses — an unknown key is refused with 400 UNKNOWN_STATUS.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.
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
| Parameter | Type | Description |
|---|---|---|
| key | string | Machine key — this is what you send when changing a status |
| label | string | Human label shown on the inbox tab |
| color | string | Hex colour of the status chip, or null |
| order | number | Display order, ascending |
| isDefault | boolean | true for the status new conversations start in |
| isSystem | boolean | true for the built-in pending / open / resolved statuses |
Try It — List Statuses
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.
Body Parameters
| Parameter | Type | Description |
|---|---|---|
| status | string | A key from the catalogue above, e.g. resolved |
| conversationId | string | Target conversation id. Required unless phone is given |
| phone | string | Customer identifier — WhatsApp number without +, or the Instagram / Messenger sender id |
| channel | string | whatsapp | instagram | messengerDefault: whatsapp |
| businessNumber | string | Your 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
| Status | Code | Meaning |
|---|---|---|
| 400 | STATUS_REQUIRED | No status key in the body |
| 400 | UNKNOWN_STATUS | That key is not defined in this workspace |
| 400 | LOCATOR_REQUIRED | Neither conversationId nor phone was sent |
| 404 | NOT_FOUND | No conversation for that customer on that channel |
What a status change triggers
- The inbox updates live for every agent watching that conversation.
- A
status-changedentry is appended to the assignment history, carryingstatusFrom,statusToand your API key as the actor. - The
teambox.conversation_status_changedautomation event fires, so resolved counts and time-to-resolution reporting stay correct.
Resolved conversations reopen themselves
resolved, Sendiee moves it back to pending automatically so nobody misses the message. The reopen is recorded in the history with source: "auto". Conversations in open or a custom status are left where they are.Try It — Change Status
Use instead of a conversation id