Уведомления из сценариев Loginom при помощи Telegram

4 октября 2021
0 комментариев

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

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

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

Потребность в уведомлениях возникает часто, вот некоторые примеры:

  • время выполнения процесса вышло за допустимые границы;
  • модель машинного обучения была перестроена;
  • складские остатки достигли минимально допустимых значений;
  • резко возросло количество случаев мошенничества.

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

Об одном из способов простой реализации механизма уведомлений в платформе Loginom при помощи чат-бота Telegram будет рассказано далее.

Схема работы

Для реализации этой механики необходимо выполнить следующие действия:

  1. Создать чат-бот
  2. Создать группу в Telegram
  3. Добавить в эту группу созданный бот и всех заинтересованных лиц
  4. Дать чат-боту права администратора в группе
  5. Настроить сценарий в Loginom, отправляющий через бот сообщение в группу при наступлении отслеживаемого события

Всё это можно реализовать без единой строчки кода. Для настройки потребуется только смартфон с Telegram и платформа Loginom. Причем всё, что будет описано далее можно реализовать даже в бесплатной редакции платформы.

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

Создание чат-бота

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

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

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

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

Необходимо сохранить токен, указанный в сообщении. В данном случае это «1944318437:AAErr0K4JSQ03ePdVdOpuikkTVjxsDyBzVA». Он нам в будущем потребуется.

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

Создание группы

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

Создание группы

Последний шаг — сделать бота администратором группы.

Бот — администратор группы

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

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

В нашем случае это строка

https://api.telegram.org/bot1944318437:AAErr0K4JSQ03ePdVdOpuikkTVjxsDyBzVA/getUpdates.

В результате будет получен ответ следующего вида:

{"ok":true,"result":[{"update_id":662854589, "my_chat_member":{"chat":{"id":-420930972,"title": ... ... ... "can_manage_voice_chats":true,"is_anonymous":false}}}]}.

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

На этом подготовительная работа заканчивается. Далее необходимо настроить сценарий в Loginom.

Настройка сценария в Loginom

Нужно создать пакет в Loginom, перейти в подключения и создать подключение REST-сервис «Telegram REST-сервис».

В поле URL сервиса ввести строку вида:

https://api.telegram.org/bot<ТОКЕН>/sendMessage

что в нашем случае

https://api.telegram.org/bot1944318437:AAErr0K4JSQ03ePdVdOpuikkTVjxsDyBzVA/sendMessage

выбрать метод POST и content-Type запроса «application/json».

Параметры подключения

Перейдем в сценарий и перенесем на workflow узел Калькулятор (переменные). И создадим в нем 2 выражения:

ИмяМеткаТипЗначение
chat_idID чатаСтроковый"-420930972"
messageСообщениеСтроковый"{""chat_id"": """ + chat_id + """, ""text"": ""Внимание событие""'}"

В переменной message сформируется сообщение, которая будет отправляться в чат. В данном случае это «Внимание событие».

Т.к. обработчик REST-запрос принимает данные только в виде таблицы, надо использовать обработчик переменные в таблицу и выбрать вариант «в столбцы» — это способ преобразования по умолчанию.

Следующий шаг — перетащить обработчик REST-запрос и подать на вход ранее настроенное подключение к REST сервису и узел "Переменные в таблицу". Активизировать подключение "Telegram REST-сервис", запустить мастер настройки обработчика REST-запрос и связать поле "Сообщение" и полем "request/".

Настройка запроса

Полученный сценарий выглядит очень просто.

Сценарий интеграции Loginom с Telegram-ботом

Всё! Если выполнить этот сценарий, то в чате появится сообщение от бота.

Полученное сообщение от бота

Кейс

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

Для этого рассмотрим простой сценарий:

  1. Импорт данных из источника
  2. Группировка
  3. Выгрузка результата в файл
  4. Отправка сообщения в чат

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

Выгрузка данных с последующим оповещением

В данном сценарии надо обратить внимание на пунктирную связь между узлом «Excel файл» и «REST-запрос». По умолчанию все сценарии в Loginom выполняются параллельно и поэтому, если явно не указывать последовательность выполнения, то отправка сообщения в чат будет осуществлена вне зависимости от того, завершится ли выгрузка в Excel или нет.

В Loginom есть возможность задать порядок выполнения сценария, связав узел «Excel файл» и «REST-запрос». В результате запрос будет отправлен только в случае, если корректно завершится выгрузка в файл.

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

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

Готовый компонент

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

Использование готового компонента интеграции Loginom с Telegram

Для применения надо подключить пакет к разработанному сценарию и воспользоваться готовым компонентом интеграции. Главное, не забыть получить token, chat_id и указать их значения во входных переменных.

 

Другие материалы по теме:

Кредитный конвейер. Кейс микрофинансовой организации МигКредит

Интеграция Loginom и Tableau. Деморолик

#интеграция#телеграм#СППР

Смотрите также