О чем этот кейс
Многие зарубежные IT-сервисы ушли из России (или планируют уйти), и бизнесу приходится искать альтернативы. Но что делать, если подходящих аналогов нет, а на сервисе завязаны ключевые процессы?
B2B-компания Smartway, одна из крупнейших бизнес-тревел компаний России, задумалась о разработке собственного решения еще до того, как облачный сервис Intercom, который они использовали, покинет российский рынок. Была и другая проблема: высокая стоимость подписки на Intercom, при том что не все функции сервиса использовались компанией. А некоторые критически важные опции, которые могли бы сделать работу удобнее и эффективнее, отсутствовали.
В этом кейсе расскажем, как мы меньше чем за год разработали с нуля кастомный аналог Intercom, адаптированный под задачи службы поддержки Smartway, в которой работает более 300 сотрудников.
Заказчик — лидер на рынке бизнес-тревел
Smartway предлагают онлайн-сервис для полного цикла организации деловых поездок и командировок. Среди их клиентов крупные российские компании: Dodo Brands, Деловые линии, Точка, Модульбанк, CDEK и многие другие. Smartway входит в группу компаний «1С» и является резидентом Сколково.
Сервис работает по принципу «одного окна»: пользователю не нужно переключаться между разными платформами, чтобы купить билеты, забронировать отель или заказать трансфер. Это удобно и экономит время. После завершения поездки Smartway автоматически загружает все необходимые документы для бухгалтерии, облегчая процесс отчетности.
Так выглядит онлайн-сервис Smartway. Источник: smartway.today
А если изменилось время отправления и уже купленный билет нужно поменять? Или внезапно слетела бронь? Эти и многие другие вопросы решают специалисты службы поддержки. В саппорте Smartway больше 300 сотрудников. Клиент может написать в поддержку через специальный чат в личном кабинете Smartway или по почте.
Для организации работы службы поддержки в Smartway использовали готовое решение от американского сервиса Intercom. Оно включает разные инструменты для коммуникации с клиентами: чаты в режиме реального времени, настройки аналитики, отправку email и многое другое.
Компания оплачивала самый дорогой тариф, при этом для работы нужно было только 20% функций Intercom. Остальное шло в придачу.
Настроить только необходимые фичи и не переплачивать за лишние, например, за ИИ-бота или интеграцию с мессенджером, которыми никогда не пользовались, не получится. А вот некоторых действительно важных для Smartway возможностей в Intercom не было. Еще был риск, что Intercom уйдет с российского рынка. Спойлер: чуть позже именно это и произошло.
Smartway изучили существующие решения, и ни одно из них не могло закрыть все потребности службы поддержки. Поэтому решили разработать собственный сервис — аналог Intercom, адаптированный под задачи компании.
В компании есть инхаус-команда разработчиков, но штатные специалисты заняты на других проектах, а свой сервис нужно было создать и запустить быстро. Поэтому решили привлечь аутсорс-команду, которая закроет этот вопрос.
Smartway обратились к нам в Purrweb в декабре 2023. Задача звучала так: сделать клон Intercom, но с кастомными фичами. Уже в январе — сразу после новогодних каникул — мы приступили к работе.
Инхаус-команда присоединилась к проекту позже. Ребята из Smartway взяли на себя часть функциональности, которая связана с их бэк-офисом — у нас не было к нему доступа. Благодаря их участию смогли подготовиться к релизу намного быстрее.
Одно лекарство от всех болей отдела поддержки
Intercom — довольно популярное решение для отдела саппорта или продаж, но почему оно не было идеальным для наших заказчиков?
Основная проблема — слабая автоматизация, которая влияла на разные процессы. Например, специалисты службы поддержки тратили драгоценное время на ручное заполнение форм вместо того, чтобы помогать клиентам. Менеджерам приходилось обрабатывать часть данных вручную, чтобы получить полную картину по метрикам и показателям, и тратить на подготовку ежемесячных отчетов несколько часов, а то и пару дней. И это не единственная боль.
При проектировании и разработке кастомного решения для Smartway мы должны были учитывать эти боли и потребности.
Наши задачи на проекте
Мы должны были выпустить предрелизную версию в сентябре 2024 года и протестировать ее на ограниченной группе пользователей. Полноценный релиз должен был состояться в ноябре 2024. Так что на все у нас было около 10 месяцев 🕐
Нам предстояло:
-
- разработать для отдела поддержки Smartway веб-приложение, аналогичное Intercom, но только с нужными функциями;
- сделать интеграцию с бэк-офисом Smartway, чтобы данные из чатов подтягивались автоматически (и наоборот — данные из бэк-офиса переносились в чат);
- учесть, что чаты должны стабильно работать в режиме 24/7 и выдерживать высокие нагрузки — пиковым было значение 550 чатов в час;
- создать удобный и простой интерфейс, в котором легко разберется даже новый сотрудник;
- использовать привычные UX-паттерны из Intercom и даже немного улучшить их;
- реализовать прозрачный и понятный сбор статистики, поскольку на ее основе принимаются важные управленческие решения.
Глобальная цель кастомного сервиса — ускорить обработку обращений клиентов и сократить издержки для бизнеса.
В самом начале мы называли проект «клон Intercom». Довольно прямолинейно 🙂 Вскоре он получил настоящее название — Smartchat. С одной стороны, здесь есть отсылка к компании Smartway, с другой — чат действительно должен быть умным: ведь от его работы зависят важные бизнес-процессы заказчика.
Чем Smartchat круче Intercom
Хотя Intercom не был идеальным решением для Smartway, некоторые его функции было важно сохранить в Smartchat. Чтобы понять, какие из них стоит перенести, а какие доработать под задачи Smartway, на старте проекта мы активно общались с заказчиками.
Благодаря вовлеченности заказчиков мы быстро погрузились в контекст и определили, каким получится новый продукт. Это будет не просто копия популярного сервиса, а уникальное кастомное решение.
Заказчики подробно рассказывали, как устроена работа саппорта в Smartway, какие функции Intercom им нравятся, а какие — нет. Например:
Чтобы было понятнее, чем Smartchat похож на Intercom, а в чем он круче, сравнили их в таблице 👇
Основные флоу Smartchat
Главная задача Smartchat — помочь отделу поддержки быстро и эффективно решать вопросы клиентов. Поэтому с точки зрения флоу все должно быть интуитивно, чтобы когнитивная нагрузка на сотрудника была минимальной.
Всего в Smartchat есть три роли: сотрудник (специалист поддержки), админ и супер-админ. Последний может добавлять любые новые роли и выдавать им права доступа.
Так выглядит экран с чатами со стороны сотрудника. В дизайне мы старались сохранить привычные паттерны из Intercom, но в то же время сделать их удобнее.
Сообщения получают только менеджеры с правами доступа. Права могут быть на все чаты, чаты определенных команд или только те, где менеджер назначен ответственным. Доступ обновляется в реальном времени. Клиенты видят только свои обращения.
Все сообщения распределяются автоматически. Ручное распределение оставили для редких кейсов — например, когда клиент ошибся с темой сообщения и нужно перенаправить сообщение на другую команду. Кстати, с помощью команды @ можно упомянуть коллегу. Если сотрудника саппорта упомянули, он получает доступ к чату, даже если у него нет прав на его просмотр.
Чаты можно «усыпить» на определенное время, чтобы они не отображались в списке активных. Это нужно, когда вопрос клиента решается на стороне поставщика услуги, и специалист ждет ответа. Если в чате что-то происходит или истекает срок, он возвращается в список.
Специалисты саппорта могут оставлять заметки в чате, которые видны только внутри команды, а не клиенту. Так не потеряется важный контекст, если обращение перевели на другого сотрудника.
Также реализовали функцию для админов: в истории сохраняются даже удаленные сотрудниками сообщения в чатах. Такой фичи не было в Intercom. Можно восстановить историю переписки.
Заказчикам было важно, чтобы в Smartchat был доступ к развернутой статистике. Мы реализовали дашборды для админа, чтобы можно было просматривать данные по любым активностям на платформе.
Это только часть функций 🙂 Также мы реализовали возможность отвечать на сообщения клиентов, которые были отправлены по email, прямо в интерфейсе чатов, полнотекстовый поиск по сообщениям, создание макросов — быстрых ответов-заготовок и много чего еще.
Как мы заставили выдержать чат 1666 сообщений в минуту 😈
Одно из главных требований заказчика — стабильная работа чатов, ведь от этого зависит эффективный клиентский сервис. Для нас это не первый проект, где чаты являются основным флоу: например, мы разработали Grecha.pro — приложение для ресторанных закупок с омниканальным чатом и приложение Talentum, где фриланс-повара берут заказы, а вся коммуникация идет в чате. Но там были стартапы, а здесь — масштабный бизнес. Служба поддержки Smartway может обрабатывать больше 500 чатов в час! Мы понимали, что при нагрузочном тестировании чаты: а) не должны падать; б) должны выдерживать наплыв сообщений. Допустим, мы обеспечим нормальную работу при 500+ чатах в час, но если их будет больше? 700? 1000? Поэтому решили тестировать нагрузку в 1000 чатов в час. Мы прикинули: максимальное количество сообщений в чате не превысит 100. И посчитали, что тогда предельная нагрузка на сервис составляет 100 000 сообщений в час = 1666 сообщений в минуту 😈 Или 27 сообщений в секунду. Smartchat все выдержал и оставался на чиле 🙂 |
Как это сделано: технические решения наших разработчиков
Понимаем, что иногда рассказы о разработке немного напоминают квантовую физику. Но мы не можем не поделиться с вами крутыми решениями наших разработчиков! Выбрали самое интересное и важное. Квантовой физики не будет — объясним все доступно 🙂
✉️ Доставка сообщений. Что самое важное в чате? Правильно: чтобы сообщение не затерялось и было доставлено адресату. Для этого мы использовали RabbitMQ — он отвечает за быструю и точную доставку и передает сообщение от клиента именно к тому специалисту, который занимается нужным вопросом.
⚖️ Балансировщик чатов. Для его реализации использовали BullMQ (очередь задач через Redis). Он автоматически назначает обращения с учетом нагрузки, а приоритетные запросы, например, с ближайшими поездками, обрабатываются в первую очередь. Балансировщик также поддерживает функцию «сна» чатов — их можно отложить, чтобы вернуться позже.
🖥️ Интеграция с бэк-офисом Smartway. Разработчики из команды Smartway написали микросервис для обмена данными между Smartchat и внутренней системой. Благодаря этой интеграции обращения создаются автоматически при изменениях в поездке клиента, формируются акты сверок, а внутренние обращения позволяют уточнять детали без уведомления клиента. Внедрение новой системы в уже отлаженный механизм на стороне заказчика было непростой задачей, но мы успешно с ней справились.
📈 Оптимизация чатов. Сначала мы взяли для хранения данных о чатах (сообщения, кто и когда прочитал) PostgreSQL. А во время тестирования поняли: это решение не тянет высокие нагрузки — скорость обработки информации падает. Нужна была альтернатива. Мы остановились на базе данных Scylla. Она выдерживает высокие нагрузки, обеспечивая быструю запись, чтение и масштабируемость. Так мы разобрались с проблемой падения производительности при росте данных.
🔎 Мониторинг системы. Для этой цели выбрали Prometheus Stack — с его помощью удобно собирать метрики и настраивать алерты (уведомления об ошибках и сбоях). Мы внедрили мониторинг для всех сервисов Smartchat, а также создали библиотеки и написали шаблоны мониторинга, которые будем использовать на других наших масштабных инфраструктурных проектах.
К началу 2025 года переводим отдел саппорта на Smartchat
В ноябре 2024 мы зарелизили Smartchat. Сейчас больше 50 сотрудников службы поддержки Smartway переехали на него. Также мы подключили к виджету Smartchat 10 клиентов. К началу 2025 года планируем перевести весь отдел саппорта на Smartchat, и тогда заказчики полностью откажутся от Intercom.
Мы не останавливаем работу над проектом и продолжаем делать новые фичи, чтобы работа в Smartchat была еще более удобной и быстрой. В бэклоге столько всего, что понадобится отдельная статья 🙂 Вот лишь некоторые фичи в разработке прямо сейчас:
-
- продвинутый текстовый редактор, который отображает форматирование так, как оно будет выглядеть в готовом виде;
- еще больше возможностей для редактирования сообщений: последовательное прикрепление текста и картинок друг за другом, горячие клавиши, растягивание поля ввода под большой текст, добавление гифок и эмодзи;
- отображение статуса сообщений: сотрудники поддержки видят, прочитал клиент сообщение или нет.
➡️ Нужно сделать сложный проект в сжатые сроки, а у инхаус-команды нет ресурсов? Мы, Purrweb, сможем помочь. Погрузимся в контекст вашего бизнеса, наладим взаимодействие с внутренней командой, разберемся в особенностях ваших бизнес-процессов и подберем лучшее техническое решение.
Есть задача? Обсудите ее с нами. А мы скажем, сколько времени займет реализация, составим дорожную карту и обозначим бюджет.