retailCRM Документация

Порядок интеграции виртуальной АТС с системой

Возможности интеграции retailСRM и виртуальной АТС

API системы для телефонии позволяет:

  1. Инициировать звонок из системы
  2. Загружать в систему историю звонков
  3. Получать ответственного менеджера по номеру телефона для маршрутизации входящего звонка
  4. Уведомлять систему о событиях звонка

Работа с API производится в соответствии с правилами работы с API. Для интеграции используются API-методы секциий Телефония и Пользователи.

Алгоритм интеграции виртуальной АТС и системы:

Этапы с пометкой USER — это этапы, где данные предоставляются или заполняются пользователем. Остальные этапы с пометкой API выполняются посредством API-запросов.

Регистрация и настройка телефонии

Регистрация новой телефонии, а также изменение настроек существующей производится с помощью метода POST /api/v4/telephony/setting/{code}/edit. Если телефония с кодом code уже существует, метод меняет ее настройки, в противном случае создается новая телефония. При регистрации телефонии передается уникальный код clientId, который будет позволять идентифицировать телефонии аккаунт системы.

Если в поле allowEdit передать false, редактирование настроек интеграции будет возможно только через API. Пользователям системы будет доступно только удаление интеграции.

В поле makeCallUrl передается адрес, на который система будет отсылать запросы для инициации звонка.

В поле changeUserStatusUrl передается адрес, на который система будет отсылать запросы для уведомления о смене статуса пользователя в системе.

С помощью параметра personalAccountUrl можно передавать URL для перехода в личный кабинет телефонии.

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

Добавочные коды

Настроить соответствие добавочных кодов и пользователей можно двумя способами:

Если в настройках телефонии заполнено поле makeCallUrl и у авторизованного пользователя системы указан добавочный код, на страницах появится иконка трубки для звонка.

Внешние номера

Настроить соответствие внешних номеров и магазинов можно двумя способами:

Если в настройках телефонии заданы внешние номера, и звонок инициируется из сущности связанной с магазином, при инициации звонка на адрес makeCallUrl будет передан параметр externalPhone.

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

Пример создания/редактирования телефонии

Например, есть система https://example.retailcrm.ru. В системе заведены два пользователя с ID 1, 2 и два магазина с символьными кодами shop1, shop2.

На стороне телефонии заведены добавочные номера 100, 200 и внешние номера +7-499-999-99-99, +7-499-888-88-88.

Для создания/редактирования телефонии с кодом my-telephony нужно отправить POST-запрос на адрес https://example.retailcrm.ru/api/v4/telephony/setting/my-telephony/edit

c параметром configuration, в качестве значения JSON:

{
    "code": "my-telephony",
    "clientId": "2dbh26tahjj26sg",
    "active":"1",
    "name": "Название телефонии",
    "image": "http://api.telephony-test.ru/logo.svg",
    "allowEdit": false,
    "inputEventSupported": true,
    "additionalCodes":[
        {"userId":"1", "code":100},
        {"userId":"2", "code":200}
    ],
    "externalPhones":[
        {"siteCode":"shop1", "externalPhone":"+7-499-999-99-99"},
        {"siteCode":"shop2", "externalPhone":"+7-499-888-88-88"}
    ],
    "makeCallUrl": "http://api.telephony-test.ru/make-call",
    "changeUserStatusUrl": "http://api.telephony-test.ru/change-status"
}

Ответ

HTTP/1.1 201 OK

{
  "success": true
}

Получение информации о телефонии

Получение информации о интеграции с телефонией производится с помощью метода GET /api/v4/telephony/setting/{code}

Загрузка истории звонков

Для загрузки истории необходимо использовать метод POST /api/v4/telephony/calls/upload. За один запрос можно сохранить до 50 звонков. АТС может загружать историю, используя одну из двух стратегий:

Загрузка истории сразу же после звонка

После факта совершения исходящего или входящего звонка АТС отправляет в системы историю по данному звонку. Таким образом в запросе, как правило, будет передаваться одна запись истории.

Периодическая загрузка истории звонков

АТС периодически (например, раз в 10 минут) отправляет в систему историю звонков, которые накопились с момента предыдущей загрузки.

Записи звонков

В поле calls[][recordUrl] передается ссылка на запись звонка.

При попытке прослушать звонок система посылает GET-запрос на адрес calls[][recordUrl] с параметрами:

Для корректного воспроизведения аудиозаписи необходимо указывать верный заголовок Content-Type.

Получение ответственного менеджера

Метод GET /api/v4/telephony/manager позволяет передать номер телефона, по которому система попытается найти клиента и вернуть свободного ответственного менеджера данного клиента при его наличии. Данный метод полезен при маршрутизации входящего звонка на добавочный номер ответственного менеджера.

Менеджер считается свободным если он авторизован в системе и у него выставлен статус свободен. Кроме того в настройках интеграции у менеджера должен быть задан добавочный код. Если одно из этих условий не выполнено, ответственный менеджер не будет возвращен методом.

События звонков

Методом POST /api/v4/telephony/call/event можно сообщить системе о событиях звонка. Необходимо передавать события трех типов: входящий звонок, исходящий звонок и событие завершение звонка. В момент передачи события входящего звонка у менеджера, на чей добавочный номер направлен звонок, будет выводиться карточка звонка.

Пример запроса

Например, у системы https://example.retailcrm.ru активирована интеграция с телефонией. В настройках заведены добавочные номера 100, 200 и внешние номера +7-499-999-99-99, +7-499-888-88-88.

Нужно отправить POST-запрос на адресс https://example.retailcrm.ru/api/v4/telephony/call/event

c параметром event, в качестве значения JSON:

{
    "phone": "+7-555-555-55-55",
    "type": "in",
    "codes":["100"],
    "externalPhone": "+7-444-444-44-44"
}

Ответ

HTTP/1.1 200 OK

{
  "success": true
}

Инициация звонка

При настройке интеграции в поле configuration["makeCallUrl"] передается адрес, на который система будет отсылать запросы для инициации звонка.

Система посылает запрос GET {configuration["makeCallUrl"]} с параметрами:

В случае успешной инициации звонка, АТС должна вернуть HTTP-статус 200. В противном случае любой другой статус, который будет интерпретирован как ошибка инициации звонка, о чем будет сообщено пользователю. Тело HTTP-ответа игнорируется.

Пример запроса на makeCallUrl

Например, зарегистрирован makeCallUrl-адрес http://api.telephony-test.ru/make-call. Менеджер c добавочным кодом 100 и id в системе 1 звонит клиенту с номером +7 (912) 123-45-67.

Запрос http://api.telephony-test.ru/make-call?clientId=2dbh26tahjj26sg&code=100&phone=+79121234567&userId=1

Ответ

HTTP/1.1 200 OK

Уведомление о смене статуса пользователя в системе

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

Система посылает запрос GET {configuration["changeUserStatusUrl"]} с параметрами:

Поле status - может принимать значения: [free|busy|dinner|break]

Пример запроса на changeUserStatusUrl

Например, зарегистрирован changeUserStatusUrl-адрес http://api.telephony-test.ru/change-status. Менеджер c добавочным кодом 100 и ID 1 поменял статус на занят.

Запрос http://api.telephony-test.ru/change-status?clientId=2dbh26tahjj26sg&code=100&userId=1&status=busy

Тело и статус HTTP-ответа игнорируется.


Редакция от 11.04.2017 14:52