Skip to main content
Merges two contacts into one. Everything belonging to lose — messages, deals, tickets and the rest — moves to keep, and lose is deleted. It can’t be undone. Where only lose has a value — a name, a field — keep takes it. Where both have one, keep’s stays unless choices picks lose’s. Tags and identifiers from both are kept, and the number not chosen stays on the contact as an older number. Where both said something about the same channel and purpose, a stop wins. The merge sends the contacts.merged webhook event.
Needs the cdp.contacts:write scope.

Body

Send an Idempotency-Key header to merge once however often the request is retried.

Request

Response

200 OK — the contact kept, and moved: how many of each kind of record moved to it.

Errors

Every refusal is {"error": {"code", "message", "field"}}; field is there when one input is at fault. Any request can also be refused for its key, its account or its rate (key_required, invalid_key, account_suspended, plan_excludes_api, address_not_allowed, rate_limited); see the overview.