Кейсы
Центр качества CRM-данных
Как локальное приложение Bitrix24 проверяет контакты, компании, лиды и сделки на пустые поля, дубли и некорректные значения.
В CRM со временем накапливаются пустые телефоны, некорректные email, подозрительные ИНН, дубли и сделки без клиента. Для быстрой проверки был сделан отдельный интерфейс, который собирает такие проблемы в один список.
Задача
Нужно было сделать локальное приложение для Bitrix24 Cloud, которое проверяет качество CRM-данных в контактах, компаниях, лидах и сделках.
Какие проблемы искать в CRM
Основная задача — быстро найти карточки, в которых есть явные проблемы с данными. Не исправлять их автоматически, а показать список ошибок, чтобы менеджер или администратор мог открыть карточку и разобраться.
Проверки должны были покрывать:
- контакты, компании и лиды без телефона;
- контакты, компании и лиды без email;
- некорректный формат телефона;
- некорректный формат email;
- подозрительный ИНН;
- дубли по телефону;
- дубли по email;
- дубли по ИНН;
- сделки без контакта и компании;
- карточки без ответственного;
- лиды и сделки со стадиями, которых нет в справочнике.
Штатных фильтров не хватало для контроля качества
Часть таких проблем можно искать фильтрами или отчётами, но это неудобно для регулярной проверки. Для каждой ошибки нужен свой фильтр, свои поля и отдельная логика.
Нужен был один экран: нажать «Проверить», получить список проблем, отфильтровать его по типу ошибки или ответственному и при необходимости выгрузить результат в CSV.
Проблема
CRM может выглядеть рабочей, даже если внутри много неполных или некорректных данных. Проблемы становятся заметны уже позже: при обзвоне, рассылке, отчётах, интеграциях или подготовке документов.
Ошибки видны только по отдельным карточкам
Пустой телефон в контакте, дубль email в компании, сделка без клиента и неправильная стадия лида — это разные места CRM. Смотреть их вручную приходится в разных списках и карточках.
Из-за этого проверка качества данных часто откладывается. Пока проблема не мешает конкретной работе, её можно просто не заметить.
Ручная проверка быстро перестаёт работать
Особенно неудобно искать дубли. Один и тот же телефон или email может встретиться в нескольких карточках одной сущности, но стандартный список не всегда быстро показывает такие совпадения.
При этом дубли нужно проверять аккуратно: телефон контакта не должен считаться дублем телефона компании. Сравнение должно идти внутри одной сущности, иначе список ошибок будет шумным.
Решение
Я сделал локальное приложение, которое открывается внутри Bitrix24, читает CRM-данные через REST и собирает найденные проблемы в отдельный интерфейс.
Единая панель проблемных записей
Приложение запускается внутри iframe и работает как отдельная проверочная панель. При открытии оно не начинает проверку автоматически: пользователь сначала выбирает фильтры, а затем запускает проверку кнопкой.
Это важно для больших порталов. Если нужно проверить только сделки за период или только одну сущность, фильтры применяются уже на этапе загрузки данных, а не только после вывода таблицы.
Отдельные проверки для лидов, сделок и клиентов
Проверка идёт по основным CRM-сущностям: контактам, компаниям, лидам и сделкам. Для каждой сущности собираются нужные поля, ответственные, даты создания и значения, по которым можно найти ошибки.
Отдельно обрабатываются ИНН. Приложение ищет поля, похожие на ИНН, проверяет подозрительные значения и не считает пустой ИНН ошибкой сам по себе.
Дубли проверяются внутри одной сущности. Телефон контакта сравнивается с телефонами других контактов, а телефон компании — только с телефонами других компаний.
Фильтрация по типу ошибки и ответственному
В интерфейсе есть фильтры по сущности, ответственному, датам создания, типам проблем и строковый поиск по названию, ID, значению и ответственному.
Слева выводятся группы проблем. По ним можно быстро понять, какие ошибки встречаются чаще, и переключиться только на нужный тип.
В таблице показывается сама проблема, сущность, ID карточки, название, найденное значение, ответственный и дата создания. При выборе строки справа открывается карточка проблемы с подробностями.
Выгрузка списка для разбора
Для передачи списка в работу добавлен экспорт CSV. Выгружается не только текущая страница таблицы, а весь отфильтрованный набор найденных проблем.
Так можно сначала сузить список по ответственному или типу ошибки, а потом выгрузить уже нужную выборку.
Результат
Получился отдельный центр проверки CRM-данных: он показывает ошибки в одном интерфейсе, даёт фильтры и помогает быстро перейти к проблемным карточкам.
Пример найденных проблем
Проблемы стали видны до того, как мешают работе
Проверка качества CRM-данных стала отдельным понятным действием. Не нужно собирать десятки фильтров вручную или искать проблемы по разным разделам CRM.
После доработки можно:
- запустить проверку контактов, компаний, лидов и сделок;
- увидеть все найденные проблемы в одной таблице;
- отфильтровать ошибки по сущности, ответственному, дате и типу проблемы;
- посмотреть подробности выбранной проблемы;
- открыть проблемную CRM-карточку;
- выгрузить отфильтрованный список в CSV.
Приложение только читает данные и не исправляет карточки автоматически. Это снижает риск: пользователь сам решает, что именно нужно исправить в CRM.