Привет! Меня зовут Нарек Маркосян, я бэкенд-разработчик в Ситимобиле.
Я хочу рассказать вам о нашем закрытом Telegram-бот «Тайный покупатель» .
Пролог
В Ситимобиле никто не носит розовые очки, мы прекрасно понимаем, что наш сервис не идеален, поэтому всегда работаем над его улучшением.Проблемы клиента могут быть связаны с заявкой, с расчетом цены, но чаще всего — с водителем.
Мы любим своих водителей и стараемся сделать их работу более приятной и прибыльной, но из-за одного недобросовестного водителя мы можем потерять несколько клиентов и тем самым лишить заработка водителей, которые честно выполняют свою работу.
По этой причине мы решили разработать инструмент для быстрого реагирования на жалобы, связанные с водителями.
Зачем нам понадобился бот?
Абсолютно все жалобы наших клиентов рассматриваются сотрудниками нашей службы поддержки, однако мы не можем полностью полагаться на полученную от клиентов статистику по нескольким причинам:- не все клиенты оставлять отзыв, если что-то пошло не так;
- мы не всегда можем быть уверены объективность клиенты;
- мы не хотим и не можем массово приставать к клиентам уточняющие вопросы чтобы получить полную картину.
- Сотрудники, скорее всего не забуду сообщить о проблеме;
- Сотрудники подробнее цель .
Не полностью, но всё же :)
- Вы можете подойти к коллеге и узнать все необходимые детали.
Как работает бот
Бот тайного покупателя очень прост. Он состоит всего из двух обработчиков: Первый обработчик извлекает из нашего API поездки, которые недавно завершились или находятся в статусе «В пути», и отправляет первый вопрос о поездке в чат. Второй обработчик обращается к Telegram API и собирает непрочитанные сообщения, по очереди просматривает каждое сообщение и отправляет ответ в чат. Конечно, можно было сделать так, чтобы наш сервер автоматически отправлял сообщения трип-боту и ответы пользователей из Telegram приходили не пачками, а в момент отправки, но после обсуждений мы решили сделать именно описанный выше механизм.
На это было несколько причин:
- при такой реализации сервис полностью закрыт для входящих запросов на все порты, благодаря чему мы можем не опасаться попыток взлома или DDOS-атак;
- если одновременно поступает много сообщений от пользователей, Telegram не будет будет забрасывать нас просьбами ;
- если бот поглупеет, это не будет иметь никакого эффекта на наш основной сервер и не повлияет на бизнес-процессы.
Что касается языка, то здесь мы выбирали между PHP и GoLang. Мы остановились на PHP, потому что «почему бы и нетЭ» С той реализацией, которую мы имеем, мы не воспользуемся основными преимуществами Go, но усложним дальнейшую разработку — не все наши разработчики пишут на Go. Если у вас есть идеи, почему Go будет лучше PHP в этой реализации, буду рад прочитать их в комментариях.
Улучшения
Со времени первой версии улучшений не было.После официального запуска мы начали собирать отзывы и в результате обнаружили только две проблемы.
Первая проблема – короткая память .
В первой реализации бот начинал допрашивать сотрудника через 5 минут после окончания поездки.
Выяснилось, что за это время пассажир успел забыть некоторые детали, например, регистрационный номер автомобиля.
После модификации бот начал опрос через минуту после того, как пассажир сел в машину.
Бот задавал вопросы, на которые уже был известен ответ (чиста ли машина, правильные ли у машины номера и т. д.).
После завершения поездки бот вернулся с очередной кучей вопросов, ответы на которые стали понятны только по ходу поездки.
Вторая проблема в том, что у нас почти всегда всё хорошо.
.
Как бы странно это ни звучало, но с точки зрения бота это стало проблемой.
Наши коллеги устали после каждой поездки по 10 раз отвечать «все хорошо».
Мы решили эту проблему, сгруппировав вопросы: объединили все вопросы, которые были заданы во время поездки, и все вопросы, которые были заданы после, в два одинаковых вопроса: «Все ли в порядкеЭ» с другим набором ответов.
В ближайшем будущем мы планируем увеличить количество доверенных клиентов и тем самым сделать работу бота более эффективной.
Для этого потребуется переделать авторизацию и добавить мониторинг критических событий.
Если будут интересные изменения, о них напишу отдельную статью.
Теги: #php #Telegram #бот #MySQL
-
Google Замедляет Интернет
19 Oct, 24 -
Сетевая Установка Linux
19 Oct, 24 -
Brainfuck — Вывод В Десятичном Формате
19 Oct, 24 -
Программирование На Lisp Как Жанр Искусства
19 Oct, 24 -
5-Я Встреча Петербургской Группы Alt.net
19 Oct, 24 -
Мирная Албания. Казнь Нельзя Помиловать?
19 Oct, 24 -
Почему Joomla Терпит Неудачу В России
19 Oct, 24