Добрый день. Нужно написать скрипт который будет прикреплять звонки к сделкам в amoCrm.
У amoCrm есть API,
developers.amocrm.ru/rest... Звонки у нас записываются на нашем сервере телефонии Asterisk.
Сервер телефонии это VPS с CentOS и Asterisk настроить на сервере можем что угодно.
Алгоритм я вижу примерно такой:
Скрипт просматривает звонки в cdr базе Asterisk, находит сделки с совпадающими номерами телефонов
и записывает звонки через API в amoCrm. Могут быть как входящие так и исходящие звонки, ищем по номеру телефона который записан в amocrm.
Более подробно:
Бизнес процесс выглядит так:
Колл-центр обзванивает компании выявляют потенциальных клиентов.
Сервер телефонии записывает все звонки. Колл-центр вносит данные о потенциальных клиентах в Excel.
Примерно раз в неделю руководитель просматривает Excel, переносит подходящих клиентов из Excel в Amocrm.
Далее Переговорщики звонят клиентам по данным amocrm, звонки переговорщиков также записывает сервер телефонии.
Переговорщиков от колл-центра можем различать по логину/внутреннему номеру.
Для новых сделок нам нужно "подцепить" звонки которые могли быть совершены колл-центром 2-3 недели назад.
Первая часть скрипта, перенос прошлых звонков колл центра:
После того как руководитель перенес сделки из Excel в AmoCrm, руководитель запускает скрипт например переходит по ссылке
test.php Скрипт просматривате сделки которые были созданы за последний час.
И для этих новых сделок скрипт ищет записи разговоров в cdr Asterisk за последний месяц. И заносит данные о звонках.
Вторая часть скрипта, перенос текущих звонков переговорщиков:
Переговорщики общаются с клиентом по сделкам которые уже есть в amoCrm.
У каждого переговорщика есть свой отдельный логин в телефонии.
Скрипт по cron запускается раз в час, просматривает звонки в cdr которые сделали переговорщики, переговорщиков можно отличить по логину/внутреннему номеру. Список логинов дадим.
Если находит совпадающие номера переносит в amoCrm.
Т.к. может получиться так что переговорщик звонил по номеру телефона которого нет в amoCrm. Нам нужно вести учет звонков.
Пусть скрипт записывает результаты в отдельную sql таблицу, с такими полями:
id звонка из cdr
Дата звонка
Номер куда звонили
Внутренний номер откуда звонили
Файл с разговором (можно нажать play, послушать разговор)
Название сделки куда перенесен.
Нужна страничка на которой можно будет просмотреть эту таблицу, и понять какие разговоры перенесены, какие нет.
Для не перенесенных мы будем прослушиваь звонки, разбираться кто куда звонил, и добавлять номера в amoCrm.
Также нужна ссылка в таблице, нажав на эту ссылку номер прикреплялся в amoCrm, после того как мы добавили номер в amoCrm мы нажмем на эту ссылку и прикрепим звонок.
Также по этой таблице скрипт сможет понять с какого id нужно просматривать звонки в cdr Asterisk.
К проекту также прикрепил эскиз страницы для просмотра с таблички списка номеров.
Ньюансы:
1. Звонки на сервере пишутся в wav формате, а в amoCrm нужно передать ссылку на mp3 файл.
Нужно конвертировать файл на сервере телефонии, складывать в папку а потом передавать ссылку на файл в amoCrm.
2. Если для номера из cdr нашли две сделки, значит записываем разговор в обе сделки.
3. Номера телефонов в amoCrm могут хранить в небольшом беспорядке, например есть записи:
8-495-246-14-56 доб 123
7-495-246-14-56 доб 123
8-495-246-14-56
7 495 452 30 56
Давайте договоримся что разделите между цифрами могут быть любыми.
Из телефона убираем все НЕ цифры.
Получится:
84952461456123
74952461456123
84952461456
74954523056
Берем из номера первые 11 цифр, это и будет номер телефона.
Еще нужно как-то разобраться с 8 или 7 в начале номера.
В amoCrm номер может начинаться с 8 а переговорщик набрал с 7 или наоборот.
Нужно рассматривать такие номера как один и тот-же.
Вам нужно сделать:
Написать две модификации скрипта
Решить вопрос с конвертацией из wav в mp3 на сервере.
Написать простую страничку для просмотра таблицы в результатами переноса звонков.
Подключить установить скрипт на нашем сервере
Ссылка на API amoCrm
developers.amocrm.ru/rest... Если есть вопросы задавайте.
Старался расписать подробно, чтобы снять основные вопросы, но наверно что-то не учел. Спрашивайте.
Сроки неделя.
Бюджет: 3000 р.