Налаштування дедуплікації даних у 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 гарантують результат. Отримайте консультацію — ми безкоштовно оцінимо ваш проєкт.







