Общее руководство по Web-интеграции

Материал из Oktell
Перейти к: навигация, поиск

Определение и задачи интеграции

Что такое интеграция?

Интеграция - процесс объединения одного приложения c другим с целью увеличения функциональности и уменьшения времени обработки запроса. Интеграцию проводят для облегчения работы операторам и автоматизации бизнес-процессов.

Что мы имеем до интеграции?

Имеется сервер Oktell и некоторый web-сервер, на котором установлена WebCRM-система.

Пользователи Oktell могут заходить в свое рабочее место через клиентское приложение. Стандартный функционал Oktell предоставляет пользователям:

  • доступ к управлению телефонами (позвонить, переключить, отклонить звонок, организовать конференцию, пригласить других участников в конференцию, подключиться к разговору в режиме прослушивания, помощи и т.д.).
  • информацию о текущем состоянии телефонов, внутренних номеров и пользователей
  • информацию о поступающем звонке, абоненте, доступ к информации об ожидающей очереди абонентов в реальном времени, к контентам сессий и линий.
  • доступ к статистике разговоров и к записям разговоров (по правам).
  • возможность запуска служебных сценариев.

Пользователи WebCRM могут заходить в свое рабочее место через браузер. Как правило, WebCRM предоставляет следующий функционал:

  • доступ к клиентской базе, истории взаимоотношений с клиентом
  • управление текущими задачами и проектами компании
  • управление заявками, счетами
  • предоставление информации о KPI сотрудника, расчет их показателей эффективности
  • управление бизнес-процессами в компании

Что мы должны получить после интеграции?

Входящие звонки

При входящем звонке Oktell идентифицирует абонента по его номеру телефон (CallerId), телефону, который он набрал (CalledId), время поступившего звонка. Затем, происходит обращение к серверу WebCRM, в котором сообщается полученная информация, по которой определяется тип клиента, ответственный менеджер, дополнительные данные. После получения необходимых данных, Oktell маршрутизирует звонок нужному сотруднику, а в браузере у этого сотрудника открывается карточка клиента.

Исходящие звонки

Чтобы совершить звонок на номер клиента, менеджеру необходимо открыть карточку клиента в CRM-системе и нажать на кнопку "Позвонить". Выбор линий и направлений для совершения звонка настраивается в Oktell. В случае, если абонент не доступен или занят, менеджеру должна быть выведена соответствующая информация о статусе звонка.

Внутренние звонки

Пользователь WebCRM-системы может в любой момент посмотреть внутренние номера сотрудников компании и при желании сразу совершить звонок коллегам. Помимо обычных звонков возможен сбор конференции.

Также должны быть доступны статусы всех сотрудников. Статусы могут быть: свободен, занят (т.е. находится в разговоре), в перерыве или недоступен. Менеджер видит кто из коллег занят в данный момент и подождать, пока он освободится, для совершения звонка.

Статистика / история звонков.

При любом входящем звонке от клиента (или исходящем к клиенту), Oktell отправляет запрос в WebCRM-систему на формирование “события” (“активности”). Данная “активность” привязывается к карточке клиента или заказа , таким образом формируя историю взаимодействия. “Активность” автоматически заполняется датой звонка, номером звонившего, именами участников разговора, а также дополняются комментариями ответственного менеджера. При таком подходе, ни одно взаимодействие с клиентом не будет упущено и менеджер может в любой момент оценить как продвигается сделка.

Каждый пользователь при наличии прав может посмотреть историю звонков, прослушать записи разговоров и добавить свои комментарии. Возможен вариант просмотра детализации разговоров у подчиненных сотрудников. Статистика разговоров, при этом, может вестись как самой CRM-системой, так и подгружаться с сервера Oktell. Полученные данные можно группировать по сотрудникам, внешним номерам и по времени.

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


Схема интеграции

Oktell позволяет работать одновременно с сервером WebCRM и с клиентскими (браузерными) приложениями. Интеграция Oktell и WebCRM-системы проводится в два этапа: 1. Серверная интеграция — настройка канала обмена данными между WebCRM-системой и сервером Oktell. 2. Клиентская интеграция — организация интерфейса для передачи команд телефонии от браузерного приложения к серверу Oktell.


Серверная интеграция

Схема работы

Между серверами организовывается канал для двустороннего обмена сообщениями. Установка соединения производится от сервера Oktell к WebCRM-системе. После установки соединения системы Oktell запрашивает информацию от сервера WebCRM о всех методах CRM-системы, доступных для исполнения. Эти методы называются динамическими и после получения информации появляются в компоненте сценариев “CRM-действие”.

