Налаштування злиття дублікатів у CRM Бітрікс24
З CRM з 12 000 контактів і 40% дублікатів ручне об'єднання займає тижні. Автоматичне злиття через API на PHP скорочує процес до кількох годин. Але без правильного налаштування правил і обробки зв'язків ви ризикуєте втратити історію активностей та угод. Механізм використовує клас CCrmEntityMerger, який переносить пов'язані об'єкти та видаляє поглинені записи. Порядок операцій критичний — неправильна послідовність призводить до битих посилань. Наші інженери налаштовують злиття так, щоб історія залишалася повною. Правильні правила економлять до 80% часу. Через дублікати компанія втрачає до 15% виручки — виправлення цієї проблеми окупається за місяць.
Як працюють правила злиття за замовчуванням?
У розділі CRM → Налаштування → Дублікати → Правила об'єднання задається логіка вибору значень при конфлікті полів:
| Правило | Поведінка |
|---|---|
| Головний запис | Береться значення з вибраної «головної» картки |
| Більш заповнена | Береться непорожнє значення; при конфлікті — з головної |
| Об'єднання | Застосовне для множинних полів (телефони, email) |
| Остання за датою | Береться значення із запису з пізнішою датою зміни |
Для більшості завдань оптимально: ключові ідентифікатори (ІНН, телефон, email) — «об'єднання»; статусні поля (відповідальний, стадія) — «головний запис»; текстові примітки — «більш заповнена». Якщо ви сумніваєтеся — наші інженери допоможуть підібрати конфігурацію під вашу CRM.
Програмне об'єднання через API
При масовому чищенні бази ручний режим не підходить. REST-метод crm.contact.merge дозволяє об'єднувати тисячі контактів автоматично:
// Об'єднання: головний запис поглинає жертви $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. Наші сертифіковані спеціалісти гарантують збереження даних. Зв'яжіться з нами для безкоштовної консультації — проконсультуємо і підберемо стратегію.







