Штатный «Контроль дубликатов» в Битрикс24 ищет совпадения по лидам, контактам и компаниям — сделки он не проверяет. Две открытые сделки по одному клиенту дублем не считаются: у сделки нет собственного телефона и почты, сравнивать штатному механизму нечего. Поэтому дубли сделок ловят иначе: бизнес-процесс ищет открытую сделку контакта перед созданием новой, условие решает, что делать с находкой, а блокирующую проверку на стадиях добавляет приложение «Контроль дубликатов».

Почему штатный поиск дублей не видит сделки?

Штатный механизм сравнивает ФИО, телефон и email — реквизиты клиента. Эти поля есть у лида, контакта и компании, поэтому для них работают и предупреждение при создании карточки, и массовый «Поиск дубликатов» из списка. У сделки контактных данных нет: она ссылается на контакт и компанию, а её собственные поля — название, сумма, стадия — совпадают у разных сделок постоянно и ключом для сравнения быть не могут. Две сделки «Поставка оборудования» по одному контакту для системы — просто две разные записи. Как работает штатный механизм для лидов и контактов — в разборе дублей в Битрикс24.

Откуда берутся дубли сделок?

Главный источник — повторные обращения. Клиент оставил заявку на сайте, через день позвонил: каждый канал создал свою сделку, хотя открытая уже была. Интеграции усиливают эффект: телефония, формы и мессенджеры создают сделки по своим правилам и не проверяют существующие. Третий источник — менеджеры: не нашёл сделку в длинном списке, создал новую. Четвёртый — импорт без сверки. Итог одинаковый: история переговоров размазана по двум карточкам, два менеджера звонят одному клиенту, а воронка показывает конверсию, которой нет, — заметная часть «потерянных» сделок на самом деле задвоенные. Чем больше каналов приёма заявок, тем быстрее копятся такие пары.

Как не создать дубль при повторном обращении?

Правило: перед созданием сделки процесс ищет существующую. Первый шаг — робот «Найти контакт по телефону/email»: по номеру телефона из заявки он возвращает ID контакта и признак «Найдено» (Y/N). Второй шаг — робот «Найти сделку по условию»: по ID контакта и фильтру {"CLOSED":"N"} он ищет открытые сделки клиента и возвращает ID первой найденной, список всех ID, количество и признак Y/N. Дальше ветка по условию: при Y заявка добавляется в существующую сделку комментарием или делом, при N процесс создаёт новую. Дубль перехвачен до того, как появился.

Как проверить уже созданную сделку на дубль?

Тот же поиск работает и после создания — например, на первой стадии воронки. Процесс на сделке запускает «Найти сделку по условию» с ID контакта этой сделки и фильтром по открытым: возвращённое количество покажет, сколько открытых сделок у клиента. Робот «Сложное условие (AND / OR / NOT)» проверяет сразу несколько условий — например, количество больше единицы И сумма новой сделки не заполнена — и возвращает единый признак Y/N. При Y процесс ставит ответственному задачу разобрать дубль и уведомляет руководителя. Объединять сделки автоматически не стоит: какая из них основная, решает человек.

Когда процессов недостаточно?

Бизнес-процесс ловит дубли в точках, которые вы предусмотрели: создание, первая стадия, повторная заявка. Всё, что приходит мимо этих точек — ручное создание в обход процесса, старые задвоенные записи, дубли лидов и контактов, из которых растут дубли сделок, — остаётся в базе. Системное решение — приложение «Контроль дубликатов»: оно проверяет карточку при каждом движении по воронке и не пропускает её дальше, пока дубль не объединён, плюс массово сканирует существующую базу. Связка получается трёхслойной: процессы не дают создавать дубли, проверка на стадиях ловит пропущенное, сканирование разбирает накопленное.

Чек-лист

Поставьте поиск контакта и открытой сделки перед созданием новой; на первой стадии проверяйте количество открытых сделок клиента через сложное условие; найденные дубли отдавайте менеджеру задачей, а не объединяйте вслепую; для блокирующей проверки на стадиях и массового сканирования установите «Контроль дубликатов». Роботы поиска и проверки — в каталоге CRM-роботов. Если нужного робота нет — опишите задачу, мы сделаем его бесплатно и добавим в общую библиотеку.