Настройка дедупликации данных в CRM Битрикс24
Дублирующиеся контакты, компании и сделки — хроническая болезнь любой CRM, которая живёт дольше полугода. Мы знаем, как это исправить. Наша настройка дедупликации под ключ устраняет дубли и предотвращает их появление. Менеджеры создают карточки вручную, лиды падают из разных источников, импорт из Excel накладывается на существующую базу. В результате отдел продаж теряет контекст переписки, аналитика врёт, а автоматизация срабатывает дважды. Свяжитесь с нами для консультации — оценим ваш проект бесплатно.
Битрикс24 предоставляет встроенный механизм дедупликации, но «из коробки» он работает только по точному совпадению полей. Чтобы он реально помогал, его нужно настроить под конкретную базу. Мы настраиваем критерии, нормализацию и скрипты объединения, чтобы исключить ложные срабатывания и ускорить проверку на больших объёмах. За 3–5 рабочих дней мы конфигурируем систему под вашу отрасль и типовые сценарии воронки.
Система сверяет новую запись с существующими по набору критериев совпадения: телефон, email, название компании, ИНН. Логика реализована в модуле crm через класс CCrmEntityMerger и REST-метод crm.duplicate.findbycomm. Поиск дублей запускается при ручном создании карточки, при импорте с флагом проверки, а также через REST при интеграциях. Настройка критериев производится в разделе CRM → Настройки → Дубликаты.
Как избежать ложных срабатываний при дедупликации?
Ключевой момент — не включать всё подряд. Практика показывает: чем больше критериев, тем больше ложных срабатываний и тем медленнее работает проверка на больших базах (от 50k записей). Оптимальная конфигурация для большинства B2B-компаний:
| Сущность | Поле | Приоритет |
|---|---|---|
| Контакт | Телефон (нормализованный) | Высокий |
| Контакт | Высокий | |
| Компания | ИНН | Критический |
| Компания | Название | Средний (fuzzy) |
| Сделка | Название + компания | Низкий |
Нормализация телефона критична: +7 (495) 123-45-67 и 84951234567 — один номер. Битрикс нормализует телефоны автоматически через CPhoneNumber::Normalize(), но только если тип поля задан как «Телефон», а не произвольный текст. Мы проверяем корректность типов полей на этапе аудита.
Почему важно чистить существующую базу сразу?
После включения дедупликации существующие дубли никуда не денутся — система проверяет только новые записи. Для разовой чистки используйте встроенный инструмент: CRM → Контакты → ещё → Найти дубликаты. Для баз свыше 100k записей встроенный инструмент тормозит. Мы разрабатываем скрипты на PHP, которые выгружают и обрабатывают данные батчами через REST API. Ручная чистка занимает недели, а автоматизированная — часы. В 20 раз быстрее.
Пример поиска дублей по email:
// Поиск дублей по email через REST API $result = CRest::call('crm.duplicate.findbycomm', [ 'type' => 'EMAIL', 'values' => ['[email protected]'], 'entity_type' => 'CONTACT', ]); // Возвращает массив ID потенциальных дублей Типичный цикл чистки: выгрузить все контакты с email → сгруппировать по нормализованному email → для каждой группы из 2+ записей запустить crm.merge с определёнными правилами приоритета полей.
Автоматическое объединение через REST
Если процесс повторяется регулярно (например, каждую ночь после импорта лидов), автоматизируйте его агентом Битрикса или внешним cron-скриптом:
// crm.merge — объединение двух контактов CRest::call('crm.contact.merge', [ 'id' => 1001, // главная запись (сохраняется) 'victims'=> [1002, 1003], // поглощаемые записи ]); Перед запуском объединения обязательно определите правило выбора «главной» записи: обычно это запись с большим количеством активностей или более ранней датой создания. Мы включаем эту логику в настройку.
Сравнение методов поиска дублей
| Метод | Точность | Скорость | Применимость |
|---|---|---|---|
| Точное совпадение | 100% | Высокая | Номера телефонов, email |
| Нечёткое совпадение (fuzzy) | 80–95% | Средняя | Названия компаний |
| Нормализация + точное | 99% | Средняя | Телефоны с разными форматами |
Пример кода для фоновой чистки
// Агент для ежедневной чистки дублей function cleanDuplicatesAgent() { $contacts = CRest::call('crm.contact.list', ['select' => ['ID', 'EMAIL'], 'filter' => ['>ID' => 0]]); // логика группировки и слияния return __FUNCTION__ . '();'; } Что входит в настройку дедупликации
- Аудит текущей базы: выявление дублей, оценка качества полей, анализ индексов БД.
- Конфигурация критериев совпадения для всех сущностей (контакты, компании, сделки, лиды).
- Нормализация телефонов и названий компаний через кастомные обработчики.
- Написание скриптов для массовой чистки и объединения дублей.
- Тестирование на тестовом окружении: проверка на ложные срабатывания и производительность.
- Документирование настроек и обучение менеджеров работе с уведомлениями о дублях.
- Поддержка после запуска: корректировка критериев по результатам первого месяца.
Типичные проблемы и их решение
Ложные дубли по имени компании. «ООО Ромашка» и «Ромашка ООО» — Битрикс считает разными. Подключите нормализацию через хук OnBeforeCRMCompanyAdd с очисткой юридической формы из названия.
Дубли из разных источников лидов. Если один клиент оставил заявку на сайте и позвонил по телефону — два лида с разным набором данных. Настройте объединение лидов в контакт через бизнес-процесс с проверкой дублей на этапе конвертации.
Производительность на больших базах. Индексы таблиц b_crm_contact и b_crm_company по полям PHONE и EMAIL — обязательны. Проверьте их наличие в БД, особенно после миграций. Мы рекомендуем включить тегированное кэширование для списков контактов.
Дедупликация — не разовая акция, а регулярный процесс. Настройте еженедельный отчёт по количеству потенциальных дублей и держите метрику под контролем. Наши сертифицированные специалисты с 10+ лет опыта в Битрикс24 гарантируют результат. Получите консультацию — мы бесплатно оценим ваш проект.







