Merge conversation
Unite two live threads that are the same counterpart reached twice (the usual source is merge_candidate_sids from link_conversation_person). The path sid is the TARGET and survives; source_sid is the one that goes away.
In one transaction the source's messages, timeline events, participants, tasks, plans and runs re-parent to the target, the channel anchors and channels union, the denorms and needs_reply recompute from the merged messages, and the source row is tombstoned with deleted_at and merged_into_sid. Participants with the same identifier fold into the target's existing row.
The agent's work on the source ends with it: its live plan is superseded, what it wrote there and had not sent is withdrawn (a draft_withdrawn event, cause plan_changed), its runs canceled. The target keeps its own plan, unless the source brings the merged thread its newest message as a new turn (the lead's, after the account landed on the sender profile, unanswered by anything of ours): then the target's plan goes too (cause newer_reply), the thread reopens and the agent reads that message as if it had just arrived (nothing is read when the agent is off for the thread).
Not reversible: there is no un-merge in v1, and anything holding the source sid has to re-point (the conversations.merged event carries both). The source must be live, in the same team and differ from the target; a target already merged away answers 409 target_merged_away. The wrong pair is only undone by hand.
Contract:
- MCP tool merge_conversation, registry package mcp.unibox/conversations, mount unibox.threads.
- Operation action, response envelope action.
- Flags: dangerous: the MCP layer gates it behind a preview/commit token, and the effect cannot be undone through this API.
Request
- Base URLhttps://beta.getsales.io/unibox/v1
- AuthHTTP bearer and API key in header Team-SID
Path parameters
The TARGET thread, which survives and keeps its active plan.
Request body
Response
action success envelope.
Changes
No recorded changes to this operation across all 1 revision of this API.