Внешние интеграции с Hotline Telegram CRM

Данная статья рассказывает о способе расширения функциональности Hotline Telegram CRM с помощью вашего собственного вспомогательного бота (так называемого бота-помощника) работающего на стороне вашей топик-группы с использованием Hotline Topics API.
С помощью бота-помощника возможно значительно повысить удобство и производительность работы с системой:

  • реализовать собственные команды на стороне топик группы
  • получать информацию о пользователе из внешних систем
  • создавать сделки или вызывать произвольные команды во внешних системах
  • подключить в группу AI бота для взаимодействия с пользователями
Также в Hotline есть другие подходы к расширению функциональности, о которых рассказано в отдельных статьях:

Принцип работы бота-помощника
  • Вы создаете нового Telegram бота через @botfather, программируете его поведение
  • Бот добавляется в бекенд-группу, откуда может обрабатывать предназначенные только для него команды, реагировать на заданные события в группе или дополнять существующие стандартные команды
  • Программная часть бота взаимодействует с Topics API (сообщает адрес топика и получает доступную информацию о пользователе с которым ведется диалог)
  • При подключении к Hotline пользовательского аккаунта, бот может видеть и пользовательские сообщения (соответствующий режим трансляции через аккаунт подключается по запросу в службу поддержки)
  • Реакция Hotline на кастомные команды отключается через параметр @CUSTOM_COMMANDS@ в установочном боте
Реализовать бота-помощника можно самостоятельно или запросить платную разработку в нашей службе поддержки. У нашей команды уже накоплен ряд типовых решений, которые могут быть быстро адаптированы под разные задачи.
В качестве конструктора для бота-помощника нами часто используется платформа N8N. Бесплатная версия данной платформы достаточно функциональна и не ограничена по количеству вызовов, система может быть установлена на свой сервер, позволяет наглядно представлять алгоритм работы бота, имеет множество готовых связок по API с внешними системами.
Особенные настройки бота-помощника в @botfather
Чтобы добавленный в топик-группу бот-помощник мог видеть все сообщения операторов системы ему необходимо указать специальные параметры в @botfather:

  • Отключить Privacy Mode в разделе Group Privacy (по умолчанию он активен)
  • Разрешить добавление бота в группы параметром Allow Groups
Кейс 1: Получение дополнительной информации о пользователе из внешних систем
Бот-помощник может следить за сообщениями, которые указывают операторы на стороне бекенд-группы и дополнять вывод команды /info дополнительной информацией о пользователе, либо реагировать на любую другую кастомную команду.
В случае ввода нужной команды в топике для диалога с пользователем, бот-помощник может обратиться к Topics API системы Hotline, сообщить адрес топика и получить информацию о пользователе в формате JSON (user_id, language_code, first_name, last_name, username, phone).
Далее бот-помощник может запросить во внешней системе дополнительную информацию о пользователе по его user_id и вывести ее в топике для оператора системы.
Например, через расширение команды /info у нас в суппорте реализован быстрый показ списка активных инстансов пользователя и наличия у него платной подписки.
Подобный принцип также может быть использован для получения любой другой доступной информации о пользователе, например:

  • списка сделок пользователя по его user_id
  • текущего баланса, подключенных тарифов пользователя
  • списка общих групп с пользователем
Кейс 2: Создание сделки или контакта с пользователем во внешней системе

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

Подобные задачи могут решаются внешней системой, при этом Hotline может выступать в роли супер-удобного нативного интерфейса для общения с Telegram пользователями (быть своего рода фронт-офисом).
Пример интеграции с Notion

