Для чего нужны боты
Боты — это виртуальные пользователи системы, которых можно назначать ответственными и согласующими в задачах и формах. Каждому боту соответствует программа, выполняющая определенную функцию. Когда заявка приходит к боту, 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.