Conversations are support threads between a contact and your team. Each conversation has a status, is associated with a contact, and contains messages. Use these endpoints to list, filter, create, and manage conversations in your inbox.
Every conversation has one of the following statuses:
OPEN - Active conversation requiring attentionCLOSED - Resolved conversationARCHIVED - Archived conversation (hidden from default inbox view)Lists conversations in your support inbox with filtering and pagination support.
Request
curl "https://api.tidysupport.com/v1/workspaces/wrk_abc123/support/inbox/conversations?status=OPEN&limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"conversations": {
"items": [
{
"id": "thd_xyz789",
"status": "OPEN",
"source": "EMAIL",
"subject": "Billing question",
"isUnread": true,
"lastMessageAt": "2025-03-12T14:30:00Z",
"lastMessagePreview": "Hi, I have a question about my invoice...",
"assignedToId": "agt_abc123",
"channelId": "chn_def456",
"contact": {
"id": "ctc_B7OSYsnTUVwBPOGrgYTjvSGS",
"email": "jane@example.com",
"name": "Jane Doe",
"avatarUrl": null
}
}
],
"hasMore": true
}
}Creates a new outbound conversation. This sends an email to the specified address and creates the conversation thread in your inbox.
Request
curl -X POST "https://api.tidysupport.com/v1/workspaces/wrk_abc123/support/inbox/conversations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "jane@example.com",
"name": "Jane Doe",
"subject": "Following up on your request",
"contentText": "Hi Jane, I wanted to follow up on your recent support request..."
}'Response
{
"conversation": {
"id": "thd_new123"
},
"contact": {
"id": "ctc_B7OSYsnTUVwBPOGrgYTjvSGS"
},
"message": {
"id": "msg_abc456",
"contentPreview": "Hi Jane, I wanted to follow up...",
"status": "SENT"
}
}Updates the status of a conversation. Use this to close resolved conversations or reopen them.
Request
curl -X PUT "https://api.tidysupport.com/v1/workspaces/wrk_abc123/support/inbox/conversations/thd_xyz789/status" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "CLOSED"
}'Response
{
"conversation": {
"id": "thd_xyz789",
"status": "CLOSED"
}
}Reassigns a conversation to a specific agent. Pass null as the agentId to unassign the conversation.
Request
curl -X PUT "https://api.tidysupport.com/v1/workspaces/wrk_abc123/support/inbox/conversations/thd_xyz789/assign" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agentId": "agt_abc123"
}'Response
{
"conversation": {
"id": "thd_xyz789",
"assignedToAgentId": "agt_abc123"
}
}Lists all conversations for a specific contact. Useful for viewing a customer's full support history.
Request
curl "https://api.tidysupport.com/v1/workspaces/wrk_abc123/support/inbox/customers/ctc_B7OSYsnTUVwBPOGrgYTjvSGS/conversations" \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"conversations": {
"items": [
{
"id": "thd_xyz789",
"status": "OPEN",
"source": "EMAIL",
"subject": "Billing question",
"lastMessageAt": "2025-03-12T14:30:00Z",
"lastMessagePreview": "Hi, I have a question...",
"assignedToId": "agt_abc123"
},
{
"id": "thd_abc456",
"status": "CLOSED",
"source": "CHAT",
"subject": null,
"lastMessageAt": "2025-03-10T09:15:00Z",
"lastMessagePreview": "Thanks for your help!",
"assignedToId": null
}
],
"hasMore": false
}
}404 - Not Found
{
"statusCode": 404,
"error": "Not Found",
"message": "Conversation not found."
}400 - Invalid Status
{
"statusCode": 400,
"error": "Bad Request",
"message": "Invalid status. Must be one of: OPEN, CLOSED, ARCHIVED."
}