Уведомления в Loginom при помощи чат-бота Telegram

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

В данном демопримере описан алгоритм работы с чат-ботом Telegram: создание бота, создание группы в Telegram и назначение бота администиратором группы. Показан механизм работы уведомлений на примере сценария: импорта данных, их обработки и экспорта данных в Excel.

Примечание: Демопример имеет ограничение демонстрации всех возможностей при запуске на демостенде (Запустить демо). Рекомендуем установить пример локально.

Запустить демо

Установить локально

Начальная подготовка

Подготовка в Telegram
  1. В Telegram находим BotFather и получаем описание доступных команд.

    Бот для создания ботов

  2. Выбираем команду /newbot и задаем название нового бота и уникальное имя (username), которое обязательно должно заканчиваться на «_bot».

    Название бота — LoginomTest, уникальное имя (username) — loginom_help_bot

  3. Необходимо сохранить токен, указанный в сообщении. В данном случае это 5********5:A*********************************M, который потребуется позже.

    Важно: Не публикуйте токен, он дает доступ к данным бота. Любой, у кого есть токен, сможет читать и отправлять сообщения от имени бота.

  4. После создания чат-бота необходимо Cоздать группу, добавить в неё бота и тех пользователей, которые должны получать оповещения.

  5. Затем сделать бота администратором группы.

  6. Далее необходимо отправить любое сообщение в эту группу, например, «Hello bot» и набрать в браузере строку следующего вида:

    https://api.telegram.org/botТОКЕН/getUpdates.

    В данном примере это строка:

    https://api.telegram.org/bot5********5:A**********************************M/getUpdates.

  7. В результате будет получен ответ:

    {"ok":true,"result":[{"update_id":4*******5, "message":{"message_id":*,"from":{"id":2********0,... ... ...},"chat":{"id":-6*******6,"title": ... ... ... "all_members_are_administrators":true},"date":1********1,"text":"hello bot"}}]}

    В ответе интересует код -6*******6 — это идентификатор группы, куда будут отправляться оповещения. Его необходимо сохранить для последующего использования в сценариях.

Описание алгоритма

1. Импорт данных

Загрузка данных

Таблица «Классификация клиентов».

Имя Метка
 Class Класс
 IDClient Код Клиента
 IDQuarter Квартал

2. Обработка данных

Фильтр по кварталам

На данном этапе аналитик может реализовать свой вариант обработки данных. В демопримере с помощью Фильтра строк выделяется срез данных за заданный интервал:

Настройки фильтра
Рисунок 1. Настройки фильтра

3. Выгрузка результата

Экспорт полученных данных в файл

Отфильтрованные данные выгружаются в «Excel файл»:

Выгруженные данные
Рисунок 2. Выгруженные данные

По завершении экспорта Telegram-bot пришлет уведомление.

4. Оповещение с помощью Telegram-bot

Отправка REST-запроса в Telegram-bot

Для использования бота требуется получить токен и идентификатор группы, как было продемонстрировано выше, а также сформулировать текст уведомления. Подмодель Telegram-bot принимает на вход 3 переменные: token, chat_id и message_text.

Входной порт переменных в подмодели Telegram-bot:

Имя Метка Значение
 token Tокен 5********5:A*********************************M
 chat_id Идентификатор чата -6*******6
 message_text Текст в мессенджере Загрузка прошла успешно
Сценарий подмодели «Telegram-bot»
Рисунок 3. Сценарий подмодели «Telegram-bot»

Алгоритм работы узла-подмодели Telegram-bot:

  1. С помощью узла Калькулятор(переменные) формируются две переменные: адрес в виде URL-сервиса и текст с идентификатором чата — Текст в чат.

  2. URL-сервис подается на вход REST-сервиса, где в настройках отмечено подключение через переменную.

  3. Узел Переменные в таблицу принимает на вход Текст в чат и выбирается вариант «в столбцы».

  4. На вход обработчика REST-запрос отправляются настроенное подключение в REST-сервисе и результат обработки Переменные в таблицу.

  5. C помощью мастера настройки REST-запроса связывается поле Текст в чат с полем request/.

Мастер настройки REST-запроса
Рисунок 4. Мастер настройки REST-запроса

По умолчанию узлы в Loginom могут выполняться параллельно. Если явно не указывать последовательность выполнения, то отправка сообщения в чат будет осуществлена вне зависимости от того, завершится выгрузка в Excel или нет.

Для задания очередности запуска узлов Выгрузка результата и Telegram-bot нужно воспользоваться Портом порядка выполнения. В результате запрос будет отправлен только в случае, если завершится выгрузка в файл.

Полученный сценарий
Рисунок 5. Полученный сценарий

В случае успешного завершения сценария в чате появится сообщение от бота «Загрузка прошла успешно» или то сообщение, которое будет внесено в переменную message_text.

Сообщение от бота
Рисунок 6. Сообщение от бота

Важно принимать во внимание следующее:

  1. Запрос к чат-боту будет отправляться с того компьютера, на котором выполняется сценарий, т.е. либо с рабочей станции, где установлен Loginom Desktop, либо с Loginom Server. Необходимо, чтобы на этой машине были открыты соответствующие порты и отсутствовали какие-либо другие ограничения на отправку REST-запросов.

  2. На работу чат-бота накладываются ограничения, например, не более одного сообщения в секунду и не более 20 сообщений в минуту в одну и ту же группу. Подробнее об ограничениях можно почитать в Bots FAQ.


Скачайте и откройте файл в Loginom. При необходимости Loginom CE можно скачать бесплатно

Скачать демопример

Минимальные требования к системе:

  • Операционная система: Windows 8.1 и выше.
  • CPU x64: 1 core.
  • Оперативная память: 1 GB.
  • Жесткий диск: 10 GB.

Результаты поиска по запросу «» ()

    Нет результатов поиска по запросу ""