
В OnCare мы использовали Hubot, чат-бота, созданного людьми из Github в качестве компаньона, чтобы помочь нашей команде получить нужные ответы. Я хотел поделиться нашим опытом, так как он немного отличается от того, что изначально было у Hubot как бота, ориентированного на разработчиков.
Сначала немного предыстории; наш отдел продаж искал информацию о клиентах для выполнения своей работы. У нас не было административных страниц, чтобы позволить им самообслуживание, поэтому все запросы обрабатывались мной вручную. Прежде чем создать еще одну страницу администратора, я подумал, что для команды будет удобнее получать эту информацию через среду, которую они уже использовали; Слабость.
Что, если бы кто-нибудь из нашей команды мог просто спросить «пользователь-хабот [email protected]?» (при соблюдении GDPR).
Детали реализации
При следовании их инструкциям загрузка, настройка, развертывание и интеграция в Slack были пустяком. Я развернулся на Heroku для удобства, но у него есть удачный побочный эффект - он хорошо работает в рамках их бесплатного уровня, поскольку он почти требуется исключительно в рабочее время.
Я не большой поклонник CoffeeScript, поэтому, когда я приступил к написанию нашего первого пользовательского скрипта, я был рад увидеть, что могу писать на JS.
Теоретически Hubot может напрямую обращаться к нашей базе данных, но было бы неплохо разделить задачи и вместо этого позволить ему аутентифицироваться и запрашивать ваш серверный API.
Наша внутренняя служба написана на Django, поэтому я добавил конечную точку Django REST Framework, которая будет предоставлять информацию о пользователе по электронной почте (/admin/[email protected]).
Теперь у меня есть сценарий Hubot, который выглядит так:
Теперь мы можем спросить:
я: помощь hubot
hubot: пользователь hubot [email protected] - получение информации о пользователе OnCare
меня : hubot user [email protected]
hubot: пользователь найден, 1 секунда
hubot: этот пользователь принадлежит агентству Foo. Они «работник по уходу»
Это было довольно просто.
Я «объявил» об этой функции команде, просто разместив этот диалог в общем канале Slack, и заметил, что люди задают похожие вопросы без обучения. Сила простоты.
Эволюция
Всем нравится небольшая настройка, поэтому наш «хабот» быстро стал «он-ботом», и был введен пользовательский аватар.
После того, как у нас была первая настройка навыков, я подумал, что было бы здорово получить синопсис статистики нашей компании, поэтому я создал конечную точку JSON, которая отображала существующие ключевые показатели эффективности высокого уровня, которые ранее отображались на панели администратора. Теперь мы можем получить это с помощью onbot stats
Все было хорошо, что нам стало легче находить нашу статистику, но я подумал, что onbot должен быть более активным. Я установил скрипт, который каждое утро отправлял бы обновленную статистику на #general. Поскольку Hubot просто запускает сервер Node, я создал мертвый простой скрипт, который запускался через интервал cron, например:
Ярлыки
Есть некоторые ссылки и информация, на которые мы часто ссылаемся. С помощью простого сценария ярлыков мы можем задать следующие мысли:
onbot handbook- ссылка на руководство по корпоративной культуреonbot phone- не действие, напоминает номер нашего телефонаonbot address
Существует пакет под названием factoids, но я нашел команды немного многословными и не хотел беспокоиться о сохранении данных (пока). Мой сценарий ярлыков до глупости прост, и его развертывание займет всего минуту, если мы внесем поправку;
Дальнейшие шаги
Каким бы полезным ни был наш подчиненный бот, он не очень болтлив, и я хочу исправить это. Я начал писать свой собственный REPL для Hubot, но вскоре после этого обнаружил библиотеку Hubot Conversation.
Я буду использовать это, чтобы включить такие разговоры, как:
я: агентство hubot WrongName
hubot: К сожалению, я не могу найти "WrongName". Я нашел:
неправильное имя
правильное имя
Какое из них вас интересует?
я: правильное имя
hubot : Хорошо, вот и ты:
…
Я бы хотел поэкспериментировать с вложениями к сообщениям Slack, чтобы мы могли лучше представить информацию, особенно нашу статистику.

Выводы
Это была отличная тема для разговора для нашей команды, у которой есть ежедневная статистика по утрам, и было приятно видеть, как люди используют (и злоупотребляют) Hubot, чтобы помочь получить ответы, которые им нужны, с минимальным трением.
Я хотел бы услышать, как другие команды используют Hubot для повышения производительности своей команды, поэтому, пожалуйста, оставьте отзыв :)
OnCare продолжает создавать ориентированное на клиента программное обеспечение для агентств по уходу, и мы ищем другого инженера, который присоединился бы к нашей растущей команде, чтобы поддержать эти усилия. Если вы лондонский инженер полного цикла, хотите работать над технологиями навсегда и желаете в значительной степени контролировать свою работу, свяжитесь с нами (Джеймс на weareoncare.com).