Автоматичне об'єднання дубльованих записів у CRM за допомогою ШІ

Дублікати контактів непомітно розмножуються в CRM: звіти розходяться, менеджери втрачають історію, а розсилки надходять двічі одному клієнту. Ми розробляємо й налаштовуємо під ключ автоматичне об'єднання дубльованих записів: скорочуємо ручне чищення бази та повертаємо даним точність.
Часті запитання

Дедуплікація контактів ШІ: чому дублі спотворюють дані CRM

Дублі в CRM з’являються не через одну помилку. Та сама організація заводиться з форми на сайті, з листа менеджера, з вивантаження кол-центру та з інтеграції з розрахунковою системою — і в кожній картці свій набір полів.

Телефон записано з кодом міста і без нього, пошта з одруківкою в домені, назва компанії в трьох варіантах написання.

Далі розбіжність атрибутів контакту множиться на звіти. Воронка бачить одну угоду за однією карткою і втрачає другу як незаповнену, розсилка надходить клієнту двічі й приносить відписку, а історія торкань рахується за фрагментом, а не за клієнтом загалом. Рішення ухвалюються за цифрами, яких насправді немає.

Ручне об’єднання карток тримається на людині: вона відкриває два записи поруч, порівнює поля й вирішує, яке значення правильне. На базі в десятки тисяч контактів це сотні годин роботи й постійний ризик склеїти двох різних людей з однаковими прізвищами.

Дедуплікація контактів ШІ влаштована інакше. Спочатку записи нормалізуються — телефони приводяться до єдиного вигляду, назви компаній та адреси уніфікуються, — потім іде відбір пар: порівнюються не всі з усіма, а лише записи з однаковими ключами.

Далі модель оцінює кандидатів за сукупністю полів, а не за одним правилом, і віддає ймовірність збігу: вище верхнього порогу пари зливаються автоматично, спірні потрапляють у чергу на перевірку з поясненням щодо кожного поля.

Якість клієнтської бази стає вимірюваною: частка дублів падає до десятих часток відсотка, а кожне злиття потрапляє в журнал разом з версією еталонної картки — відкат залишається можливим. Розбираємо, як це впроваджується і що знадобиться від вашої CRM.

Що дає автоматичне об’єднання дублів у CRM

Автоматичне об’єднання дублів — це робота з джерелом розбіжностей, а не з їхніми наслідками.

Поки на одну людину в базі припадає дві-три картки, аналітика бреше: угоди розмазані по менеджерах, історія звернень розірвана, сегмент для розсилки задвоюється, а клієнт отримує два листи з різними пропозиціями.

Модель порівнює записи попарно за нормалізованими полями й знаходить збіги там, де точне порівняння рядків безсиле.

Що команда фіксує як вимірюваний результат впровадження:

  • Швидкість розбору бази — замість ручного перегляду вибірки працює потік, який проходить масив повністю, включно з архівними картками та закритими угодами.
  • Частка об’єднаних пар — оператору залишаються лише спірні випадки нижче порогу схожості; їх одиниці відсотків від загальної кількості.
  • Точність даних у CRM — єдиний формат телефону, адреси та назви компанії; під час злиття зберігається найповніше значення поля, а не значення зі старого запису.
  • Зменшення ручних операцій — перенесення пов’язаних об’єктів (угод, завдань, листування) виконується за правилами, без ручного переприкріплення.
  • Єдиний еталонний запис клієнта — у картки залишається один ідентифікатор, дублі йдуть в архів із посиланням на основну, тому відкат рішення можливий.

Правила злиття налаштовуються під схему конкретної бази — від Bitrix24 до самописних систем, де частина полів ведеться у вільній формі. На виході — єдина картина за клієнтом, на яку можна спиратися у звітах і сегментації.

Режими зіставлення: правила, ШІ-модель, ручна перевірка

Вибір режиму — це компроміс між повнотою та точністю. Жорсткі правила зіставлення записів дають передбачуваний результат на нормалізованих даних: телефон, пошта, домен компанії.

Але щойно в полі імені стоять «Володимир» і «Вова», а код міста записано інакше, правила перестають бачити пару.

Модель схожості контактів порівнює записи за сукупністю ознак і повертає вагу збігу. Поріг схожості задає межу: вище — об’єднуємо автоматично, нижче — залишаємо як є. Між цими зонами лежить сіра область, де впевненості не вистачає і рішення ухвалює людина.

Режим Коли підходить Обмеження
Жорсткі правила Довідники з дисципліною заповнення, обмін із зовнішніми системами Не ловить одруківки, транслітерацію, різні формати полів
Модель схожості Бази після масового імпорту, вільні форми введення Потрібен налаштований поріг: за низького значення зростають хибні пари
Ручна перевірка дублів Дорогі помилки: великі угоди, юридичні контакти Пропускна здатність обмежена людьми
Гібридний режим злиття Робочі бази, де потрібні й охоплення, і акуратність Складніше впровадити: потрібен каскад і журнал рішень

Як це збирається на практиці

Гібридний режим злиття вибудовує каскад: правила відсікають точні збіги, модель добирає нечіткі, ручна перевірка закриває спірні пари з журналом, хто і що підтвердив.

