Настройка слияния дубликатов в CRM Битрикс24
С CRM с 12 000 контактов и 40% дубликатов ручное объединение занимает недели. Автоматическое слияние через API на PHP сокращает процесс до нескольких часов. Но без правильной настройки правил и обработки связей вы рискуете потерять историю активностей и сделок. Механизм использует класс CCrmEntityMerger, который переносит связанные объекты и удаляет поглощённые записи. Порядок операций критичен — неправильная последовательность приводит к битым ссылкам. Наши инженеры настраивают слияние так, чтобы история оставалась полной. Правильные правила экономят до 80% времени. Из-за дубликатов компания теряет до 15% выручки — исправление этой проблемы окупается за месяц.
Как работают правила слияния по умолчанию?
В разделе CRM → Настройки → Дубликаты → Правила объединения задаётся логика выбора значений при конфликте полей:
| Правило | Поведение |
|---|---|
| Главная запись | Берётся значение из выбранной «главной» карточки |
| Более заполненная | Берётся непустое значение; при конфликте — из главной |
| Объединение | Применимо для множественных полей (телефоны, email) |
| Последняя по дате | Берётся значение из записи с более поздней датой изменения |
Для большинства задач оптимально: ключевые идентификаторы (ИНН, телефон, email) — «объединение»; статусные поля (ответственный, стадия) — «главная запись»; текстовые примечания — «более заполненная». Если вы сомневаетесь — наши инженеры помогут подобрать конфигурацию под вашу CRM.
Программное объединение через API
При массовой чистке базы ручной режим не подходит. REST-метод crm.contact.merge позволяет объединять тысячи контактов автоматически:
// Объединение: запись 1001 поглощает 1002 и 1003 $response = CRest::call('crm.contact.merge', [ 'id' => 1001, 'victims' => [1002, 1003], 'fields' => [ 'PHONE' => 'merge', 'EMAIL' => 'merge', 'ASSIGNED_BY_ID' => 'primary', ], ]); Для компаний — аналогично crm.company.merge. Метод синхронный, при объединении >5 поглощаемых записей может таймаутить — разбивайте на пары. Внутри коробочной версии на PHP:
$merger = new CCrmEntityMerger(CCrmOwnerType::Contact); $merger->Merge( 1001, [1002, 1003], $fields, $errorMessage ); Шаги для успешного слияния
- Создайте бэкап таблиц
b_crm_contact,b_crm_company,b_crm_deal,b_crm_activity,b_crm_timeline. - Определите главную запись (самую полную или с наибольшим количеством сделок).
- Запустите слияние для пар жертв, начиная с малых групп (2-3 записи).
- После завершения проверьте связанные объекты: сделки, активности, задачи.
- Для смарт-процессов выполните обновление связей через
crm.item.update.
Что переносит автоматика?
При слиянии автоматически переносятся:
- Сделки (поле
CONTACT_IDобновляется) - Активности: звонки, письма, встречи из таблицы
b_crm_activity - Задачи через связь
b_tasks_member - Временная шкала (
b_crm_timeline)
Чего не переносит автоматика?
- Связи через пользовательские блоки смарт-процессов (SPAs) — нужен отдельный скрипт обновления
- Внешние связи из сторонних интеграций (данные в кастомных таблицах)
- Чаты в Открытых линиях — история привязана к линии, не к контакту
Как минимизировать риски потери данных?
Перед запуском массового слияния делайте резервную копию таблиц. Встроенного отката нет — после слияния поглощённые записи помечаются удалёнными (флаг DELETED=Y в b_crm_contact), но физически остаются в БД несколько дней до очистки корзины. Временное окно для восстановления: CRM → Настройки → Корзина — поглощённые карточки доступны для восстановления в течение 30 дней (настраивается). После восстановления связи с главной записью не восстанавливаются автоматически — их придётся переназначить вручную.
Сравнение ручного и API-слияния
| Критерий | Ручное слияние | API-слияние |
|---|---|---|
| Скорость | ~2 минуты на одну пару | 10 пар в секунду |
| Объём | До 50 записей за сессию | Тысячи записей |
| Точность | Высокая, но зависит от оператора | Предсказуемая, по правилам |
| Контроль | Полный визуальный контроль | Автоматический, требуется верификация |
API-слияние в 10 раз быстрее ручного и позволяет обработать до 95% дубликатов за один проход. Если ваша база превышает 10 000 записей, API-слияние — единственный разумный вариант. Закажите настройку слияния у наших инженеров — они адаптируют правила под ваш бизнес.
Почему важно тестировать слияние?
Gartner отмечает, что чистка данных повышает точность прогноза на 60%. Тестирование на боевых данных с бэкапом выявляет проблемы до запуска. Мы всегда проверяем перенос активностей на скопированной базе. Получите консультацию по оптимизации CRM — наши специалисты покажут, как избежать потерь данных.
Что входит в настройку объединения дубликатов
- Анализ текущей базы на наличие дубликатов и их типов
- Настройка правил слияния под ваши бизнес-процессы
- Тестирование на боевых данных с бэкапом
- Обучение сотрудников работе с дубликатами
- Документация по процедуре восстановления
- Поддержка в течение 30 дней после настройки
Мы работаем с Битрикс24 более 5 лет, реализовали более 100 проектов по чистке CRM. Наши сертифицированные специалисты гарантируют сохранность данных. Свяжитесь с нами для бесплатной консультации — проконсультируем и подберём стратегию.







