Как мы создали «Открытые линии» в «Битрикс24»

Сегодня пользователи хотят общаться с компаниями не по электронной почте и телефону, а через любимые мессенджеры и аккаунты в социальных сетях. В ответ социальные сети и мессенджеры начали внедрять новый функционал. ВКонтакте и Facebook выкатили личные сообщения для групп и публичных страниц. Telegram с его каналами и ботами превратился в платформу для публикаций и взаимодействия с аудиторией. В Viber появились публичные аккаунты. Чтобы получить максимальный профит бизнесу нужно пользоваться всеми возможностями всех социальных площадок. Так родились «Открытые линии» — новый инструмент для взаимодействия клиентов «Битрикс24» с конечными пользователями. Схема работы «Открытых линий» несложная:
  1. Мы получаем все пользовательские сообщения из мессенджеров и социальных сетей
  2. Маршрутизируем их с помощью встроенного в «Битрикс24» мессенджера. Распределяем по операторам
  3. Клиенты отвечают на сообщения, а мы маршрутизируем ответы обратно менеджерам компаний, работающих на «Битрикс24»

Главная задачи разработки в этом проекте — максимально упростить подключение каналов коммуникаций. Чтобы это мог сделать любой среднестатистический менеджер. Для этого пришлось договариваться с разработчиками всех интегрируемых соцсетей и мессенджеров — всё официально, никаких ухищрений. А чтобы обеспечить стабильную работу в облачной и коробочной версиях «Битрикс24», мы создали централизованный сервер коннекторов. Он обрабатывает все потоки информации.

ВКонтакте

Следующий шаг мы проходили в тесном дуэте с разработчиками ВКонтакте. Нам удалось выстроить оптимальную схему работы с сервисом — теперь мы делали за пользователей кучу технических действий для подключения. Теперь этот API ВКонтакте могут использовать и другие сервисы. Как теперь выглядит подключение «Открытых линий» для обычного пользователя:

  • Авторизуетесь в VK.
  • В разделе подключения выбираете нужную группу.
  • Подтверждаете.

Выглядит просто, но лишь потому, что мы спрятали под капот всю «кухню» — порядка десяти операций, вместе с запросами на получение разных ключей.

Skype

А вот с Microsoft было сложно. К сожалению, они очень фокусируются на «олдскульных» айтишниках. Подключение к их бот-фреймворку вышло сложным. Сейчас для этого нужно пройти хоррор-квест:

  • Установить приложение.
  • Завести аккаунт.
  • В Skype взять один ключ.
  • В «Битрикс 24» — другой.
  • Подключить.

Viber

Эту интеграцию мы делали одной из первых. Постоянно общались с разработчиками мессенджера. И вообще держали руку «на пульсе». Сейчас «Открытые линии» можно подключить из «Битрикс24» или из мобильного приложения Viber.

Telegram

У Telegram простое API — подключение получилось простым. И несмотря на все блокировки, сейчас все работает.

Instagram

Интеграция с Instagram — одна из самых популярных среди наших клиентов. Но из-за скандала с распространением личных данных Instagram сильно урезал возможности API. Нам приходится самостоятельно раз в 15 минут «опрашивать» его и определять новые сообщения. Причём API разрешает получать не сами сообщения, а только комментарии к постам. Также есть ограничение на количество ответов в час. Внешние системы — это живые организмы, в которых постоянно что-то меняется. В API соцсетей и мессенджеров вносятся какие-то изменения, часто возникают какие-то ошибки с «той» стороны. Пример. Во ВКонтакте сломалась кодировка в названиях товаров, эту проблему они решали в течение года. Instagram просто никого не предупредил об отключении ряда функций API — мы постфактум узнали о том, что какие-то возможности перестали работать. Нам пришлось искать решения в авральном режиме. После успешной интеграции соцсети или мессенджера расслабляться нельзя. Нам постоянно приходится отслеживать корректность обработки входящих сообщений.

Сервер коннекторов

В основе архитектуры «Открытых линий» лежит сервер коннекторов. Это единая точка входа в схеме обмена сообщениями между внутренним мессенджером «Битрикс24» и внешними мессенджерами и соцсетями. В «Открытых линиях» существует три вида входящих каналов:

  • Внешние, которые работают через сервер очередей.
  • Онлайн-чат, который работает на клиентском портале. Код виджета мы берём с портала клиента. И речи о недоставке сообщений в данном случае не идёт — если портал «лежит», виджет чата просто не будет отображаться.
  • Нетворк — канал, который позволяет создавать «Открытую линию» и находить среди других порталов «Битрикс24», в том числе коробочных. Это особенно актуально для наших партнеров, которые хотят организовывать чаты поддержки для своих компаний-клиентов. Такие чаты работают через бот-платформы «Битрикс24» и не используют сервер коннекторов — все операции происходят внутри нашей платформы.

Во всех «Открытых линиях» и коннекторах подключения, есть важный нюанс. Предполагается, что первым всегда проявляет инициативу клиент. Мы можем только отвечать на сообщения пользователей. Но не писать им первыми. Сервер находится в облаке и доступен 24/7. Он принимает сообщения пользователей без праздников и выходных. У клиента с коробочной версией «Битрикс24» портал может быть временно недоступен: упал сервер или проблемы с интернетом. В таких случаях сообщения от пользователей могли теряться. Эту проблему решает облачный сервер коннекторов. Во-первых, он маршрутизирует сообщения непосредственно порталам-адресатам. Если какой-то портал недоступен, сервер коннекторов в течение суток накапливает сообщения для этого портала. И пытается доставить их на портал. Мы посчитали — 24 часов достаточно, чтобы исправить любые неполадки и перезапустить портал коробочной версии. Мы сделали сильный акцент на том, что порядок сообщений не поменяется. Весь контент будет доставлен именно в том порядке, в котором его писали. Пользовательские сообщения, пусть и с задержкой, но будут доставлены. У всех внешних систем свои форматы сообщений, со своими наборами данных. Где-то можно обмениваться эмодзи, картинками и прочими файлами. А где-то доступен лишь текст с очень ограниченным набором возможностей. Сервер коннекторов:

  • Приводит все входящие сообщения к универсальному формату, который понимают порталы.
  • Шифрует данные и подписывает их лицензионным ключом.
  • Передаёт их на порталы.

Шифрование нужно не только для защиты самой переписки, но и для подтверждения достоверности сторон. После унификации формата сообщения попадают в очередь. Из нее они разлетаются по адресатам. Соцсети могут генерировать сообщения с внушительной частотой, но не все клиентские порталы могут похвастаться мощным «железом». На той же машине могут параллельно выполняться другие задачи. И если сообщения будут идти «валом» — есть вероятность дублирования сессий. Чтобы этого не происходило, сообщения передаются каждому порталу в один поток, пакетами и с небольшой задержкой. Сейчас очередь крутится на сервере коннекторов, но у нас уже готов отдельный масштабируемый сервер. Он поддерживает очереди разных типов:

  1. Параллельная в несколько потоков.
  2. Последовательная в один поток.

Доставка может быть:

  1. Гарантированная. Много попыток.
  2. Негарантированная. Одна попытка.

В скором времени мы переведём на этот сервер коннекторы социальных сетей, бот-платформ и мессенджеров. Ура!

Настройка и обработка сообщений

Мы постарались сделать подключение и настройку «Открытых линий» как можно проще. «Битрикс24» используют самые разные компании, от крупных представителей IT-бизнеса до индивидуальных предпринимателей, торгующих автозапчастями. Даже айтишнику, занимающемуся администрированием, проще сделать несколько кликов. А не изучать документацию, прописывать ключи и конфиги. В «Открытых линиях» есть ряд настроек очереди операторов, рабочего времени, работы с CRM, различных чат-трекеров и форм. Система учитывает, начался ли рабочий день у конкретного оператора, находится ли он онлайн или офлайн, и ряд других параметров. Для обработки сообщений операторы используют либо приложение «Битрикс24», либо встроенный мессенджер. Там есть дополнительные инструменты управления: принять, пропустить, отклонить, завершить. После завершения переписки с пользователем система может автоматически попросить его поставить оценку.

Данная востребованная задача была реализована нами в 4х абсолютно разных вариантах (через 2 разных сервиса для облака и через 2 разных сервиса для коробки). Фактически, последние 3 месяца мы 90% рабочего времени занимались разработкой различных чат-ботов для Битрикс24, интеграцией в Битрикс24 чат-бот сервисов и мессенджеров.

По запросам наших клиентов мы исследовали возможность интеграции Битрикс24 и WhatsApp посредством нескольких сервисов, однако функционал, позволяющий нам реализовать стоящие перед нами задачи оказался только у российского сервиса https://chat2desk.com и у сервиса, разработанного зарубежной компанией https://www.comparaonline.com. ComparaOnline предоставляет свой сервис лишь узкому кругу своих корпоративных партнеров и компаниям, входящим в их холдинг, поэтому в данной статье речь пойдет, в основном, о сервисе Chat2desk. Другие опробованные нами сервисы я не буду здесь упоминать, потому что похвалить мне их не за что, а публично ругать их я не хочу.

Почему для интеграции облачной и коробочной Битрикс24 с WhatsApp через Chat2desk нам понадобилось написать абсолютно разный код?

Дело в том, что API Битрикс24 для облака не позволяет создать свой кастомный коннектор нового мессенджера для открытых линий.

Для интеграции в облаке мы разработали чат-бота, который сидит и слушает входящие сообщения из различных мессенджеров (на самом деле не только WhatsApp, но и Viber, Instagram, Facebook, ВК, Telegram, Skype), когда чат-бот получает входящее сообщение, он создает отдельный чат для каждого отдельного клиента
(отправителя сообщения) и приглашает в этот чат так же ответственного менеджера – пользователя Битрикс24.

Это, кстати, является важным преимуществом нашего приложения перед другими, которые добавляют сообщения, пришедшие из WhatsApp в один единый чат с операторами на стороне Битрикс24 с пометкой, от какого клиента поступило сообщение.

После этого пользователь Битрикс24 может общаться в данном чате с написавшим ему клиентом, при этом, если данный клиент написал в первый раз, в системе создается лид
для него.

В чате есть возможность обмениваться текстовыми сообщениями, картинками, файлами, местоположением
.

По желанию клиента существует возможность привязывать чат не только к определенному лиду, но и к сделке и/или контакту
:

Данное приложение для облака выкуплено у нас компанией Chat2desk и опубликовано в Маркетплейс Битрикс24: https://www.bitrix24.ru/apps/?app=chat2desk.integration Приложение работает в любой редакции облачного Битрикс24, начиная с редакции “Проект”.

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

Это позволяет работать с обращениями, пришедшими из WhatsApp (и из других мессенджеров, которые можно подключить в сервисе Chat2desk) абсолютно таким же образом, как со стандартными открытыми линиями Битрикс24
.

Кроме того, если для облачной версии Битрикс24 мы пока не реализовали возможность инициации WhatsApp-чата со стороны Битрикс24. В коробочной версии данная возможность уже реализована – мы добавили возможность написать клиенту в WhatsApp прямо из карточки CRM
:

Появится ли данный модуль – коннектор сервиса Chat2Desk для коробочной версии Битрикс24  в Маркетплейс Битрикс или будет доступен только отдельным клиентам Студии Юлии Бедросовой, пока не решено.

В процессе разработки мы открыли для себя так же множество технических “фишечек” и наткнулись на множество подводных камней как со стороны REST-API Битрикс24, так и со стороны Bitrix Framework для коробочной версии Битрикс24, о них расскажет мой коллега Александр Змеевский в одном из будущих постов нашего блога.

Об авторе:

Инженер-программист по образованию, web-программист по призванию, Битрикс-программист по любви и 1с-программист по стечению обстоятельств, руководитель команды web-разработчиков, внедренец 1С-Битрикс и Битрикс24, основатель одноименной студии.

Подпишитесь на рассылку!

Комментарии

Подписаться на рассылку:

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации