Пример: Интеграция с CRM системой
В этом небольшом руководстве будет показано как можно легко интегрировать телефонию Carusto в CRM систему.
Функции по интеграции:
- Исходящий звонок из CRM системы
- Обработка входящего звонка
- Маршрутизация входящего звонка на менеджера CRM системы
Исходящий звонок
Для совершения исходящего звонка мы будем использовать Carusto REST API, где нам нужен API ключ и Realm (доменное имя для доступа к системе Carusto).
Сгенерировать API ключ и узнать Realm вы можете в панели администратора. Для этого вам необходимо зайти в Integration > API Keys > New KEY, а в секции System > General будет показан Realm.
Итак, как это будет работать:
- Пользователь нажимает на условную кнопку “Звонок”, или на номер телефона.
- CRM система, формирует запрос на платформу Carusto, о том что пользователь X хочет совершить звонок.
- В том случае если у пользователя нету установленного приложения для совершения звонков, ответ будет отрицательный с указанием этой ошибки. И в этом случае CRM система должна показать диалоговое окно об установке.
- В том случае если указанный пользователь не найден в системе Carusto, он будет автоматически создан в том случае если указать уникальный идентификатор и доп. информацию об пользователе в запросе (параметры x-auth-id, x-auth-info).
- Платформа Carusto принимает запрос и инициализирует новый звонок.
- Пользователь получает звонок на указанный номер в запросе.
Шаг 1: Сохранение данных для авторизации через Carusto REST API.
Если пользователь вашей системы хочет подключить телефонию он должен узнать API ключ и realm для доступа. После он должен заполнить форму для сохранения этих настроек в CRM системе.
Пример API ключа и доменного имени (realm)
Ключ | Доменное имя |
---|---|
1234567890 | mycompany.carusto.net |
Шаг 2: Обработка клика на кнопку “Звонить”
После того как пользователь нажал на кнопку “Звонить”, клиентское приложение должно сформировать запрос на сервер CRM системы, где будет указан номер куда текущий пользователь хочет позвонить.
Когда ваш веб-сервер получил такой запрос, он должен обратится к системе Carusto для совершения звонка, указав в параметрах: номер назначения, идентификатор пользователя и его доп. данные (имя, мобильный телефон и т.п.)
Дополнительные контактные данные пользователя необходимы для синхронизации пользователя CRM системы, и этого же пользователя в системе Carusto. То есть когда система Carusto принимает запрос она анализирует переменные x-auth-id и x-auth-info, и в случае валидной информации создает или обновляет информацию об пользователе.
Пример запроса
curl -H "Authorization: Bearer 9090328211896121" \
-H "X-Auth-Id: 555" \
-H "X-Auth-Info: W3sia2V5IjoiVEVMIiwidHlwZSI6Ik1PQklMRSIsInZhbHVlIjoiKzM4MDk2MjM2OTk3NyJ9LHsia2V5IjoiVEVMIiwidHlwZSI6IkVYVCIsInZhbHVlIjoiMTAwMCJ9LHsia2V5IjoiRk4iLCJ2YWx1ZSI6IkpvaG4gRG9lIn1d" \
http://yourcompany.carusto.net/api/v2/calls/new/sync?dest_number=+1-202-555-0187&timeout=3800
Шаг 3: Обработка ответа с системы Carusto
Запрос на создание нового звонка может занимать значительное время, поскольку он будет блокирующий до тех пор пока не будет завершен звонок. В том случае если запрос был успешный мы получим идентификатор звонка, при помощи которого мы сможем получить (см детальную информацию). Если вы не хотите ожидать завершения звонка и вам не важен результат запроса, используйте запрос где будет возвращен идентификатор для получения ответа (см makeCallAsync)
Пример ответа в случае отсутствия приложений для звонка
{"success":false,"code":480,"message":"User devices are not registered"}
И в случае успешного звонка должен быть идентификатор звонка
{"success":true,"data":"aecc424a-a745-11e6-884e-db1a8020e359"}
Шаг 4: Установка приложения Carusto
В том случае если сервер Carusto ответил ошибкой 480 для запроса, пользователю необходимо показать диалоговое окно и направить его на страницу установки приложения http://yourcompany.carusto.net/connect/?x-auth=9090328211896121&x-auth-id=100505.
Процесс установки максимально автоматизирован, пользователю нужно будет только лишь нажать на кнопку Установить, после чего приложение будет автоматически настроенно для работы.