Kustomer automation · runs weekly
Merge duplicate Kustomer conversations with AI
A customer emails support, gets no answer by lunch, and writes again from another address or channel. Now two open conversations sit in the queue and two agents may answer the same question.
Cotlet does it in your own Kustomer account with search_conversations, get_conversation_messages, merge_conversations and add_note, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Can Kustomer do this on its own?
Kustomer merges conversations from the More menu, one pair at a time, and a workflow can lock a conversation against merging with the mergeLocked attribute (checked 17 Oct 2026). The official MCP server cannot merge. The REST API can, but you must build the pairing logic yourself. Nothing in Kustomer finds and merges duplicates by reading the threads.
How you do it in Kustomer today
- The agent opens the first conversation in the customer timeline and compares it with the second one by reading both threads.
- In the upper-right corner of the conversation, the agent clicks the More menu and selects Merge Conversation.
- Kustomer lists all conversations in that customer's timeline. The agent picks the one to merge and clicks Merge.
- All messages and notes from both conversations appear in one thread in chronological order.
- Finding the pairs is the slow part: nobody gets a list of customers with two open conversations, so duplicates are noticed only when someone happens to open the timeline.
How to merge duplicate Kustomer conversations with AI
Find customers in Kustomer who have two or more open conversations about the same issue this week. Merge the newer ones into the oldest and leave an internal note on the one that stays. List anything you are unsure about instead. - 01
Find customers with several open conversations
search_conversations runs with status open and your window, and the agent groups the results by customer. Customers with a single conversation are dropped at once.
- 02
Read both threads
get_conversation_messages returns each thread oldest first. The agent merges only when both are about the same issue, for example the same order number or the same error, and not just the same customer.
- 03
Pick the survivor
The oldest conversation stays, so its history and owner are kept. The newer one is merged into it.
- 04
Check for a lock
If a workflow set mergeLocked on a conversation, the merge is refused. The agent lists that pair for you and does not retry.
- 05
Merge and leave the reason
merge_conversations merges the pair and waits for your OK by default, because a merge is permanent. add_note then records one line on the surviving conversation saying which one was merged and why.
What you get back
Customers with 2 or more open conversations: 6
Merged 4, e.g. Dana Whitfield, "Export fails" (2 conversations into the older one)
Not the same issue, left for you 2:
- Jon Reyes: billing question and a login bug
- Priya Nair: two orders, two separate shipping questions Other ways to ask
- Every Monday, list customers with more than one open conversation and merge nothing.
- Merge only duplicates that arrived through email, and skip chat and SMS.
- Merge duplicates for customers of companies tagged enterprise and show me each pair first.
What Kustomer allows, and what to know first
- A Kustomer merge is permanent and cannot be undone. The merged conversations cannot be separated again.
- Data on the conversation that is merged into another is not carried over. Only the parent conversation keeps its data.
- Messages and notes from both conversations appear in chronological order, as if they were always one thread.
- A conversation with the mergeLocked attribute set to true cannot be merged. A workflow or the API sets it.
- Linking conversations is the less permanent option: it relates two conversations without combining them.
merge_conversations and add_note ask for your OK by default. To run it weekly without you, switch confirmation off for those tools in your dashboard.
Sources: Kustomer Help: Merging conversations · Kustomer Help: Understanding the Conversation lifecycle · Kustomer Help: Understanding the Kustomer MCP Server tools
Call merge_conversations from a script
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"}' {
"target_conversation_id": "6718d2e4a1b2c3d4e5f60711",
"source_conversation_id": "6719a8c0a1b2c3d4e5f60722",
"status": "merged",
"updated_at": "2026-10-17T09:05:00Z"
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is kustomer_write → merge_conversations. Example data.
Schedule it in n8n, Make, Zapier or cronKustomer tools this automation uses
| Tool | Parameters |
|---|---|
| search_conversations | status, tag, customer_id, updated_before, updated_after, limit, cursor |
| get_conversation_messages | conversation_id, direction, channel, cursor |
| merge_conversations | target_conversation_id, source_conversation_id |
| add_note | conversation_id, body |
Frequently asked questions
Is it safe to connect Kustomer to Cotlet?
Yes. You sign in to Kustomer yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Kustomer once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.
Give your agent access to Kustomer.
Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Kustomer.