Как мы имплантировали голосовые звонки в Мегаплан

87a39b4e3ef346b39cbb52f230397642.pngВ веб-технологиях мне очень нравится наличие стандартного фундамента HTML/JS/CSS, который позволяет легко использовать сторонние компоненты. Добавить кнопку «Позвонить», т.е. функциональность голосовой телефонии, в приложение для ПК — это долгая история с фреймворками, библиотеками, сообщениями, потоками и операционными системами. Добавить такую же кнопку в веб-приложение — вопрос одного элемента и одной библиотеки JavaScript. Под катом я расскажу историю интеграции одной такой кнопки. b7b58dfc0d07451283a656bbdaddf048.pngМегаплан — это не только система управления задачами с дизайном от Лебедева, но и удобная система CRM. Хранение истории отношений с каждым клиентом в одном месте помогает сотрудникам ориентироваться во множестве ежедневных контактов. Эволюционно наш мозг приспособлен помнить примерно 150 «знакомых» лиц: таков предельный размер стаи, если мы действительно произошли от стайных животных. А ведь для многих сфер бизнеса 150 рабочих контактов в день — это обычное дело. На помощь приходят CRM-системы, которые служат надежным подспорьем в нелегком деле коммуникаций и призваны максимально разгрузить плавящийся мозг сотрудника.

c17f1962d00145eb9e8c1b5dfe594c61.pngГолосовое общение очень важно. Язык в принципе несовершенный инструмент выражения мыслей, да и эволюционно мы привыкли передавать через мимику и интонации кучу дополнительной информации, которая необходима для принятия решений, но исчезает при общении по электронной почте.

Обычно CRM-система интегрируется с АТС компании. Это долгий и сложный процесс, который требует наличия самой АТС, SIP-телефонов и хмурого админа в свитере, чтобы исправлять ситуации типа «ой, я все нажала, а оно что-то не звонит». Интеграция звонков непосредственно в веб-интерфейс позволяет минимизировать количество действий и сфокусироваться на важном — общении с клиентами и коллегами, решении поставленных задач.

Не менее важным фактором является запись звонков. Просто записать можно и с помощью АТС (если есть), а вот удобный интерфейс для доступа к записям — это действительно ценно. Часто с клиентами контактируют разные сотрудники, или из спячки выходит клиент, с которым последний раз общались несколько месяцев назад — в таких случаях удобный инструмент для изучения предыдущих звонков может стать решающим для заключения сделки.

fcd3ec4c89554242a3bfc9489a3b3877.pngОсновная идея нашей платформы заключается в том, что звонки осуществляются не между двумя клиентами, а между клиентами и облаком. А в самом облаке в засаде сидит JavaScript, который по входящему звонку или вызову API делает всякое-разное: коммутирует звонки, звонит из облака наружу, распознает и синтезирует голос, записывает разговоры, обеспечивает возможность конференц-связи и выполняет еще миллион полезных функций.

Ознакомившись с документацией, команда Мегаплана приступила к разработке JavaScript-сценариев для облака VoxImplant и интеграции нашего Web SDK в свой продукт. Много времени заняла организация подключения к облаку по HTTP API: нужно было обеспечить автоматическое добавление и удаление как новых, так и существующих пользователей Мегаплана. Мы помогли интегрировать биллинг: через HTTP API основной аккаунт создает дочерние и работает с их балансом.

7b3d6706939a46b796a4a2d9d977b5ac.pngЛюбопытным заданием стало внедрение функциональности звонка с сайта. Наш Web SDK позволяет осуществлять голосовые и видеозвонки, а также передавать текст, но при этом не имеет никакого интерфейса, резонно отдавая его на откуп дизайнерам веб-приложений. И перед дизайнерами и разработчиками Мегаплана встала непростая задача: как органично вписать звонки в существующий интерфейс, чтобы пользователям было максимально удобно. Для решения этой задачи были составлены списки пользовательских сценариев, которые затем отсортировали по частотности. Был разработан механизм «главной вкладки»: непосредственно голосовой звонок идет только в одной вкладке, остальные отображают статус и передают ей управление.

Web SDK поддерживает работу как с WebRTC, так и Flash, поэтому на сайте был введен режим совместимости, если отсутствует поддержка WebRTC. Также были добавлены подсказки для пользователя, что нужно подтвердить использование микрофона в браузере.

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

09cfb8e01bad4b9d8cd901ef90e69a23.png

В итоге получилось реализовать и полностью интегрировать в Мегаплан механизм звонков, который работает «из коробки» и не требует сложных настроек. Сотрудник может звонить клиентам и коллегам, как только его добавили в пользователи телефонии (что происходит автоматически для текущих сотрудников и с подтверждением для новых); искать контакты в один клик по множеству параметров (автоматический поиск клиента по номеру телефона при входящем звонке); работать с журналом звонков и прослушивать записи разговоров. При этом общение между сотрудниками абсолютно бесплатное.

Одна из ключевых фишек VoxImplant — возможность устанавливать единый исходящий номер для звонков — позволяет Мегаплану совершать все исходящие звонки с общего корпоративного номера или же назначать индивидуальные номера сотрудникам.

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

© Habrahabr.ru