В ходе бизнес-процессов важна правильная идентификация организаций и персоналий (контактных лиц). Важно всю переписку и входящие документы связывать с соответствующей записью организации, а историю общения – с нужным контактным лицом. И не создавать дублей и «мусора» в справочниках. При занесении данных в систему важно правильно идентифицировать контактное лицо, чтобы история общения была целостной.
В каких ситуациях бывает нужно найти контактное лицо в бизнес-процессах:
Если мы автоматизируем процесс нахождения соответствия, то задача усложняется тем, что данные справочников, которые когда-то были получены, могут отличаться от данных последующего общения.
Например, вначале контакт указал только фамилию, имя и рабочий е-mail, а в следующий раз полное ФИО и личный e-mail. Название организации часто имеет множество вариантов сокращений. Организации меняют форму собственности и т.д. У человека может измениться место работы, электронный адрес и телефон. Могут встретиться однофамильцы даже в одной организации.
Итого мы пришли к созданию собственного алгоритма. В этой статье я поделюсь некоторыми находками решения для поиска контакта в системе DIRECTUM, имея данные по email, ФИО и наименованию организации.
На входе вы можете иметь только электронный адрес контакта, а можете и более полную информацию – фамилию имя, возможно, отчество, название должности, телефон, название организации. Эти данные можно выделить из параметров письма и текста письма (подпись в тексте письма). Чем больше данных о контакте, тем точнее результаты поиска и тем больше способов найти его в системе.
Точность результатов поиска – это еще и наша степень доверия данным, полученным извне (от пользователя) и найденным данным в системе.
Мы исходим из следующей пирамиды данных и доверия к ним (см. рисунок). Чем ниже по пирамиде, тем больше данных, но меньше вероятность точного попадания при частичном совпадении.
Электронный адрес – наиболее доверительные данные, так как адрес проходит проверку на подтверждение. Если же мы получаем входящее письмо, то входящий адрес тоже имеет некоторый уровень доверия от передающего почтового сервера (если это не спам). Совпадение по email максимально сужает поиск.
Домен адреса электронной почты позволяет уточнить критерий поиска контакта – найти организацию. Это означает, что при большем количестве критериев поиска мы получим более точные результаты.
Наименование организации, должности и ФИО имеют невысокий уровень доверия, так как названия имеют очень много вариантов указания, в некоторых случаях пользователи намеренно указывают нереальные или заведомо ложные данные. При поиске по ФИО может быть очень много совпадений, и точность может быть только при поиске с ограничениями, например, по организации.
В соответствии с этими шагами построен алгоритм поиска. Если поиск получил достаточно точный результат, то он завершается, иначе переходит к следующему этапу.
На отдельных шагах поиска используется библиотека нечеткого поиска, который входит в функционал DIRECTUM Ario.
По электронному адресу выполняем поиск записи в справочнике Контактные лица (КЛ) по полю Email. При наложении критерия по ФИО учитываем, что на входе ФИО может быть указано не полностью - без отчества, только с инициалами.
Результаты поиска:
Из электронного адреса выделить домен и выполнить поиск по данным карточки Организации: основной e-mail и web-сайт. При поиске исключаются популярные домены: yandex.ru, mail.ru, gmail.com, vk.com, rambler.ru, pochta.ru и т.п.
Результаты поиска:
Из электронного адреса контакта выделить домен и выполнить поиск по доменам электронных адресов карточек Контактных лиц. При поиске исключаются популярные домены: yandex.ru, mail.ru, gmail.com, vk.com, rambler.ru, pochta.ru и т.п.
Результаты поиска:
Выполнить поиск по наименованию и юридическому наименованию организации. Поиск исключает кавычки. Поиск можно выполнять с помощью алгоритмов нечеткого поиска.
Результаты поиска:
Поиск по ФИО применяется, если на предыдущих шагах результат поиска по ФИО и e-mail был не достаточно точным или нет других данных кроме ФИО.
В нашем алгоритме этот этап применяется в ситуациях:
Кроме того, на этом этапе применяются библиотеки нечеткого поиска из функционала Ario. Благодаря этому поиск может дать положительный результат даже при «сырых» входящих данных, когда ФИО указано с опечатками или не полностью (без отчества, только с инициалами). Например, по исходной фамилии Ивонов будет найдено контактное лицо Иванов.
Результат поиска будет выдан с показателем вероятности. Если исходные данные были неполные или неточные, то вероятность успешного поиска будет невысокая.
В дальнейшем алгоритм поиска можно улучшать. Например, анализировать вероятность точности результатов поиска для принятия решения по корректности найденных значений. Применяйте систему обучения вашей системы поиска.
* * *
В этой статье я поделилась некоторыми способами поиска контакта в системе. Поделитесь в комментариях, актуальна ли для вас задача поиска контакта в системе, какими способами вы пользуетесь для идентификации контакта в вашей системе DIRECTUM.
Есть российский сервис dadata.ru, который может помочь исправить подобные данные, но в его использовании есть ряд минусов – не всегда политика организации разрешает использовать внешние сервисы, не всегда разрешается передавать подобные данные внешним сервисам, ну и, наконец, он платный.
Авторизуйтесь, чтобы написать комментарий