Merge conversations
Merge one conversation into another of the same customer.
POST https://cotlet.dev/api/v1/kustomer/target-conversations/{target_conversation_id}/conversations/merge
write Confirm
Merges the source conversation into the target. A merge is permanent and cannot be undone: all messages and notes from both appear in one thread in chronological order, but data on the source conversation is not carried over. A conversation with mergeLocked set is refused. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| target_conversation_id string required | string | Conversation that stays and receives the merge. |
| source_conversation_id string required | string | Conversation that is merged into the target. |
Request
curl -X POST https://cotlet.dev/api/v1/kustomer/target-conversations/6718d2e4a1b2c3d4e5f60711/conversations/merge \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"source_conversation_id":"6719a8c0a1b2c3d4e5f60722"}' result = client.call("kustomer", "merge_conversations", {"target_conversation_id":"6718d2e4a1b2c3d4e5f60711","source_conversation_id":"6719a8c0a1b2c3d4e5f60722"}) const result = await cotlet.call('kustomer', 'merge_conversations', {"target_conversation_id":"6718d2e4a1b2c3d4e5f60711","source_conversation_id":"6719a8c0a1b2c3d4e5f60722"}); cotlet call kustomer merge_conversations --data '{"target_conversation_id":"6718d2e4a1b2c3d4e5f60711","source_conversation_id":"6719a8c0a1b2c3d4e5f60722"}' Example response
{
"target_conversation_id": "6718d2e4a1b2c3d4e5f60711",
"source_conversation_id": "6719a8c0a1b2c3d4e5f60722",
"status": "merged",
"updated_at": "2026-10-17T09:05:00Z"
}