Для чего нужны боты
Боты — это виртуальные пользователи системы, которых можно назначать ответственными и согласующими в задачах и формах. Каждому боту соответствует программа, выполняющая определенную функцию. Когда заявка приходит к боту, Pyrus вызывает программу, а по окончании ее исполнения сохраняет результаты и передает заявку на следующий этап маршрутизации (или возвращает на один из предыдущих этапов).
Боты выручают, когда нужно решать какую-нибудь рутинную задачу или обеспечить интеграцию с внутренними системами предприятия. Перечислим некоторые из таких сценариев.
- Когда заявка прошла определенную стадию согласования, например, оплата согласована, она попадает к боту, и заинтересованные участники получают СМС или электронное письмо с уведомлением. После этого в стороннем приложении, например, 1С, автоматически генерируется платежное поручение.
- Бот проверяет лимит расходов на поставщика и, если лимит превышен, пишет об этом в заявке и возвращает ее на предыдущий этап.
- Когда заявка на согласование счета к оплате приходит к боту, он запрашивает реестр и анализирует содержимое предыдущих заявок в поисках дубликатов. Если дубликатов счета не найдено, бот согласовывает заявку и передает ее следующему участнику.
Какую роль бот играет в бизнес-сценарии, зависит от того, как вы его запрограммируете. При этом важно учитывать два ограничения:
- ответственным в заявке после бота не может быть другой бот (система не позволит вам так сделать);
- на одном этапе маршрута не могут быть два бота.
Как устроены боты
Бот — это аккаунт в Pyrus специального вида. Его можно создать на вкладке Боты в разделе Управление пользователями. Организация может завести до 100 ботов. Можно делать до 500 вызовов бота за 10 минут. Условия оплаты аккаунта бота те же, что и для других аккаунтов сотрудников.
Обратите внимание: чтобы денежные средства за боты не списывались, их нужно не отключать, а удалять. Если просто отключить бота, платить за него все равно придется.
У каждого бота есть название, которое вы ему даете. В качестве логина генерируется уникальный несуществующий адрес электронной почты, например, bot@892ccfa1c8360e2e8309. Авторизоваться в системе через веб-интерфейс или мобильные приложения, используя логин бота, нельзя. Логин нужен, чтобы можно было получить токен и делать вызовы Pyrus API из-под учетной записи бота.
Для каждого бота нужно написать приложение-обработчик и разместить его на своем сервере. Когда задача попадает во Входящие боту, он отправляет обработчику запрос. После этого приложение срабатывает — отправляет смс-сообщение, письмо или реагирует другим заданным вами образом.
Приведем пример с кодом бота на Python.
import hmac import hashlib import json from flask import Flask from flask import request app = Flask(__name__) @app.route("/", methods=['GET', 'POST']) def index(): body = request.data signature = request.headers['x-pyrus-sig'] secret = 'This-is-bot-secret-key-VtBOEesdOnIcqGaWQeFkWFqyzgdt2PGsZVWBc8h8H0-xU9ux-dN37IjcAqf2pzeqoo5FqdtoH' if _is_signature_correct(body, secret, signature): return _prepare_response(body.decode('utf-8')) def _is_signature_correct(message, secret, signature): secret = str.encode(secret) digest = hmac.new(secret, msg=message, digestmod=hashlib.sha1).hexdigest() return hmac.compare_digest(digest, signature.lower()) def _prepare_response(body): task = json.loads(body)["task"] task_author = task["author"]["email"] return "{{\"text\": \"Hello, {}. This task approved by bot.\", \"approval_choice\": \"approved\"}}".format(task_author) if __name__ == "__main__": app.run("127.0.0.1", 5001) # !!!Не забудьте заменить адрес!!!
Pyrus отправляет HTTPS запрос вашему боту методом POST. На запрос ваш бот должен ответить статусом 2XX в течение 60 секунд после вызова. Если сервер бота недоступен или отвечает любым другим статусом, Pyrus отправит второй запрос через 61 секунду, а затем третий — через 122 секунды. Номер попытки виден в дополнительном заголовке X-Pyrus-Retry запроса. Если за три попытки связаться не удалось, Pyrus отправит новый запрос в следующий раз, когда кто-то прокомментирует задачу.
Для создания и настройки ботов нужно право настраивать интеграции и редактировать справочники в Pyrus.