Поріг і ваги ознак підбираються на вашій історії — за розміченою вибіркою видно, де модель помиляється, і межу зсувають до прийнятного балансу.

Етапи впровадження: від аудиту бази до передачі

Дублі в CRM — не косметика: та сама організація надходить із форми на сайті, з листа й із дзвінка, і менеджер бачить три не пов’язані історії угод. Тому починаємо не з налаштування, а з аудиту — інакше правила об’єднання виявляться або надто м’якими, або склеять різних клієнтів.

  1. Аудит клієнтської бази. Вивантажуємо контакти й угоди, рахуємо частку повторів за сегментами та дивимося, з яких каналів вони надходять.
  2. Профіль дублів. Розбираємо, де саме розходяться записи: написання імені, формат телефону, латиниця проти кирилиці, порожні поля. Тут же вирішуємо, які ознаки вважаємо надійними, а які ймовірнісними.
  3. Схема зіставлення. Точний збіг ключового ідентифікатора веде до автоматичного злиття, нечіткий збіг за кількома полями — у карантин на ручну перевірку.
  4. Налаштування злиття записів. Задаємо пріоритет джерел за кожним полем: телефон беремо з однієї системи, статус угоди — з іншої, щоб об’єднання не стирало історію взаємодій.
  5. Перевірка на історичних даних. Проганяємо правила на копії бази й рахуємо частку хибних спрацювань, а не лише кількість злиттів. Поріг впевненості налаштовуємо до того, як автоматика торкнеться робочої бази.
  6. Відкат об’єднання. Кожне злиття пишемо в журнал зі станом запису до і після — неправильне об’єднання відкочується, картка повертається до вихідного вигляду.
  7. Передача. Віддаємо регламент, журнал злиттів, значення порогів та інструкцію для підтримки.

Окремо проходимо найгірший сценарій: хибне злиття зводить двох різних клієнтів в одну картку й плутає їхні угоди, тому поріг впевненості фіксується до ввімкнення автоматики на робочій базі.

Правила зіставлення, пороги схожості та регламент злиття

Правила дедуплікації контактів за допомогою ШІ — це не налаштування всередині сервісу, а робочий документ, який живе в компанії.

Після запуску в замовника залишається повний комплект: описана логіка порівняння, пороги за кожним полем, порядок розв’язання конфліктів та інструкції для операторів. Нижче — що саме фіксується в цьому комплекті.

  • Правила зіставлення: які поля беруть участь у порівнянні (телефон, пошта, ім’я, компанія, адреса), у якому порядку вони перевіряються і що нормалізується до порівняння — приведення телефону до єдиного формату, розбір скорочень у назвах організацій.
  • Налаштовані пороги схожості окремо за кожним полем: жорсткий збіг для пошти й телефону, нечітке порівняння для імен і назв компаній, із зазначенням, за якого значення пара зливається автоматично, а за якого йде на ручну перевірку.
  • Політика пріоритету полів: з якої картки береться значення, якщо записи розходяться, — правило «повніший запис», «запис із надійнішого джерела», «останнє оновлення» або їхня комбінація за типами полів.
  • Регламент злиття карток: що переноситься в основний запис, що архівується, як зберігається історія змін і пов’язані угоди, завдання та листування.
  • Правила розбору спірних пар: куди потрапляють неоднозначні збіги, хто їх розбирає і в який строк, як відкотити помилкове злиття.
  • Документація з інтеграції: об’єкти CRM, яких стосується процес, події запуску, обмеження на частоту звернень і порядок повторного прогону після збою.
  • Набір еталонних пар контактів, на якому перед будь-якою зміною порогів перевіряється, що логіка досі працює на ваших даних.

Кейс: як автоматичне злиття прибрало дублі в робочій базі

Точка старту

База на 480 тисяч контактів у amoCRM наповнювалася з вебформ, імпортів із виставок і ручного введення менеджерів, тому та сама людина лежала по три рази: «Іван Петров», «Ivan Petrov», «Петров І.» — з різними телефонами й різними угодами.

Суцільна перевірка показала частку дублів 9–11%: менеджер бачив лише частину листування за клієнтом, дзвінки надходили повторно, а сегментні розсилки рахували одну людину за трьох.

Ручний розбір такої бази силами операторів зайняв би місяці й усе одно не захистив би від нових дублів на наступному імпорті — розбираємо, як це закрили.

Як влаштували контроль якості злиття

Спочатку зібрали еталонну вибірку пар, розмічену вручну: однакові записи, різні люди зі схожими іменами, пограничні випадки зі спільним робочим телефоном.

На ній відкалібрували пороги порівняння — вище верхнього пара йде в автозлиття, у середній зоні потрапляє в чергу оператора з підсвічуванням полів, що різняться, нижче не чіпаємо взагалі.

Кожне злиття пише запис у журнал: які картки об’єднано, за якою ознакою, з якою впевненістю і хто підтвердив. Угоди, завдання та листування переносяться, а не видаляються, тому роз’єднання за записом журналу повертає картки до вихідного стану.

Метрики до і після