В службе поддержки Hotline мы используем в качестве системы для хранения и структурирования клиентской базы Notion (notion.so).
При отправке команды /notion на стороне топик группы происходит запись данных о клиенте в базу данных Notion и возвращается ссылка на созданную карточку клиента. Кликнув по ссылке можно быстро перейти в карточку клиента, заполнить теги для клиента, поставить ему приоритет.
Notion умеет удобно представлять клиентскую базу в виде таблицы, доски с карточками, фильтрами, сортировками. При необходимости можно на стороне Notion отфильтровать нужных пользователей, получить список их идентификаторов и, например, использовать затем в рассылке.
Вызвав команду /notion в топике пользователя повторно, бот-помощник дополнительно к ссылке на карточку возвращает список заданных тегов для пользователя.
Подобная интеграция через API возможна с множеством других систем: Google Sheets, AMO, Bitrix, SalesForce и др.
Кейс 3: Быстрое подключение тарифа во внешней системе пользователю
Если пользователи с которыми идет общение через Hotline также являются пользователями какой либо системы, то оператор Hotline может используя бота-помощника активировать нужные методы.
Пример 1: После согласования и получения оплаты от пользователя через Хотлайн можно отправлять команду типа /activate t1 m6, которая будет активировать условный Тариф 1 на 6 месяцев для данного пользователя и отправит ему об этом уведомление. Аналогично реализуется команда /deactivate.
Пример 2: Командой /admin запускается администраторский режим во внешнем боте для управления настройками соответствующего пользователя, обратившегося в службу поддержки.
Кейс 4: Создание связки с пользователем во внешней системе
Если необходимо установить связь между пользователем Telegram по его user_id с соответствующим идентификатором учетной записи во внешней системе, то возможна реализация команды типа /link N005
Подобная команда может привязывать пользователя (или нескольких пользователей) к учетной записи с номером N005. После установления связи с пользователем команда /info (Кейс 1) может быть дополнена выводом информации про его учетную запись из внешней системы.
Такое часто полезно при реализации корпоративной службы поддержки, когда от одного клиента в службу поддержки могут писать несколько пользователей.
Кейс 5: Cохранение переписки из топик-группы во внешней системе
Для того чтобы бот-помощник видел сообщения от пользователей и мог их обрабатывать сообщения в топик-группу должны приходить от имени пользовательского аккаунта, а не бота. Из-за ограничений Телеграм боты не могут видеть сообщения других ботов в группах.
Активировать специальный режим трансляции сообщений в топик-группу через пользовательский аккаунт (userbot) можно через нашу службу поддержки.
При включенной трансляции сообщений от пользователей в топик-группу через аккаунт данные сообщения становятся доступны боту-помощнику для обработки.
Таким образом появляется возможность сохранения сообщений во внешней системе, например для резервного копирования переписки с клиентами или использования фрагментов переписок для обучения искусственного интеллекта.
Примечание про сохранение сообщений: делать резервные копии сообщений из группы также можно в любой момент в ручном режиме через функцию Export Chat History в свойствах топик группы.
Кейс 6: Добавление AI консультанта к вашему Telegram аккаунту или боту
При включенной трансляции сообщений от пользователей в топик-группу через аккаунт (userbot) бот-помощник может видеть сообщения пользователей.
Далее можно передавать сообщения пользователя с нужным контекстом AI по API и получать ответ, который затем выводить в топик-группу в виде комментария или отправлять напрямую пользователю.
Например, можно предложить пользователю задать свой вопрос в ожидании ответа оператора искусственному интеллекту, чтобы попробовать решить свою проблему самостоятельно.
Хорошим тоном является задавать вопросы искусственному интеллекту начиная свой вопрос с обращения AI, например: ai какие команды есть в системе?
Также можно научить AI понимать, что если ему задают вопрос начиная его с комментария, то это вопрос оператора системы и ответ надо выдать также в виде комментария.
Как вариант, можно отправлять на анализ AI все сообщения от пользователя (это более затратно по токенам AI) и выдавать или нет ответ по нужной логике. Например, отвечать пользователю только тогда, когда AI считает, что вопрос точно совпадает с тем, что есть в его базе знаний.
Для гибкого контроля работы AI можно ввести специальные ограничения и вспомогательные команды, которые включают/выключают AI в данном топике или переключают режим общения с пользователем.
Подробнее о кейсах применения AI в связке с Telegram CRM Hotline (скоро)
Смотрите также другие способы расширения функциональности Hotline: