Привет! Меня зовут Дмитрий, я разработчик в компании ArtSolution24. Мы - золотой партнер Битрикс24, занимаемся внедрением облачной и коробочной версий продукта, доработками и интеграциями с другими системами. 

У нас в портфолио много интересных кейсов, связанных с созданием дополнительной функциональности в Битрикс24 по запросу наших клиентов. Одну из таких историй разберу в этой статье. 

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

Заказчик пришел с запросом — дать возможность менеджерам отдела продаж быстро выяснить, работает ли кто-то в компании с конкретным клиентом или лидом, но при этом ограничить доступ к конфиденциальной информации о клиентах. 

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

В Битрикс24 есть механизмы контроля дубликатов, но в погоне за выполнением KPI менеджеры часто игнорируют предупреждение о том, что похожая компания уже есть в CRM. А выяснить, завел ли этого клиента ранее,  довольно сложно — менеджеры видят только «свои» компании, у них нет прямого пути, чтобы посмотреть всех клиентов в базе CRM. 

Мы предложили следующее решение: 

  • реализовать быстрый поиск по частичному совпадению ИНН или названия компании,

  • если компания найдена в CRM, предоставить информации о том, кто ведет клиента,

  • если у менеджера есть доступ к подробным сведениям о клиентах, дать ему возможность их просмотреть. 

Технически мы реализовали приложение, работающее на сервере заказчика. У него есть очень простой интерфейс — поисковая строка, в которой можно указать один или несколько ИНН (в процессе мы решили добавить проверку по списку ИНН),  либо название компании — полностью или частично. 

Если что-то найдено, в ответе выводится название компании и ФИО ответственного менеджера. Доступ к поиску есть у всех, кто авторизован в системе через стандартные механизмы Битрикс24. А возможность просматривать карточки компании определяется ролью пользователя — права есть не у всех. 

Как мы реализовали поиск по ИНН

С поиском по названию компании все понятно — это единственное обязательное поле в карточке, и многие менеджеры ограничиваются только им, не заполняя реквизиты. 

Но в Битрикс24 ИНН хранится в отдельной сущности «Реквизиты», связанной с сущностью «Компания». Кто-то может использовать автозаполнение реквизитов по ИНН с помощью сервиса DaData, кто-то  заводит кастомное поле для ИНН, кто-то не указывает их вовсе. 

Мы разработали универсальный алгоритм:

// Поиск по ИНН в реквизитах

$inn = '7701234567';

$res = \Bitrix\Crm\EntityRequisite::getList([

    'filter' => ['=RQ_INN' => $inn],

    'select' => ['ENTITY_ID', 'ENTITY_TYPE_ID']

]);

while ($row = $res->fetch()) {

    if ($row['ENTITY_TYPE_ID'] == \CCrmOwnerType::Company) {

        $companyId = $row['ENTITY_ID'];

        // получаем название компании и ответственного

    }

}

Если ИНН не найден — дальше ищем по названию, минимальная длина строки поиска ограничена тремя символами.
Итак, если наш поиск принес результаты, мы выводим в пользователю кликабельные названия компаний. И если у него есть права доступа к такой информации, он может переходить по ссылкам в карточку клиента.

Мы встроили проверку прав на доступ к карточке с помощью штатных механизмов Битрикс24:

$CCrmCompany = new \CCrmCompany();

if ($CCrmCompany->CheckReadPermission($companyId, $currentUserId)) {

    $link = "/crm/company/details/{$companyId}/";

} else {

    $link = null; // скрываем ссылку

}

Это гарантирует, что:

  • Видят название компании и ответственного менеджера — все авторизованные пользователи.

  • Переходят в карточку — только те, у кого есть права по ролевой модели CRM.

Затем мы протестировали этот алгоритм на различных ролях пользователей, проверяя,  корректно ли работает ролевая модель прав, финально согласовали с заказчиком правила — кто должен и кто не должен видеть карточку клиента .

В финале мы настроили интеграцию нашего приложения с интерфейсом CRM — добавили его в основное меню. С помощью CSS доработали интерфейс, теперь оно выглядит как родное, ничем не отличаясь от интерфейса Битрикс24.

Что получили в результате

Время поиска компании в CRM сократилось с 5 минут до 15-30 секунд. Сотрудники перестали дублировать информацию, а работа отдела продаж стала более четкой. Заказчик получил более полный контроль 

Разработанное решение доказало: даже стандартные CRM можно адаптировать под конкретные бизнес-процессы. Для этого нужно проанализировать потребности пользователей и точечно доработать функционал с помощью максимально простых решений. 

Комментарии (0)