Resolve conversation
Resolve a conversation and apply a label.
POST https://cotlet.dev/api/v1/freshchat/conversations/{conversation_id}/resolve
Sets the conversation to resolved, like the Resolve button in the Inbox, and applies the label and sub-category you pass. A label that is mandatory in Freshchat needs its sub-category here too. When Customer Satisfaction is enabled, Freshchat shows the survey to the customer as the conversation closes, so this call can reach the customer. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| conversation_id string required | string | Conversation ID from list_conversations. |
| label string | string | Label category from list_conversation_labels. |
| sub_category string | string | Sub-category of that label. |
Request
curl -X POST https://cotlet.dev/api/v1/freshchat/conversations/b3d9f1a2-6c4e-4a8b-95d7-2e1f0c8a7b64/resolve \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"label":"Feature Request","sub_category":"Export to CSV"}' result = client.call("freshchat", "resolve_conversation", {"conversation_id":"b3d9f1a2-6c4e-4a8b-95d7-2e1f0c8a7b64","label":"Feature Request","sub_category":"Export to CSV"}) const result = await cotlet.call('freshchat', 'resolve_conversation', {"conversation_id":"b3d9f1a2-6c4e-4a8b-95d7-2e1f0c8a7b64","label":"Feature Request","sub_category":"Export to CSV"}); cotlet call freshchat resolve_conversation --data '{"conversation_id":"b3d9f1a2-6c4e-4a8b-95d7-2e1f0c8a7b64","label":"Feature Request","sub_category":"Export to CSV"}' Example response
{
"conversation_id": "b3d9f1a2-6c4e-4a8b-95d7-2e1f0c8a7b64",
"status": "resolved",
"label": "Feature Request",
"sub_category": "Export to CSV",
"resolved_at": "2026-10-22T07:40:00Z"
}