Статусы вошли в жизнь пользователей коммуникационных инструментов очень давно: вспомните легендарную «Аську» или Mail.ru Агента. Это действительно удобно – заранее видеть информацию, которую потенциальный собеседник хочет сообщить о себе. В корпоративной среде статус играет более утилитарную роль. При помощи статусов сотрудник транслирует свой уровень доступности, сообщая коллегам важную информацию о том, что он, например, «В отпуске», «На больничном», «На звонке» или «На встрече».

Мы запустили статусы в июне 2025 года, и это стало долгожданным событием для сотен тысяч наших пользователей. Не каждое нововведение настолько круто «заходит» в корпоративной среде. И конечно, за удобной и простой фичей стояла большая работа. О том, как это было, мы спросили команду разработки eXpress.

Как определили задачу статусов в eXpress

У нашей команды есть большой опыт и четкое понимание, какой должна быть корпоративная коммуникационная среда. И мы очень внимательно подошли к тому, какие статусы будут в ней полезны и не перегрузят решение. Для начала мы задались фундаментальным вопросом: зачем вообще корпоративному пользователю статус? Понятно, что в личной жизни люди готовы делиться достаточно разнообразной информацией о себе, но далеко не всегда нужно сообщать то же самое коллегам по работе.

Мы в продуктовой команде пришли к общему пониманию: в корпоративном инструменте задача статуса – отражать некое состояние пользователя, которое должно сигнализировать о его готовности к тому или иному уровню коммуникации. Исходя из этого построили всю дальнейшую работу над новой фичей. Мы проанализировали культуру использования этой фичи в корпоративной среде и увидели, что далеко не все готовы использовать статус исключительно в рабочих целях, чтобы действительно транслировать реальное рабочее состояние и доступность. Многие их ставят «по фану», и это тоже нормально, если коллега хочет разрядить напряженную рабочую обстановку.

Кто как пользуется статусом – зависит от характера и темперамента человека. Некоторые пользователи меняют по несколько статусов в течение рабочего дня. Кто-то «жонглирует» своими заготовленными статусами. Другие ставят статус только в крайних ситуациях: например, такой пользователь будет «Недоступен», только если выступает с презентацией или планирует находиться вне зоны действия сети.

Ключевая характеристика корпоративного решения – пользоваться его возможностями должно быть удобно всем: как тем, кому нужно просто поставить эмоджи и текст, так и тем, кто хочет детально настроить статус. Нам было важно точно спрогнозировать, как именно пользователи нашей платформы будут действовать при выборе статуса, и как, исходя из этих особенностей, сделать для них UX «на кончиках пальцев», чтобы он был интуитивно понятным и легким в использовании.

Как разрабатывали и внедряли статусы

Этап аналитики. Об этом этапе, по сути, мы уже рассказали выше – в его рамках решались фундаментальные вопросы: в чем будет выражаться «корпоративность» статусов, как можно будет их устанавливать и настраивать, как статусы увидят собеседники и так далее. Большое внимание уделили тому, как статус будет отображаться у других, ведь его ставят не столько для себя, сколько для тех, кто может с человеком взаимодействовать. Тут было важно выдержать баланс между необходимой и достаточной информацией в зависимости от сценария взаимодействия с пользователем.

Этап дизайна. Когда стал понятен базовый каркас, мы начали этап дизайна. Поскольку статусы – фича, к удобству которой пользователи максимально требовательны, работы были разделены на два глобальных блока.

Вначале мы создали визуальную часть без какой-либо механики «под капотом». Мы не часто ведём разработку в такой последовательности, но здесь было крайне важно прочувствовать UX самим. Мы ведь тоже корпоративные пользователи, в команде есть не только разработчики, но и коллеги из других профессий – у всех своё представление о данной фиче и ожидания от нее в плане удобства. В первую очередь, разработанный UX должен был на 100% понравиться нашей команде.

Когда дизайн был доведен до идеала – все элементы на своих местах, удобно кликаются, красиво выглядят – приступили к логике и функциональности. Визуальная часть статусов касается всего интерфейса eXpress, и в течение двух месяцев мы тщательно согласовывали элементы, думали над тем, как лучше встроить их в текущую реализацию продукта, привести в соответствие с общим дизайн-кодом. Наконец, провели интеграцию созданных UX-элементов с нашими дизайн-системами и конкретными экранами.

Этап архитектуры. Есть фичи, которые легко интегрируются в систему и ни на что особо не влияют. Статусы же – фундаментальная фича, которая пронизывает всю техническую часть коммуникационной платформы: как клиентскую, так и серверную. Поэтому на этапе архитектуры мы провели клиент-серверное проектирование: решили, как все будет устроено в клиенте и на сервере, как будет использоваться база данных и какая будет модель данных, каким образом будет реализовано получение статуса и реактивность интерфейса, насколько быстро статус будет обновляться и так далее.

Особое внимание уделяли нагрузке на сервер. Статусы – дополнительная сущность, которая влечет процессорные нагрузки, увеличивает нагрузку на базу данных, влияет на отзывчивость интерфейса. При неправильном проектировании новая фича могла бы негативно повлиять на производительность приложения, и вместо позитивного эффекта мы получили бы сломанную систему.

Здесь надо отметить, что не только статусы, а любая фича в eXpress требует тщательной проработки, так как в основе нашей системы – федеративный протокол. Даже в рамках одного заказчика корпоративный мессенджер или брендированное приложение на базе нашей платформы могут быть развернуты на нескольких серверах, и это требуется учитывать. Разные компании Федерации eXpress должны видеть статусы друг друга, одновременно получать обновленный актуальный статус. Поэтому даже после тщательного проектирования подобной функциональности её непосредственная разработка всегда занимает не менее половины всего времени создания.

