Размер шрифта:
Представляем платформу для чат-ботов для Битрикс24
Play

Представляем платформу для чат-ботов для Битрикс24

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

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

Хочется сделать небольшое отступление для тех, кто еще слабо понимает, что такое чат-боты, зачем они нужны и зачем вообще заниматься их разработкой. В большей степени этот тренд формируется сейчас за рубежом – существует огромное количество ботов для Slack или Telegram, решающих самые разные задачи – от поиска авиабилетов, до управления небольшими командами разработчиков. И чтобы получить все это богатство пользователям даже не нужно выходить из предпочитаемого мессенджера.

В этом весь смысл – можно разработать мобильное приложение для вызова такси, делать его для всех мобильных платформ, затем поддерживать совместимость и т.д. А можно написать чатбота для Telegram, которому пользователь просто напишет в чате “трансфер до Шереметьево”, и бот подберет варианты и покажет их, либо сразу сформирует заказ. Пользователю не надо ставить отдельное приложение, не надо осваивать интерфейс, а разработчикам не надо с этим же интерфейсом париться.Есть огромное количество сценариев, в которых использование чатботов удобнее для пользователей. Не буду переписывать уже известные материалы, полагаю, вы и сами сможете их найти, когда заинтересуетесь темой. Но начать можно, например, со статьи про нашествие ботов

Тем, кто сомневается, что это направление разработки играет какую-то заметную роль на рынке, могу порекомендовать переводной материал про грядущий Messenger Bot Store от Facebook , который, судя по оценкам, полностью перевернет текущее положение вещей

Чатботы в Битрикс24

И здесь мы плавно подходим к тому, какое отношение этот тренд имеет к Битрикс24. Ведь что такое Slack, Telegram, What’sUp, Viber и т.д.? Это мессендеры, которые живут «сами по себе».

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

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

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

Давайте напишем такого бота прямо сейчас!

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

По отношению к материалам курса было сделано одно небольшое изменение – теперь есть возможность указать отдельный скрипт установки для приложений, которые используют только REST API и не встраиваются в интерфейс Б24. Это сделано для упрощения регистрации ботов в системе, хотя никто не запрещает пользоваться этим механизмом и для установки «обычных внешних приложений».

Вернемся к чатботам. Основное, что нам надо про них понимать – это то, что их логика обычно строится на реагировании на некие действия пользователя и системы. И у нас есть 4-е события, которые полностью покрывают необходимый спектр реакций:

Событие: ONAPPINSTALL Когда происходит: При установке приложения с чатботом Что получает обработчик:

Событие: ONIMBOTDELETE Когда происходит: После удаления приложения. Событие вызывается параллельно с OnAppUninstall Что получает обработчик:

ONIMBOTDELETEПосле удаления приложения. Событие вызывается параллельно с OnAppUninstall

  1. Зарегистрировать чатбота на портале пользователя при установке
  2. Вывести приветствие-справку от имени бота в момент приглашения бота в чат
  3. Научиться анализировать текст сообщения от пользователя и что-то отправлять в ответ, причем под анализом мы подразумеваем простой «разбор командной строки», а не лексический разбор естественного языка.

Метод: imbot.register Что делает: Регистрирует бот на портале Какие параметры принимает:

Очевидно, что в обработчике события ONAPPINSTALL мы вызовем метод imbot.register для того, чтобы добавить чатбота на текущий портал, затем в событии ONIMBOTJOINCHAT воспользуемся методом imbot.message.add для вывода справки о функционале бота, и в обработчике ONIMBOTMESSAGEADD будем отвечать пользователю при помощи того же imbot.message.add. Ничего сложного, согласитесь?

А на самом деле, вы поймете, что все еще проще, когда я добавлю, что вам не придется реализовывать в приложение полноценный OAuth 2.0, поскольку параметры, необходимые для авторизации приходят в обработчики в массиве $_REQUEST.

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

Небольшое замечание, коллеги: всем захочется взять готовый пример (я вот так и сделал - взял у Евгения Шеленкова), добавить парочку команд и поделиться этим прекрасным продуктом со всеми, опубликовав решение сразу в Приложениях24. Я вас очень прошу, давайте ответственно подойдем к разработке тиражных ботов и прежде, чем публиковать, научим их чему-то действительно интересному.

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

Идем в раздел левого меню «Приложения» – «Добавить приложение» и выбираем вариант «Для личного пользования».

Указываем название бота, а называться он у нас будет «Докладун», включаем опцию «Приложение использует только API», и даем приложению права доступа на «Создание и управление чат-ботами» (без этих прав приложение не сможет зарегистрировать бота), а также на «Задачи» и «Задачи (расширенные права)» (без этих прав приложение не сможет сформировать отчет по задачам, чтобы сообщить о них через бота пользователю).

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

Собственно, уже все. Чудо должно произойти практически сразу – в общем чате появится сообщение о том, что к порталу присоединился новый пользователь: чатбот по имени Докладун.

Мы можем открыть с ним чат, нажать на ссылку «Что горит?» и получить свой список просроченных задач.

Теперь о некоторых нюансах в коде.

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

Мы сохраняем этот ключ, вызывая saveParams в строке 106, а в дальнейшем проверяем, в частности, в строках 14-16 и 36-38.

Еще один нюанс, на который хотелось бы обратить внимание – это возможность при регистрации бота указать разные URL для обработки разных событий. Именно эти URL прописаны в примере в строках 74-78. В нашем случае мы отдельные адреса не используем, но возможность такая есть.

Саму логику ответов чатбота мы вынесли в метод getAnswer , который получает всего два параметра – целиком весь текст, который напечатал в чат пользователь, и идентификатор этого самого пользователя.

Метод исключительно простой, реагирует он на одну единственную команду “что горит”, получает просроченные задачи текущего пользователя вызывая метод REST API task.item.list (поэтому, если захотите этого чатбота на своем портале потестировать - не забудьте дать права приложению на задачи!). Отчет формируется в виде списка ссылок с разделителем. Здесь можно использовать все богатство возможностей CHAT API, подробности которого описаны в статье

Обратите внимание на хитрое форматирование с тэгом [send] , при помощи которого мы формируем команду для бота, а пользователю не приходится ничего набирать. Есть два варианта - мы можем сразу отослать команду по клику, и мы можем написать за пользователя команду и предложить ему дописать какие-то параметры.

[send=текст]название кнопки[/send] - мгновенно отправляет «текст» боту [put=подсказка]название кнопки[/put] - вставляет «подсказка» в поле ввода за пользователя, далее, пользователь просто дописывает, что необходимо и может отправлять сообщение боту.

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

Помимо этих тэгов, вы можете использовать для оформления сообщений известные всем BB-коды B, U, I, S и BR .

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

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

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

📎📎📎📎📎📎📎📎📎📎