Например, Oktell соединяется с CRM-системой и получает от нее два динамических метода:

  • Первый динамический метод позволяет получить информацию о клиенте по номеру телефона. В методе описано, что необходимо передать номер телефона на сервер WebCRM. При входящем/исходящем звонке, Oktell с помощью компонента “CRM-действие” вызывает данный метод и передает в него номер телефона клиента. В ответ он получает всю необходимую информацию.
  • Второй динамический метод позволяет сохранить “активность/звонок” в CRM-системе. При завершении звонка, Oktell передает идентификатор клиента, имя менеджера, который совершал звонок, время и длительность разговора и ссылку на запись.

Подробнее про динамические методы вы узнаете по этой ссылке.

Web-сервер по данному соединению может обратиться к серверу Oktell за получением данных по звонку (время ожидания, длительность разговора, время звонка), получения записи разговора (как самого файла, так и ссылки на этот файл). Также, WebCRM может запускать служебные сценарии в Oktell. Сценарии совершают необходимые действия, например, производят рассылку электронных писем.


Интеграция-001n.png


Методы реализации

Задача серверной интеграции - организовать канал связи между WebCRM и сервером Oktell для выполнения различных запросов. При этом запросы могут идти, как от Oktell к WebCRM, так и наоборот. Для каждой технологии ниже приведено краткое описание, преимущества и недостатки использования.

Соединение по протоколу WebSocket

WebSocket - название интеграционного протокола в Oktell, который описывает взаимодействие двух серверов. Взаимодействие происходит путем обмена сообщениями по постоянному установившемуся TCP-каналу. Часть сообщений носят вид событий, часть - вид запросов (команд), часть - вид ответов на запросы. Каждое сообщение описывает данные в виде структуры JSON (возможен вариант XML). В качестве кодировки используется UTF-8.

Преимущество использования WebSocket в создании постоянного канала, возможности двухстороннего обмена данными и, таким образом, оптимизации нагрузки на сетевую подсистему.

Чтобы использовать соединение по WebSocket в настройках соединения (Администрирование - Общие настройки - Web-интеграция с CRM) выберите Oktell к СRM (WebSocket) или Oktell к СRM (WebSocketSecure).

Для передачи запросов от WebCRM к Oktell используется тот же TCP-канал, поэтому этот канал называется двунаправленным. WebCRM может выполнять предустановленные методы (получать номерной план, запускать задачи и др.), выполнять служебные сценарии и получать от них результат. Протокол также позволяет выполнять хранимые процедуры в базе данных Oktell и получать результат выполнения.

Полное описание протокола вы можете прочитать по ссылке Oktell Web-Socket Protocol.


Интеграция-006.png


Соединение через HTTP-запросы

Серверная интеграция в Oktell реализована также с помощью HTTP-запросов. HTTP-запросы могут выполняться от Oktell к CRM через динамические методы, от CRM к Oktell через серверный HTTP интерфейс.

В отличии от протокола WebSocket, сервера Oktell и WebCRM не имеют соединения друг с другом. Это означает, что если CRM-система будет недоступна, Oktell ничего не будет знать об этом. Таким образом, некоторые запросы могут не выполниться и необходимо предусматривать защиту от подобных случаев. Также недостатком данного соединения является односторонняя направленность канала (только от Oktell к CRM). Способ соединения с сервером CRM - по WebSocket или по HTTP определяется возможностями WebCRM-сервера.

Чтобы использовать серверную интеграцию через HTTP запросы в настройках соединения (Администрирование - Общие настройки - Web-интеграция с CRM) выберите Oktell к СRM (HTTP) или Oktell к СRM (HTTPS).

Для передачи запросов от WebCRM к Oktell следует использовать серверный HTTP интерфейс. Он позволяет исполнять команды, поступившие на сервер Oktell (по умолчанию, порт 4055). С помощью запросов WebСRM осуществляет запуск служебного сценария, определяет состояние конкретного пользователя, получает информацию обо всех очередях в текущий момент времени. Несколько команд HTTP-интерфейса позволяют совершать звонки от имени конкретного рабочего места или пользователя. Для этого необходимо дополнительно указывать идентификатор пользователя, линии или рабочего места (имя компьютера).

Для каждого запроса требуется базовая авторизация под учетной записью пользователя, имеющего привилегии исполнять методы Web-API. Удобнее всего, создать отдельного пользователя и выполнять от его имени все web-запросы.

Полное описание вы можете прочитать по ссылке Серверный HTTP интерфейс


Интеграция-008.png


Интеграция через базы данных

Интеграция посредством баз данных использует СУБД для записи и считывания значений из общих таблиц. В процессе работы Oktell и WebCRM записывают/изменяют значения ячеек, которые используются в работе. Со стороны Oktell работа происходит с помощью компонента SQL-запрос.

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

В отличие от WebSocket и HTTP соединение происходит опосредованно через СУБД.

Подробнее вы можете прочитать по ссылке: Запрос SQL в БД


Интеграция-010.png


Клиентская интеграция

Схема работы

Сервер Oktell взаимодействует с телефонами и с браузерными приложениями с помощью клиент-серверного интерфейса. Между Oktell и каждым браузерным приложением организовывается свой независимый канал для двустороннего обмена командами управления и событиями.


Интеграция-003n.png


Фактически, веб-приложение получает возможность взаимодействовать напрямую с сервером Oktell. Интерфейс позволяет

  • Принимать / совершать / переводить звонки
  • Создавать / управлять конференциями
  • Видеть номерной план / очередь звонков

Рекомендуется использовать одинаковые логины и пароли в WebCRM и в Oktell для упрощения процесса авторизации. При входе в WebCRM, пользователь автоматически авторизуется в Oktell с идентичными авторизационными данными.

ВНИМАНИЕ: Канал клиентского интерфейса не следует использовать для фиксации событий в базе WebCRM, таких как сохранение информации о входящих и пропущенных звонках. Если браузерное приложение будет отвечать за запись подобной информации, то в случае его недоступности, информация будет утеряна. Для учета подобных событий используйте только методы серверной интеграции.


Методы реализации

Задача клиентской интеграции — передача команд телефонии в браузерное приложение. Подключение происходит с помощью специально разработанных Javascript-библиотек. Соединение с Oktell устанавливается при загрузке Web-страницы. Следует отметить, что во время разговора Web-страницу нельзя перезагружать или закрывать, так как соединение будет потеряно, а значит и разговор будет тут же разорван. Для корректной работы используйте только одностраничные сайты.

Oktell.js

Oktell.js — Javascript-библиотека для встраивания функционала управления звонками в CRM-систему. Oktell.js использует WebSocket-протокол для соединения с сервером Oktell. Преимущество этого протокола заключается в создании постоянного соединения с сервером, которое позволяет без задержек получать события с сервера Oktell и выполнять определенные команды. Однако, WebSocket-протокол достаточно сложен для реализации и его методы не очень просты. Библиотека Oktell.js оборачивает внутри себя методы WebSocket-протокола, предоставляя простой функционал для управления.

Oktell.js позволяет управлять звонками, управлять конференцией, получать события из Oktell, получать доступ к данным. Работа с гарнитурой производится с помощью библиотеки Oktell-voice.js.

Полное описание вы можете прочитать по ссылке http://js.oktell.ru

Инструкция по первоначальной настройке по ссылке Oktell.js


Интеграция-007.png


Oktell-panel.js

Oktell-panel.js — представляет собой закреплённый в браузере интерфейс, в котором отображается список контактов, статусы сотрудников, а также оптимальный набор инструментов, позволяющих управлять вызовами и конференциями.

В отличие от Oktell.js является полностью готовым решением для управления звонками. Веб-панель позволяет также использовать гарнитуру с помощью библиотеки Oktell-voice.js.

Полное описание вы можете прочитать по ссылке http://js.oktell.ru/webpanel/

Инструкция по первоначальной настройке по ссылке Oktell-panel.js


Интеграция-012.png


Использование телефона

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

Гарнитура

Для подключения гарнитуры в браузере используется библиотека Oktell-voice.js, которая выполняет функцию софтфона, работающего на веб-странице. При работе используется технология передачи голоса WebRTC. Технология пока поддерживается только в браузерах Google Chrome.

Регистрация софтфона происходит при загрузке веб-страницы. Если параллельно открыть новую вкладку с тем же самым веб-приложением, Oktell зарегистрирует еще софтфон для пользователя по технологии SIP Forking (множественное подключение устройств под одной учетной записью). При закрытии вкладки происходит разрегистрация линии. Следует отметить, что если пользователь закрыл вкладку во время разговора, то соединение будет потеряно, а значит и разговор будет тут же разорван.

Если для навигации внутри CRM-системы используется полная перезагрузка страницы или открытие окон в новых вкладках, то в Oktell постоянно будет происходить регистрация/разрегистрация устройств, что повысит нагрузку на сервер в целом, так как это трудоемкая операция. При работе десяти пользователей, количество регистраций линий может превышать 800-1000 раз в день.

Решением является использование одностраничных сайтов. При переходе между вкладками, страница не должна перезагружаться. Предлагаем следующие решения:

Решение 1. На веб-странице используется фрейм, растянутый на 100% высоты и 100% ширины страницы. Внутри фрейма происходит переход по ссылкам, внешние веб-страницы полностью подгружаются на текущую. Таким образом переход между ссылками не перезагружает текущую страницу.

Решение 2. Сервер WebCRM присылает все необходимые данные, которые динамически отрисовываются веб-страницей. При переходе с одного раздела на другой, веб-страница запрашивает данные для отрисовки, которые при получении отображает в браузере. Перезагрузки самой веб-страницы не происходит. Примером такого решения является Oktell Web-Оператор.

Подробнее вы можете прочитать в статье Oktell_Web_Оператор.

IP-телефон

Чтобы использовать IP-телефон при работе в CRM-системе, необходимо в карте сети создать телефон с тем же логином, как и у сотрудника. Тогда при входе сотрудника, за ним автоматически будет закрепляться его устройство. Данный функционал доступен, начиная с версии Oktell 2.9.

Если телефоны имеют отличные логины от пользователей, то необходимо вручную закрепить устройство за сотрудником. Зайдите в Администрирование -> Карта сети -> Настройки телефона. Выберите сотрудника в поле Пользователь WebCRM.


Oktelljs-004.png


После авторизации менеджера в браузерном приложении, телефон автоматически закрепляется за сотрудником, и при звонке будет использоваться именно это устройство.

Софтфон

Также вы можете использовать любые другие приложения, выполняющие роль софтфона. Софтфон — приложение, которое устанавливается на компьютер и позволяет совершать/принимать звонки с использованием гарнитуры. Подключение софтфона производится аналогично настройке IP-телефона.

Рекомендуется использовать софтфон Oktell Miniphone. Данный софтфон имеет функционал автоподнятия трубки и представляет собой голосовой канал для оператора контакт-центра. Miniphone позволяет принимать звонки, однако совершить исходящий звонок c помощью интерфейса не получится. Такую возможность можно реализовать в браузерном приложении, например, с помощью oktell-panel.js.

Подробнее прочитать про Oktell Miniphone можно по ссылке http://oktell.ru/utilites/miniphone/

Пример интеграционного решения

Приведенный ниже пример не является готовым решением, а предоставлен как демонстрационный материал. Обратите внимание на взаимосвязанность процессов, зоны ответственности серверной и клиентской интеграции.

Входящий звонок

1. При входящем звонке Oktell обращается к Web-серверу с целью получения информации об абоненте, ответственном операторе и маршрутизирует звонок в соответствии с полученной информацией. Используется динамический метод “Получить информацию об абоненте по номеру телефона”.

2. Oktell маршрутизирует звонок, следуя логике сценариев. Как только сотрудник отвечает на звонок, сервер Oktell сообщает об успешной коммутации Web-серверу. Используется динамический метод “Занести информацию о звонке в WebCRM”. Если на входящий звонок никто не ответил, абоненту предлагается оставить голосовую почту, в базу WebCRM заносится информация о пропущенном звонке.

3. Oktell отправляет запрос на открытие карточки клиента в браузерное приложение. Используется динамический метод “Открыть карточку у пользователя”. Передаваемым параметром является идентификатор клиента. Заметим, что на этом этапе Oktell не может предоставить информации о клиенте, она хранится на сервере WebCRM.

4. Браузерное приложение, получив событие на открытие карточки, запрашивает информацию у WebCRM-сервера. Получив информацию, в браузере отображается карточка клиента.

5. По окончанию разговора, Oktell может снова обратиться к CRM-серверу с целью обновления информации о звонке. Заносится длительность разговора и ссылка на запись разговора.


Интеграция-013.png


Исходящий звонок

1. Пользователь открывает карточку клиента в браузерном приложении, нажимает кнопку “Позвонить”. Браузерное приложение отправляет на сервер Oktell запрос на совершение звонка по данному номеру телефона.

2. Oktell маршрутизирует звонок, следуя логике настроенных сценариев. После установления связи, Oktell отправляет на сервер WebCRM информацию о звонке — имя оператора, идентификатор клиента, было ли установлено соединение. Используется динамический метод “Занести информацию о звонке в WebCRM”. В свою очередь, WebCRM привязывает этот звонок к истории взаимодействия с клиентом.

3. По окончанию разговора, Oktell может снова обратиться к CRM-серверу с целью обновления информации о звонке. Заносится длительность разговора и ссылку на запись разговора. Также можно предусмотреть открытие карточки формирования новой активности в WebCRM.


Интеграция-014.png