Тестирование у нас всегда многоступенчатое. Как и для других больших фич, здесь мы проводили тестирование на стадии разработки, многослойное тестирование на разных клиентах и серверах, тестирование на различных кейсах. В ходе альфа-тестирования развернули новую функциональность для наших внутренних пользователей. Этот этап у нас длился порядка двух месяцев. Получив фидбэк пользователей, мы вернулись к некоторым фичам, от которых отказались в начале разработки, таким как, например, ховер на статусе в чатлисте, где мы показываем его текст и актуальные ограничения в виде иконок. Для бета-тестирования в мае опубликовали тестовую версию в App Store и Google Play, чтобы любой мог ее использовать, репортить баги, делиться фидбеком.

Бета-тестирование статусов прошло гладко, замечания были по мелочам и касались, в основном, эстетики. Мы быстро исправили все недочеты и вышли в продакшн в конце июня.

Как можно настраивать статусы

Все, что касается настройки статусов, – в руках пользователя. На экране статусов есть строка, куда пользователь вводит текст и устанавливает его по одному нажатию галочки.

Здесь же можно выбрать эмоджи. Мы предоставили юзеру полную библиотеку эмоджи, чтобы каждый нашел статус на свой вкус, но при этом самые популярные в корпоративной среде вынесли вверх и сгруппировали по категориям: «В работе», «В полете», «На встрече» и так далее. Вывод о таких приоритетах мы сделали на основе изучения продуктов конкурентов и пожеланий заказчиков, после чего провели анализ в рамках R&D.

В отдельный блок вынесены настройки статусов: установить срок действия статуса (или оставить его бессрочным), отключить уведомления о сообщениях, отклонять входящие звонки, а также оставить автоответ, который увидят пользователи, переходящие с вами в чат. В последнюю настройку мы вложили довольно много сил, так как видели ряд интересных кейсов ее использования. Например, там пользователь может упомянуть коллегу, к кому обращаться на время его отпуска, или отметить чат, куда писать в его отсутствие – и эти упоминания будут кликабельны. Здесь даже можно оставить ссылку на свой актуальный календарь.

Представим ситуацию: сотрудник в отпуске не готов коммуницировать ни с кем, кроме своего руководителя. Либо в период большой загруженности ему важно отвечать только на прямые упоминания или в ЛС, а групповые обсуждения, не требующие особого внимания хочется заглушить (без необходимости отключать каждый чат в отдельности). Пользователь ожидает, что мессенджер поможет ему в этом. Для этого у нас реализованы исключения, когда пользователь ограничивает какое-либо действие для всех, кроме определенных контактов.

Вторая секция экрана – недавний статус (история прежде установленных статусов пользователя с кратким указанием их текущих настроек). Статусов в истории может содержаться не больше пяти, после чего каждый новый статус будет вытеснять самый нижний в списке.

И последняя секция – это стандартные статусы. У пользователя есть пять предустановленных статусов, у каждого из которых, в свою очередь, есть дефолтные параметры. Например, темплейту «На обеде» соответствуют следующие параметры: один час по времени, темплейт «Болею» по умолчанию будет выставлен на одну неделю, «В отпуске» – на две недели. Для темплейта «Не беспокоить» отключены и нотификации и звонки, а также дан предзаполненный автоответ «Не могу говорить, отвечу позже». Все эти параметры пользователь может менять по своему усмотрению, а их выбор осуществляется «в один клик».

Где и как отображается статус пользователя

Статус пользователя виден не только в чате, а везде, будь то карточка контакта, список контактов или звонки. В зависимости от интерфейса виден полный или сокращенный вариант статуса. Полный статус включает все параметры, вплоть до автоответа пользователя. В сокращенном – только та информация, которая необходима в данном месте. Приведем пример: около имени пользователя в списке чатов будет просто эмоджи самолетика, что означает «В полете». Но когда перейдем к взаимодействию с пользователем, увидим подробности.

Важный момент: статусы в нашей системе носят, в основном, предупредительный характер. В случаях форс-мажора коллега может пренебречь ограничением на общение и все равно обратиться к пользователю, который выставил статус «Не беспокоить». В этом случае последний получит сообщение, но его фокусировка не будет прервана дополнительными оповещениями (звуковые уведомления, яркие индикации, пуши).

Этот же паттерн реализован у нас в звонках. Например, если пользователь установил ограничение на звонки, трубка вызова будет доступна, но по нажатию на нее те пользователи, которые попадают под это ограничение, увидят соответствующее уведомление и их звонок отобразится как отклоненный. Пользователя с соответствующим статусом, тем временем, пуш-нотификация или окно входящего звонка не побеспокоят. В случае группового звонка пользователь с соответствующим статусом также только увидит активный звонок в чате и кнопку «присоединиться».

Продолжение истории со статусами следует

Можно сказать, что основная часть работы над статусами у нас закончена. Компания, которая изначально выступила заказчиком этой фичи, также использует статусы очень широко, пользователи довольны. Мы знаем, что еще у десятка наших крупнейших заказчиков данная фича оказалась очень популярна среди сотрудников, а многие другие её активно внедряют.

К слову, мы продолжаем работать над оповещением о текущем состоянии пользователя не только в рамках статусов. Так, например, мы добавили автоматический показ состояния «В звонке», который, в отличие от статуса, не накладывает каких-то ограничений, но дает понять, что коллега на встрече, как только тот присоединяется к звонку.

Дальнейший путь развития статусов в eXpress идет в направлении их синхронизации с информацией из внешних систем, например, с календарем. Мы точно знаем: статусы в корпоративной коммуникационной платформе не просто для красоты. Это область, которая обогащает наше понимание о состоянии коллег. Если статусы реализованы качественно, они могут значительно улучшить эффективность коммуникации.

Комментарии (0)