Добро пожаловать! https://www.1bpm.ru mail@bip.one |
Эффективность. Надежность. Контроль.
Система автоматизации и управления бизнес-процессами
|
||||||||
|
«БИП: Бизнес-Процессы». Часть №VI. Интеграция с Telegram и Конструктор чат-ботов |
Февраль 2021 г. |
Статья об интеграции расширения для автоматических оповещений «Сигнал» и мессенджера Telegram.
|
Это продолжение статьи Часть №V, которая была посвящена подключению и настройке расширения «Сигнал».
Напоминаем, что расширение «Сигнал» позволяет отправлять сообщения пользователям следующими способами:
Эта часть будет посвящена мессенджеру Telegram и его использованию в рамках системы
«БИП: Бизнес-Процессы» (или её базовой версии «Зодиак»).
Содержание 2. Пример использования Telegram для автоматических оповещений 3. Пример использования Telegram для отправки сообщений вручную 4. Пример использования чат-бота в Telegram для взаимодействия с системой 5. Настройка интеграции с Telegram 6. Конструктор чат-ботов Telegram 7. Дополнение: Программный код 8. Дополнение: Вложения в Telegram (начиная в версии 1.0.1.7) 9. Заключение
Общие сведения Для демонстрации примеров, приведенных в данной статье, нам потребуется:
Для демонстрации примеров подсистема «БИП: Бизнес-Процессы» подключена к типовой конфигурации «1С:Управление Торговлей», ред. 11.4. Это могла бы быть любая другая типовая (или нетиповая) конфигурация. Механизмы настройки и использования одинаковы для всех конфигураций. Подробное описание подключения и настройки расширения для автоматических оповещений «Сигнал» приводится в статье
Часть №V: Система оповещений. В настоящей статье приводятся только нюансы, непосредственно связанные с
Telegram.
Пример использования Telegram для автоматических оповещений Для примера создадим самый простой сценарий, состоящий из 1 шага. Это будет шаг - «Согласование договора». Для процесса и задачи по нему укажем сроки выполнения (это необязательно, но сроки выполнения мы позже увидим в полученных сообщениях): Исполнителя для задачи указывать не будем. В этом случае исполнителем будет назначен пользователь, запустивший новый процесс. В рамках данного примера этого вполне достаточно.
Сценарий к использованию готов. Теперь по нему можно в любое время запускать новые процессы «согласования договоров».
Теперь осталось научить программу, чтобы по данному сценарию она отправляла сообщения в Telegram. Для этого откроем настройки оповещений по текущему сценарию и добавим 2 оповещения:
Всё готово. После того, как пользователь запустит новый процесс (или процесс будет запущен автоматически), указанные в настройках оповещений пользователи получат сообщения в Telegram. В зависимости от Telegram-клиента, точнее от его версии (для компьютера или для смартфона) и платформы (Windows, Android, iOS) форматирование сообщений может незначительно отличаться. При этом, текстовое наполнение будет одним и тем же.
В настройках оповещения, при вводе текста сообщения, доступно форматирование, а также использование эмодзи.
Полученное в данном случае сообщение будет иметь жирную подчеркнутую строку «Важно! Обратите внимание на срок выполнения».
Пример использования Telegram для отправки сообщений вручную Кроме автоматических оповещений в рамках расширения «Сигнал» доступно ручное создание и отправка сообщений в Telegram. Для этого, в списке сообщений следует добавить новое сообщение, указать получателя, выбрать тип оповещения Telegram и написать сообщение. Для немедленной отправки следует нажать . Сообщение будет отправлено. Если требуется отложенная отправка сообщения, то в новом сообщении следует указать дату и время, когда сообщение должно быть отправлено. Сообщение будет отображаться в общем списке с отметкой об отложенной отправке. В указанное время сообщение будет отправлено получателю автоматически. Пример использования чат-бота в Telegram для взаимодействия с системой Кроме использования настроенного ранее чат-бота для отправки автоматических уведомлений и ручных сообщений, этот чат-бот может использоваться, также, и для ряда дополнительных функций. Пользователь данного чат-бота может выполнять следующие функции, находясь в мессенджере Telegram:
Рассмотрим эти функции по порядку. Для того, чтобы начать работу с этими функциями пользователь должен написать команду Меню.
После этого появится 3 новых кнопки: Мои задачи, Новая задача, Новый процесс. При нажатии кнопки Новая задача, бот предложит ввести данные о новой задаче в формате [Описание], [Исполнитель], [Срок], [Важная].
Срок, при этом, можно указывать в различных вариантах: 06.02 14:00, 06.02.21 14:00, 06.02.2021 14:00, 6.2 14:00, 6.2. Если указать число - количество дней, то срок будет рассчитан от текущей даты по указанному количеству дней. После ввода данных, в основной базе будет создана новая задача. Информация о созданной задаче будет показана в окне сообщений...
..., а в базе данных появится новая задача для выполнения.
Пользователь, который был назначен исполнителем новой задачи, также, получит уведомление в Telegram о новой задаче и о том, кто её создал.
Следующим пунктом меню является пункт создания новых процессов. При нажатии кнопки Новый процесс, бот предложит выбрать один из доступных сценариев и ввести дополнительное описание для запускаемого процесса.
После этого, в системе будет автоматически создан и запущен новый процесс по выбранному сценарию. Информация о новом процессе будет показана в окне сообщений...
..., а в базе данных появится новый активный процесс.
Если в настройках сценария включена настройка «Ручной старт новых процессов», то новый процесс не будет запущен, а будет только записан в статусе «Создан». И сообщение будет содержать не строку «Создан и запущен новый процесс», а «Создан новый процесс».
Следующий пункт меню - Мои задачи. При нажатии кнопки Мои задачи, бот покажет список задач, которые необходимо выполнить текущему пользователю.
При выборе задачи будет предложено 2 кнопки: Подробнее... и Выполнена.
При нажатии кнопки Подробнее... будет показана подробная информация о задаче.
При нажатии кнопки Выполнена... бот предложит ввести комментарий по задаче, после чего задача будет выполнена.
Этот вариант похож на функционал по выполнению задач по электронной почте, который, также, доступен в рамках подсистемы автоматических уведомлений. В том случае, если по задаче, кроме комментария, требуется ввести дополнительные данные, то бот сообщит об этом.
Общий список команд, доступных в чат-боте (для расширения «Сигнал» версии 1.0.1.3):
Настройка интеграции с Telegram Инструкция по настройке расширения «Сигнал» для использования с Telegram доступна по ссылке Настройка системы «Сигнал» для использования с Telegram.pdf. Для настройки интеграции потребуется не более 30 минут. Порядок настройки следующий:
Подробности настройки по каждому пункту доступны в инструкции. Здесь будут приведены только скриншоты настройки на примере Telegram-клиента для Windows: 1. Создание нового чат-бота и получение токена 2. Ввод токена в настройках расширения «Сигнал» и проверка токена 3. Получение ключа пользователя 4. Ввод ключа пользователя в расширении «Сигнал» Конструктор чат-ботов Telegram Выше была продемонстрирована работа основного чат-бота, предназначенного для рассылки автоматических уведомлений, для отправки ручных сообщений, а также для базовой работы с задачи и процессами. Но, кроме него, в системе могут быть созданы дополнительные произвольные чат-боты для решения различных задач коммуникации как внутри организации, так и с внешним миром.
Для ведения списка чат-ботов предназначен отдельный справочник Чат-боты.
Для примера создадим самый простой чат-бот и попробуем его чему-нибудь научить. Перед этим получим токен нового чат-бота. О том, как получить новый токен, было написано выше. Укажем токен нашего чат-бот и его описание. Т.к. чат-бот ещё ничего не умеет, на закладке Дополнительно заполним поле Ответ на неизвестный запрос. Этими словами чат-бот будет отвечать всегда, когда не будет знать, что ответить. В своём минимальном исполнении новый чат-бот системы
«Сигнал» готов.
Можно его проверить. Откроем любой Telegram-клиент, найдём наш чат-бот и напишем /Start или Старт. Чат-бот нас поприветствовал и сообщил информацию о себе. Но, пока, он ничего не умеет и не знает. И на любое наше сообщение, наш запрос или вопрос, называть можно как угодно, он отвечает одно и тоже. Перед тем, как чему-нибудь научить нашего чат-бота, настроим для него авторизацию. Чтобы пользоваться им могли только те, кому мы сами позволим.
Авторизация ↓Пропустить раздел про авторизацию
Для этого в настройках чат-бота установим флаг Авторизация. В поле Запрос авторизации укажем текст, который увидит новый пользователь. В поле Ответственный за обработку укажем пользователя, который получит данные от нового пользователя. Теперь, новый, неавторизованный, пользователь увидит следующую информацию: После нажатия кнопки Отправить данные для авторизации... пользователь должен ввести требуемую информацию. После ввода требуется подтвердить корректность введенных данных. После подтверждения данных, информация поступит ответственному за обработку, которого мы указали в настройках чат-бота. Ответственный за обработку проверит данные и внесёт нового пользователя в список пользователей Telegram. При этом, в качестве нового пользователя может быть зарегистрирован элемент справочников Пользователи, Партнеры или Контрагенты. Т.е. пользователь чат-бота может быть как нашим сотрудником, в этом случае чат-бот будет предназначен для внутренней коммуникации, так и внешним контрагентом, использующим наш чат-бот.
После внесения данных в базу, новый пользователь автоматически получит уведомление об успешной авторизации. P.S. Конечно, ответственный за обработку может забраковать полученные данные. В этом случае, он может отправить неавторизованному пользователю сообщение, в котором может описать причины отказа от регистрации. Сообщение может быть отправлено прямо из системы.
Сейчас был приведен самый простой вариант авторизации нового пользователя. Кроме такого варианта расширение «Сигнал» предлагает следующие варианты авторизации:
Автоматическая авторизация подразумевает автоматическое выполнение алгоритма, который будет анализировать полученные данные для авторизации и, в случае успешной проверки, автоматически зарегистрирует нового пользователя.
В качестве простого примера настроим автоматическую регистрацию по ИНН. Пользователь должен ввести данные Наименование организации и ИНН через запятую. В качестве алгоритма обработки укажем алгоритм, который в лоб попытается получить ИНН (алгоритм выполняется в попытке, поэтому, в данном случае, программный код не будет содержать никаких проверок и прочего, т.к. в качестве примера этих 2 строк кода вполне достаточно). В переменную _Результат будет возвращено найденное значение и именно по значению этой переменной определяется успешность автоматической проверки по алгоритму.
Проверим как это будет работать в чат-боте: Программа нашла по указанному ИНН контрагента в нашей базе и успешно его зарегистрировала. А что произойдет, если алгоритм не сможет автоматически зарегистрировать нашего пользователя? В этом случае, поведение системы будет зависеть от настроек авторизации чат-бота. Если кроме алгоритма авторизации в настройках чат-бота ничего не указано, то пользователь получит сообщение об ошибке (стандартное, сформированное системой, или заданное в настройках чат-бота). Но мы можем указать, например, сценарий авторизации или ответственного за обработку. В случае заполнения нескольких вариантов авторизации программа действует по следующему алгоритму:
Т.е. программа пытается применить каждую указанную в чат-боте настройку последовательно в соответствии с приоритетностью настройки: сначала автоматическая регистрация, затем сценарий, потом ответственный за обработку. Таким образом, можно настраивать разные варианты проверки авторизации.
Например, в нашем случае мы могли указать алгоритм авторизации и ответственного за обработку. Т.к. алгоритм не смог автоматически зарегистрировать нового пользователя, ответственный за обработку получил бы сообщение с данными авторизации для ручной проверки и регистрации нового пользователя. Но, т.к. в примере выше, ответственный указан не был, т.е. настройками чат-бота предполагалась только автоматическая регистрация, поэтому мы увидели ошибку регистрации.
Авторизация выполнена, пользователь Telegram в нашей системе зарегистрирован. Теперь программа точно знает как его идентифицировать - как Пользователя, как Партнера или как Контрагента. Если в системе создано несколько чат-ботов, то авторизация выполняется для каждого из них.
Все тексты чат-ботов, показанные на скриншотах выше, могут быть изменены индивидуально для каждого чат-бота. Для этого предназначена таблица Тексты. В ней для изменений доступно более 30 текстовых полей. После того, как пользователь авторизовался в чат-боте, чат-бот готов обрабатывать входящие сообщения. Для этого чат-бота требуется «обучить» реагировать на входящие сообщения. Для этой настройки предназначен справочник «Ключевые слова», который открывается при выборе чат-бота нажатием кнопки . Пример настройки правила обработки ключевых слов приведен ниже.
Несколько базовых примером обработки входящих сообщений настроены, теперь можно проверить, как чат-бот будет на них реагировать.
Порядок обработки ключевых слов чат-ботом Telegram
Ниже приводятся примеры общения с чат-ботом в соответствии с произведенными выше настройками. Для примера добавим в программу алгоритм с названием «Алгоритм1», дополнительным наименованием «А1» и признаком Алгоритм Telegram. Алгоритм будет выполнять запрос к остаткам регистра с учетом принадлежности партнеров к текущему авторизованному пользователю Telegram, отправившему запрос.
Похожим на предыдущий вариант выполнения алгоритмов является вид настройки ключевого слова Выполнение алгоритма, но уже через справочник Ключевые слова. Для ключевых слов «Расчёт» и «Расчет» указан алгоритм Алгоритм для чат-бота. Он и будет выполняться, когда пользователь напишет одно из этих слов. А результат выполнения чат-бот будет присылать ответным сообщением. Программный код алгоритма: Добавим ещё одну настройку с видом Выбор варианта. В качестве вариантов выбора укажем 3 абстрактных варианта, из которых пользователю нужно выбрать 1. В поле Заголовок выбора укажем текстовое сообщение, которое будет сопровождать выбор. Для того, чтобы чат-бот запрашивал подтверждение нашего выбора, включим настройку Подтверждать выбор.
Для каждого из 3 вариантов добавим настройки обработки:
Для Варианта №2 с дополнительным выбором укажем 3 варианта:
При выполнении алгоритма для варианта выбора Вариант 2.1 (Алгоритм) будет выполняться следующий программный код: В переменной _ДанныеДляОбработки содержится вся история текущего выбора. Через эту переменную можно получать результаты выбора и использовать их для реализации логики работы чат-бота. Подробнее см. Руководство пользователя «Сигнал».pdf (Раздел Ключевые слова, пункт Выполнение алгоритма + Выбор).
Проверим, как чат-бот будет взаимодействовать с авторизованным пользователем по указанным настройкам. Данные примеры показывают:
Ещё 1 вариантом реализации выбора может быть динамическое формирование вариантов выбора. Добавим ещё одну настройку и укажем в ней алгоритм. Алгоритм будет получать массив свободных дат в расписании и предлагать их пользователю чат-бота для выбора. Если результат выполнения алгоритма (значение переменной _Результат) имеет тип Массив или Структура (содержащая массив с ключом <Выбор>), то система воспринимает его как массив кнопок выбора. Подробнее о программном формировании/обработке меню выбора, см. Руководство пользователя «Сигнал».pdf (Раздел Ключевые слова, пункт Выполнение алгоритма + Выбор). Для данной настройки добавим 1 подчиненную настройку, которая будет обрабатывать выбор. В этой настройке будет выполняться алгоритм Новый визит, который будет создавать в базе данных новый документ Визит клиента. Взаимодействие чат-бота с авторизованным пользователем будет выглядеть следующим образом: Дополнение: Программный код Данный раздел не относится непосредственно к расширению «Сигнал» и настройкам интеграции с Telegram. Программный код приводится исключительно для справки и содержит несколько базовых строк кода для работы с Telegram в среде 1С, которые, возможно, для кого-то окажутся полезными.
Дополнение: Вложения в Telegram (начиная в версии 1.0.1.7) В версии расширения «Сигнал» 1.0.1.7 добавлена новая возможность при интеграции с Telegram. Теперь из основной информационной базы вместе с оповещениями можно получать вложения. В качестве вложений используются присоединенные файлы, относящиеся к процессу, в рамках которого пользователи получают оповещения, или вложения, относящиеся к основному объекту данного процесса.
Например, запущен процесс согласования договора. Печатная форма договора (и, например, дополнительный файл) прикреплены к самому договору (или процессу согласования). Пользователь, которому в рамках процесса будет поставлена задача по согласованию, может автоматически получить эти присоединенные файлы. Для того, чтобы система отправляла вложения, в настройках оповещения по задаче следует включить настройку Доступны вложения из процесса. В результате, в мессенджере пользователь получит новое сообщение по задаче, а также вложения. Дополнительно, будет добавлена кнопка Вложения, которая выводится для каждой задачи, для которой есть вложения. Эта кнопка удобна в тех случаях, когда пользователь получает список своих задач и, при выборе конкретной задачи,
видит - имеются ли для данной задачи вложения и сколько их (количество вложений указано в скобках).
Уведомления в Telegram с вложениями Заключение Подсистема «Сигнал» позволяет повысить удобство использования системы «БИП: Бизнес-Процессы» за счёт расширения информационного пространства, в котором она функционирует. Система автоматических оповещений обеспечивает своевременное информирование сотрудников по ключевым этапам рабочих процессов, держит в курсе событий сотрудников, принимающих решения и контролирующих процессы предприятия, снижает вероятность несвоевременного выполнения задач и повышает качество работы в целом. Интеграция с популярным мессенджером
Telegram
позволяет реализовать новые варианты каналов коммуникаций с сотрудниками и клиентами.
|