{% note warning "Мы еще обновляем эту страницу" %}
Тут может не хватать некоторых данных — дополним в ближайшее время
{% endnote %}
{% if build == 'dev' %}
{% note alert "TO-DO не выгружается на prod" %}
- нужны правки под стандарт написания
- не прописаны ссылки на ещё не созданные страницы
- из файла Сергея: это работает во внутреннем мессенджере, поддерживает открытые линии, вот такие полезные сценарии
{% endnote %}
{% endif %}
{% note tip " " %}
Бот-платформа Битрикс24 — новый формат приложений, основанных на чатах в веб-мессенджере.
{% endnote %}
Быстрый переход: все методы и события
Что такое чат-боты, зачем они нужны и зачем вообще заниматься их разработкой?
{% note tip " " %}
Чат-бот — это виртуальный собеседник, программа, которая создана для имитации поведения человека при общении с одним или несколькими собеседниками.
{% endnote %}
В большей степени, этот тренд формируется сейчас за рубежом — существует огромное количество ботов для Slack или Telegram, решающих самые разные задачи — от поиска авиабилетов до управления небольшими командами разработчиков. И чтобы получить все это богатство, пользователям даже не нужно выходить из предпочитаемого мессенджера.
Что могут делать чат-боты?
- Замена рутины — позволяет выполнять определенные функции, не привлекая людей, а работа будет выполнена моментально и безупречно;
- Поиск и агрегация новостей, аналитики, данных (Data-Driven Collaboration), данные доступны в месте принятия решений — мессенджерах и всем участникам, которым они нужны;
- E-commerce — для спонтанных покупок без долгого поиска, mobile ecommerce + visual search + chatbots, для общения с клиентами;
- Первая линия работы с клиентами, помощники, консультанты, типовые вопросы, телефония;
- Just for Fun — просто для развлечения.
А в Битрикс24 чаты (как индивидуальные, так и групповые) — это часть намного более сложной экосистемы, один из основных каналов коммуникации пользователей, полностью интегрированный с другими бизнес-инструментами. И в этом контексте использование чат-ботов открывает значительно более интересные перспективы для бизнес-пользователей, поскольку Битрикс24 (в браузере, десктоп- и мобильном приложениях) уже сейчас — основное рабочее место для большого количества компаний.
Очень просто написать чат-бота, который, например, будет сообщать в чат нужным пользователям срочную информацию о показателях внутренней учетной системы, интегрированной с Битрикс24. Можно написать чат-бота, который будет помогать курьерам удобно обрабатывать заказы на основании сделок CRM Битрикс24 на мобильном устройстве прямо в мессенджере — и не придется писать для них отдельное мобильное приложение.
Разработка чат-бота в Битрикс24 — это очень перспективный вариант быстрой и удобной автоматизации специфических бизнес-процессов. Удобной, поскольку, как мы уже выяснили, получение информации и управление через мессенджер — это то, что сейчас предпочитает массовый пользователь. А быстрой — потому что разработка чат-бота для Битрикс24 это довольно простой процесс.
{% note info %}
Для более четкого понимания, что могут делать чат-боты на платформе Битрикс24, можно посмотреть видео-примеры возможностей уже готовых чат-ботов тут.
{% endnote %}
{% note warning %}
Существует ограничение на создание чат-ботов в рамках rest-приложений: не более 5 на одно приложение.
{% endnote %}
Чат-бот:
- это специальный пользователь в системе, с которым можно коммуницировать в чате, но под ним никто не может авторизоваться;
- поддерживает обработку slash-команд;
- позволяет использовать свои клавиатуры для ответов, превратив простой чат в терминал.
Slash-команды позволяют быстро создавать запросы для вывода или получения какой-либо информации, форматировать сообщения.
{% note info %}
Подробнее о работе с командами можно прочитать здесь.
{% endnote %}
Возможности клавиатур довольно широкие.
-
EchoBot
Постраничная навигация, кнопки при вызове команды «Помощь»
-
Марта
Просто напишите марте «Поиграй со мной!». Клавиатура используется как игровое поле:
-
Giphy
Кнопка Еще позволяет без повторного введения поискового слова просматривать другие картинки на эту же тему:
{% note info %}
Подробнее о работе с клавиатурами можно прочитать здесь.
{% endnote %}
Чат-боты могут общаться в чате почти как живые люди. Также они могут напоминать о различных событиях (о текущих задачах, встречах) или давать справочную информацию. Кроме того, что чат-боты могут писать в чаты, они могут еще создавать такие чаты и автоматически приглашать туда людей, например для обсуждения какой либо задачи.
{% note info %}
Подробнее о работе с чатами можно прочитать здесь.
{% endnote %}
Уведомления от чат-бота могут быть полезны и информативны. Они могут состоять из нескольких блоков различной информации из внешних систем.
{% note info %}
Подробнее о работе с уведомлениями можно прочитать здесь.
{% endnote %}
Чат-бот публикует свои сообщения в чат через Rest API, получает ответы и команды пользователя через События Rest API (POST запрос).
Схема жизни чат-бота выглядит так:
Основное, что нам надо понимать про чат-боты — это то, что их логика обычно строится на реагировании на некие действия пользователя и системы.
И у нас есть 6 событий, которые полностью покрывают необходимый спектр реакций:
- ONAPPINSTALL — событие на установку приложения с чат-ботом.
- ONAPPUPDATE — событие на обновление приложения.
- ONIMJOINCHAT — событие после приглашения чат-бота «к разговору», т.е. либо при вызове его пользователем в индивидуальном чате, либо при подключении его к групповому чату.
- ONIMBOTMESSAGEADD — событие после отправки сообщения от пользователя к чат-боту (в групповом чате, при явном упоминании бота).
- ONIMCOMMANDADD — событие после отправки команды от пользователя к чат-боту (в персональной переписке с ним, или в групповом чате (если команда глобальная, то он может не участвовать в чате)).
- ONIMBOTDELETE — событие после удаления приложения. Событие вызывается параллельно с OnAppUninstall.
Иными словами, мы должны написать обработчики указанных событий, чтобы реализовать простую логику:
- Зарегистрировать чат-бота на портале пользователя при установке.
- Вывести приветствие-справку от имени чат-бота в момент приглашения его в чат.
- Научиться анализировать текст сообщения от пользователя и что-то отправлять в ответ, причем под анализом подразумевается простой «разбор командной строки», а не лексический разбор естественного языка.
И для этого у нас есть набор простых методов, добавленных в REST API. Нам для старта потребуются только два:
- imbot.register – регистрация чат-бота.
- imbot.message.add – отправка сообщения от чат-бота.
Очевидно, что в обработчике события ONAPPINSTALL мы вызовем метод imbot.register для того, чтобы добавить чат-бота на текущий портал, а затем в событии ONIMJOINCHAT воспользуемся методом imbot.message.add для вывода справки о функционале чат-бота, и в обработчике ONIMBOTMESSAGEADD будем отвечать пользователю при помощи того же imbot.message.add. Ничего сложного, согласитесь?
А также вам не придется реализовывать в приложении полноценный OAuth 2.0, поскольку параметры, необходимые для авторизации, приходят в обработчики в массиве $_REQUEST.
{% note info %}
Полный список методов и событий Bot API можно посмотреть здесь.
{% endnote %}
Для более четкого понимания, что могут делать чат-боты на платформе Битрикс24, приведем видео-примеры возможностей уже готовых чат-ботов. Типы чат-ботов приведены условно, вы можете создать чат-бота, который может сочетать 2 или 3 типа.
- Марта («1С-Битрикс») — ваш личный помощник. Она помогает искать ответы на вопросы, напоминает о встречах, с ней можно поиграть в «Крестики-нолики», и она готова просто поговорить.
- Реквизиты контрагента («1С-Битрикс») — ищет по базе ФНС и выдает необходимую информацию.
- Поиск24 (студия «G-Tech») — ваш личный поисковый робот. Ищет в Яндексе и выводит 5 самых точных ответов.
- Support Bot («1С-Битрикс») — внутренний чат-бот для быстрого доступа к тикет-системе «Битрикс24».
- OCR Bot (First Open Systems) — распознает сканы любых документов и сохраняет их в RTF.
- Переводчик (PWEB) — помогает переводить тексты с одного языка на другой. Поддерживает перевод на 63 языка.
- ЗаМКАДыш (ИА «Инсайд») — осуществляет поиск расстояния от МКАД до необходимого адреса. Поиск расстояния рассчитывается как по прямой, так и по автодорогам.
- Чат-бот для Открытых линий («1С-Битрикс») сможет выступить помощником при первом контакте с пользователем или помогать вам посреди диалога.
- Андрейка (PWEB) — мастер на анекдоты. Поддерживает диалог анекдотами и смешными цитатами.
- Giphy («1С-Битрикс») — поиск по большой библиотеке анимированных GIF-файлов, что позволяет легко найти необходимое изображение и поделиться им с коллегами.
Полный список чат-ботов для платформы Битрикс24 можно увидеть в одноименном разделе Магазина приложений Битрикс24.
{% list tabs %}
-
Методы
#| || Метод | Описание || || im.revision.get | Возвращает информацию о ревизиях API || || imbot.register | Регистрирует нового чат-бота || || imbot.unregister | Удаляет зарегистрированного бота || || imbot.update | Обновляет данные чат-бота || || imbot.bot.list | Возвращает список доступных чат-ботов || |#
-
События
#| || Событие | Вызывается || || ONAPPINSTALL | При установке приложения || || ONAPPUPDATE | При обновлении приложения || |#
{% endlist %}
{% list tabs %}
-
Методы
#| || Метод | Описание || || imbot.chat.add | Создает новый чат || || imbot.chat.get | Возвращает информацию о чате || || imbot.chat.leave | Выполняет выход чат-бота из указанного чата || || imbot.chat.setOwner | Устанавливает нового владельца чата || || imbot.chat.updateAvatar | Обновляет аватар чата || || imbot.chat.updateColor | Обновляет цвет чата || || imbot.chat.updateTitle | Обновляет название чата || || imbot.chat.user.add | Добавляет пользователя в чат || || imbot.chat.user.list | Возвращает список пользователей в чате || || imbot.chat.user.delete | Удаляет пользователя из чата || || imbot.dialog.get | Возвращает информацию о диалоге || |#
-
События
#| || Событие | Вызывается || || ONIMBOTDELETE | При удалении чат-бота || || ONIMBOTJOINCHAT | При получении информации чат-ботом о включении его в чат (или личную переписку) || |#
{% endlist %}
{% list tabs %}
-
Методы
#| || Метод | Описание || || imbot.command.register | Регистрирует новую команду для чат-бота || || imbot.command.unregister | Удаляет зарегистрированную команду чат-бота || || imbot.command.update | Обновляет информацию о зарегистрированной команде чат-бота || || imbot.command.answer | Отправляет ответ на команду чат-бота || |#
-
События
#| || Событие | Вызывается || || ONIMCOMMANDADD | При добавлении новой команды чат-ботом || |#
{% endlist %}
{% list tabs %}
-
Методы
#| || Метод | Описание || || imbot.message.add | Добавляет новое сообщение от чат-бота || || imbot.message.update | Обновляет существующее сообщение от чат-бота || || imbot.message.delete | Удаляет сообщение от чат-бота || || imbot.message.like | Ставит "лайк" на сообщение от чат-бота || || imbot.chat.sendTyping | Отправляет индикатор набора текста в чат || |#
-
События
#| || Событие | Вызывается || || ONIMBOTMESSAGEADD | При отправке сообщения|| || ONIMBOTMESSAGEUPDATE | При обновлении сообщения чат-бота || || ONIMBOTMESSAGEDELETE | При удалении сообщения чат-бота || |#
{% endlist %}
[*keyboard]: Клавиатура — это набор кнопок, каждая кнопка может состоять из определённых ключей.