From b5fb0829e64c7cc77157c01cbedbf77e96b319ac Mon Sep 17 00:00:00 2001 From: dq Date: Wed, 24 Jun 2026 21:36:47 +0100 Subject: [PATCH 1/2] Preview API: document POST /contacts/merge duplicate validation Add `skip_duplicate_validation` to the Preview `merge_contacts_request` schema, an override request example, and the `400 invalid_merge` response on the MergeContact operation. Affects the Preview (descriptions/0) spec only; stable versions are unaffected. Co-Authored-By: Claude Opus 4.8 (1M context) --- descriptions/0/api.intercom.io.yaml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/descriptions/0/api.intercom.io.yaml b/descriptions/0/api.intercom.io.yaml index 9eb99ec..96ebf2e 100644 --- a/descriptions/0/api.intercom.io.yaml +++ b/descriptions/0/api.intercom.io.yaml @@ -8189,6 +8189,21 @@ paths: nullable: true description: If the user has enabled push messaging. example: true + '400': + description: Bad Request + content: + application/json: + examples: + Not a duplicate: + value: + type: error.list + errors: + - code: invalid_merge + message: Contacts can only be merged when they are duplicates + (matching email or phone). Pass skip_duplicate_validation=true + to override this check. + schema: + "$ref": "#/components/schemas/error" '401': description: Unauthorized content: @@ -8214,6 +8229,12 @@ paths: value: from: 6762f0d51bb69f9f2193bb7f into: 6762f0d51bb69f9f2193bb80 + skip duplicate validation: + summary: skip duplicate validation + value: + from: 6762f0d51bb69f9f2193bb7f + into: 6762f0d51bb69f9f2193bb80 + skip_duplicate_validation: true "/contacts/search": post: summary: Search contacts @@ -34253,6 +34274,12 @@ components: description: The unique identifier for the contact to merge into. Must be a user. example: 5ba682d23d7cf92bef87bfd4 + skip_duplicate_validation: + type: boolean + description: Set to `true` to merge two contacts that are not duplicates + (they share no matching email or phone). Has no effect on API versions + that do not enforce duplicate validation on merge. + example: true merge_conversations_request: title: Merge Conversations Request type: object From 6a87506de4c5e04e7fbdbbfddbbc8405c4e546eb Mon Sep 17 00:00:00 2001 From: dq Date: Thu, 25 Jun 2026 14:21:44 +0100 Subject: [PATCH 2/2] Simplify skip_duplicate_validation description Trim the trailing scope qualifier from the property description. Co-Authored-By: Claude Opus 4.8 (1M context) --- descriptions/0/api.intercom.io.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/descriptions/0/api.intercom.io.yaml b/descriptions/0/api.intercom.io.yaml index 96ebf2e..2b496b4 100644 --- a/descriptions/0/api.intercom.io.yaml +++ b/descriptions/0/api.intercom.io.yaml @@ -34277,8 +34277,7 @@ components: skip_duplicate_validation: type: boolean description: Set to `true` to merge two contacts that are not duplicates - (they share no matching email or phone). Has no effect on API versions - that do not enforce duplicate validation on merge. + (they share no matching email or phone). example: true merge_conversations_request: title: Merge Conversations Request