В процессе интеграции 1С MDM и коробочной версии Битрикс24, возникла необходимость выгрузить базу контактов в Битрикс24 и сопоставить их с текущими компаниями. Что из этого получилось, рассказываем в текущем материале.
Вводные данные:
- у клиента настроен обмен между MDM и Битрикс24;
- полностью синхронизированы компании;
- внутри компаний в Битрикс24 создано поле "ERP_ID", по которому происходит сопоставление контрагентов между MDM и Битрикс24;
- контакты (физические лица) не были перенесены по причине некачественных данных;
- заказчиком был произведён импорт данных из MDM в Excel и проведена работа по качественному изменению структуры данных;
Что необходимо сделать:
- по ERP ID и ИНН определить компанию, к которой надо привязать контакт;
- если компания есть в CRM, то создать контакт и привязать его к компании, если компании нет, то не создавать контакт;
- если компания есть в CRM, то создать контакт и привязать его к компании, если компании нет, то не создавать контакт;
- если нет ИНН (например, иностранный контрагент), но есть ERP ID то создать и привязать контакт;
- чтобы не создавались дубли, необходимо сопоставление контактов с текущей базой Битрикс24 по телефону и имени. Если телефон отсутствует, по по E-mail;
- за вновь создаваемые контакты ответственный должен быть администратор.
Что было сделано:
- создан скрипт, который с помощью API производит необходимые действия;
- сначала считывается файл и записывается в оперативную память в массив PHP;
- каждый элемент массива соответствует строке файла Excel;
- при наличии ERP_ID производится поиск компании в Битрикс24 с данным значением;
- если ERP_ID отсутствует, производится поиск в массиве реквизитов по ИНН, из которого производится чтение нужной компании по ID;
- затем происходит поиск контакта в базе Битрикс24 по одному из номеров телефонов (их 3 в базе Excel) и имени;
- если номер телефона отсутствует в файле, происходит поиск контакта по e-mail и имени;
- если контакт найден и он не прикреплён к какой-либо компании, либо прикреплён к неверной компании, производится прикрепление контакта к компании;
- если контакт не найден, то он создаётся и прикрепляется к нужной компании.
В результате выполненной работы была проведена загрузка/обновление более 90 000 контактов. Таким образом, была актуализирована база клиентов в кратчайшие сроки.