Как мы имплантировали голосовые звонки в Мегаплан
В веб-технологиях мне очень нравится наличие стандартного фундамента HTML/JS/CSS, который позволяет легко использовать сторонние компоненты. Добавить кнопку «Позвонить», т.е. функциональность голосовой телефонии, в приложение для ПК — это долгая история с фреймворками, библиотеками, сообщениями, потоками и операционными системами. Добавить такую же кнопку в веб-приложение — вопрос одного элемента и одной библиотеки JavaScript. Под катом я расскажу историю интеграции одной такой кнопки. Мегаплан — это не только система управления задачами с дизайном от Лебедева, но и удобная система CRM. Хранение истории отношений с каждым клиентом в одном месте помогает сотрудникам ориентироваться во множестве ежедневных контактов. Эволюционно наш мозг приспособлен помнить примерно 150 «знакомых» лиц: таков предельный размер стаи, если мы действительно произошли от стайных животных. А ведь для многих сфер бизнеса 150 рабочих контактов в день — это обычное дело. На помощь приходят CRM-системы, которые служат надежным подспорьем в нелегком деле коммуникаций и призваны максимально разгрузить плавящийся мозг сотрудника.
Голосовое общение очень важно. Язык в принципе несовершенный инструмент выражения мыслей, да и эволюционно мы привыкли передавать через мимику и интонации кучу дополнительной информации, которая необходима для принятия решений, но исчезает при общении по электронной почте.
Обычно CRM-система интегрируется с АТС компании. Это долгий и сложный процесс, который требует наличия самой АТС, SIP-телефонов и хмурого админа в свитере, чтобы исправлять ситуации типа «ой, я все нажала, а оно что-то не звонит». Интеграция звонков непосредственно в веб-интерфейс позволяет минимизировать количество действий и сфокусироваться на важном — общении с клиентами и коллегами, решении поставленных задач.
Не менее важным фактором является запись звонков. Просто записать можно и с помощью АТС (если есть), а вот удобный интерфейс для доступа к записям — это действительно ценно. Часто с клиентами контактируют разные сотрудники, или из спячки выходит клиент, с которым последний раз общались несколько месяцев назад — в таких случаях удобный инструмент для изучения предыдущих звонков может стать решающим для заключения сделки.
Основная идея нашей платформы заключается в том, что звонки осуществляются не между двумя клиентами, а между клиентами и облаком. А в самом облаке в засаде сидит JavaScript, который по входящему звонку или вызову API делает всякое-разное: коммутирует звонки, звонит из облака наружу, распознает и синтезирует голос, записывает разговоры, обеспечивает возможность конференц-связи и выполняет еще миллион полезных функций.
Ознакомившись с документацией, команда Мегаплана приступила к разработке JavaScript-сценариев для облака VoxImplant и интеграции нашего Web SDK в свой продукт. Много времени заняла организация подключения к облаку по HTTP API: нужно было обеспечить автоматическое добавление и удаление как новых, так и существующих пользователей Мегаплана. Мы помогли интегрировать биллинг: через HTTP API основной аккаунт создает дочерние и работает с их балансом.
Любопытным заданием стало внедрение функциональности звонка с сайта. Наш Web SDK позволяет осуществлять голосовые и видеозвонки, а также передавать текст, но при этом не имеет никакого интерфейса, резонно отдавая его на откуп дизайнерам веб-приложений. И перед дизайнерами и разработчиками Мегаплана встала непростая задача: как органично вписать звонки в существующий интерфейс, чтобы пользователям было максимально удобно. Для решения этой задачи были составлены списки пользовательских сценариев, которые затем отсортировали по частотности. Был разработан механизм «главной вкладки»: непосредственно голосовой звонок идет только в одной вкладке, остальные отображают статус и передают ей управление.
Web SDK поддерживает работу как с WebRTC, так и Flash, поэтому на сайте был введен режим совместимости, если отсутствует поддержка WebRTC. Также были добавлены подсказки для пользователя, что нужно подтвердить использование микрофона в браузере.
Множество тестовых долларов было потрачено на отладку всей этой машинерии, благо у нас предусмотрен облачный отладчик для JavaScript-сценариев, позволяющий пошагово перемещаться по коду и изучать текущее состояние звонков.
В итоге получилось реализовать и полностью интегрировать в Мегаплан механизм звонков, который работает «из коробки» и не требует сложных настроек. Сотрудник может звонить клиентам и коллегам, как только его добавили в пользователи телефонии (что происходит автоматически для текущих сотрудников и с подтверждением для новых); искать контакты в один клик по множеству параметров (автоматический поиск клиента по номеру телефона при входящем звонке); работать с журналом звонков и прослушивать записи разговоров. При этом общение между сотрудниками абсолютно бесплатное.
Одна из ключевых фишек VoxImplant — возможность устанавливать единый исходящий номер для звонков — позволяет Мегаплану совершать все исходящие звонки с общего корпоративного номера или же назначать индивидуальные номера сотрудникам.
Сейчас Мегаплан работает над интеграцией входящих звонков с автоматизированными сценариями обработки и планирует активно развивать телефонию. Уже в ближайшее время мы увидим новые возможности, позволяющие современному бизнесу не воевать с интерфейсами и настройками, а сосредоточиться на решении задач и общении с клиентами.