Частка дублів у базі впала з 9–11% до 0,3% і тримається на цьому рівні: нічний прогін добирає нові пари після кожного імпорту. Час на розбір бази скоротився з місяців ручної звірки до нічного прогону плюс вибіркова перевірка оператором близько 2% спрацювань.

Кількість помилкових об’єднань — 0,1% від усіх злиттів, і кожне відкочується за одну операцію за історією об’єднань.

Що робити, якщо дублі вже розійшлися по угодах і завданнях?

Дублі, які встигли обрости угодами, завданнями та листуванням, не можна просто видалити: разом із карткою підуть зв’язки, а у звітах з’явиться провал за виручкою. Злиття зі збереженням зв’язків — це перенесення залежностей в основний запис, а не видалення зайвої картки.

Спочатку система збирає все, що посилається на кожну з карток: відкриті та закриті угоди, завдання, дзвінки, листи, рахунки.

Основною обирається та, де історія повніша й активність свіжіша, решту позначають як поглинуті — так у воронці не задвоюються угоди й не спотворюється сума за клієнтом.

Історія листування під час злиття не копіюється наосліп.

Повідомлення вибудовуються в одну стрічку за часом, а листи, які лежали в обох картках, розпізнаються за ідентифікатором і згортаються в один — інакше менеджер бачить дві однакові відповіді клієнта й не розуміє, яка з них остання.

Окреме питання — відповідальний за клієнта. Якщо за дублями закріплені різні співробітники, потрібно заздалегідь вирішити, хто веде клієнта далі, а чиї завдання щодо нього закриваються.

Відкриті завдання не зникають разом із карткою: вони переприв’язуються до основного запису, щоб робота не зависла.

Дедуплікація контактів ШІ тут працює як розв’язка вузла, а не як прибирання сміття: алгоритм ранжує кандидатів, будує карту зв’язків і показує план злиття до застосування — зі списком угод, завдань і листів, які переїдуть. Вихідні картки залишаються в архіві, тому результат можна перевірити й за потреби розібрати вручну.

Технічні сумніви: злиття, відкат, збереження історії

Злиття карток — операція, яку страшно запускати на живій базі: одна помилка склеює двох клієнтів, і історія угод іде не до того менеджера. Нижче — відповіді на сумніви, які звучать до старту майже в кожному проєкті дедуплікації контактів ШІ.

Що як система помилиться й склеїть різних людей?

Поріг збігу задається заздалегідь і залежить від поля: повний збіг пошти й телефону — автоматичне злиття, частковий — лише через чергу на підтвердження власником бази.

Спірні пари не змінюються, поки людина не підтвердить, а частка хибних спрацювань вимірюється на пілотній вибірці до ввімкнення автоматики.

Чи можна відкотити об’єднання?

Так. Перед злиттям обидва вихідні записи зберігаються в незмінному вигляді й позначаються спільним ідентифікатором групи — зворотна операція повертає картки в попередній стан разом зі зв’язками. Відкат доступний і через місяць, не лише в момент об’єднання.

Що буде з історією контакту: дзвінками, листами, завданнями?

Пов’язані записи не переписуються, а переприв’язуються до основної картки, тому хронологія зберігає порядок і авторство. У журналі залишається слід: що об’єднали, за якою ознакою і коли, — спірний випадок розбирається без відновлення резервної копії.

Чи не впаде система і хто отримає доступ до даних?

Обробка йде пакетами в години низької активності, порціями з паузами — навантаження на базу залишається в звичних межах, робота менеджерів не переривається.

Права не розширюються: злиття виконується під сервісним обліковим записом, а підтвердження спірних пар доступне лише власнику бази.

Обговоримо задачу: повернемося з оцінкою та планом робіт

Щоб оцінка була реалістичною, а не «середньою по ринку», нам потрібні факти про вашу базу.

Надішліть вивантаження контактів у CSV — знеособлене, без персональних даних: ідентифікатор запису, джерело, дати створення та останньої зміни, значення полів компанії, телефону, пошти й адреси в тому вигляді, у якому вони лежать у системі.

Цього достатньо, щоб порахувати частку дублів, розібрати типові сценарії збігів і оцінити обсяг ручної роботи.

Корисно додати до вивантаження:

  • схему зв’язків — угоди, завдання, дзвінки, листи та вкладення, прив’язані до контактів і компаній;
  • перелік джерел записів: форми, інтеграції, імпорти, поштові скриньки, телефонія;
  • правила, за якими зараз об’єднують вручну, і спірні випадки;
  • список обов’язкових полів і вимог до аудиту змін;
  • обмеження щодо доступів і режиму обміну даними;
  • кілька прикладів дублів, які ви вже знаходили.

На дзвінку уточнимо те, чого не видно за вивантаженням: які розбіжності вважати дублем, що робити з пов’язаними записами під час злиття, хто підтверджує неоднозначні пари і як улаштувати відкат помилкового об’єднання.

Після цього повернемося з оцінкою та планом робіт: етапи, порядок старту проєкту, склад перевірок на копії бази та формат передачі результату — правила зіставлення, звіти про прогони та інструкції для підтримки.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142