Preview a merge
crm.merge.preview
Dry run of crm.merge.execute for two deals, persons, companies or prospects: the fields where both have a different value (to choose per field, by the names choices takes: job_title, custom_fields.<slug>), how much history will move (activities, conversations, messages, notes), the related company/person duplicates worth merging too, and the full field comparison (each value as the app shows it and as stored). Nothing is written.
- Scope
crm:read- Permission
- View the module
- MCP tool
crm_merge_previewOn the full surface; on the compact one,mb_execute_operationwithid: "crm.merge.preview".
Declared cost: up to 14 reads and 0 writes per call (they count against the daily quota).
Parameters
kindenumbodyWhat is merged: two deals, persons, companies or prospects.
Values: deal, person, company, prospect
survivor_idstringbodyThe record that remains (it keeps its id and, by default, its values).
loser_idstringbodyThe duplicate absorbed into survivor_id (it stays as a tombstone that points to the survivor).
Response
kindenumValues: deal, person, company, prospect
survivor_idstringloser_idstringconflictsarray<object>The fields where both records have a different value: choose the side per field in choices of crm.merge.execute (the survivor's by default).
countsobjectHow much of the loser's history moves to the survivor.
related_dupsarray<object>Related records (the companies or persons of the two) that may be duplicates too: pass them in cascades to merge them in the same call.
comparisonarray<object>Every field of the two records, side by side.
loser_is_won_dealbooleanDeals: the absorbed deal is won; its close stops counting (the survivor keeps its own status).
Errors
Example
curl -X POST "https://api.mb-suite.com/v1/crm/merge/preview" \
-H "Authorization: Bearer $MB_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"kind": "deal",
"survivor_id": "SURVIVOR_ID",
"loser_id": "LOSER_ID"
}'Try it with your test API key
With a test API key the request always goes to your practice organization: example data you can reset.
curl -X POST "https://api.mb-suite.com/v1/crm/merge/preview" \
-H "Authorization: Bearer $MB_TEST_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"kind": "deal",
"survivor_id": "SURVIVOR_ID",
"loser_id": "LOSER_ID"
}'