Привет! Меня зовут Егор Пенчуков, я лид-дизайнер мессенджера Линк Чаты. В начале 2023 года мы начали делать корпоративный мессенджер — сейчас он находится в бета-тестировании и готовится выходить в публичный релиз. Мы уже сделали большую часть функционала, а сейчас начали делать пользовательские статусы.
Сначала мы хотели выкатить фичу с минимальными затратами ресурсов разработчиков, но тестирование показало, что пользовательский сценарий отличается от наших ожиданий. В посте расскажу, к каким выводам пришли и как выбрали, на наш взгляд, оптимальную реализацию. Моя цель — поделиться опытом и получить от вас фидбэк. Когда статусы отправятся в прод, они могут оказаться там с учетом ваших замечаний и предложений.
Что такое статусы и зачем они нужны
Онлайн-статус — это не единственное состояние, которое может быть у профиля в мессенджере. Еще в конце 90-х в ICQ можно было поставить «не беспокоить» или «золотой цветок», который можно было получить, если отправить определенное сообщение 15 контактам :) Чуть позже появилась возможность кастомизации: люди ставили эмоджи и подписи с шутками, цитатами, строчками из песен или мемами. В общем, статусы были отличной возможностью не только сообщить о готовностью к общению, но и поупражняться в остроумии и самовыразиться.
В корпоративном мессенджере пользовательский статус — это еще и практичная функция. Она помогает понять, можно ли сейчас написать коллеге, как долго он пробудет в отпуске или сколько еще будет на встрече. Да, это полезно, но, в отличии от мастхэв-фич, без которых невозможно представить работу мессенджера (например, отправки и редактирования сообщений), пользовательские статусы можно отнести к should have: должны быть, но не обязательны.

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

Сначала думали, что у готовых пресетов большая ценность, но тест показал, что это совсем не так
«Готовые пресеты важны», — подумали мы, когда изучили опыт в других корпоративных мессенджерах. Сделали макеты и пригласили респондентов из нашей компании, чтобы провести модерируемое тестирование. Удобно, что целевая аудитория продукта совпадает: в МТС Линк работает 500+ человек, часть из них на удаленке, другие — в офисе или на гибридном формате. Практически все пользуются звонками и ведут переписку в мессенджерах.

«Готовые пресеты не важны», — вот что сказала нам аудитория. Всего тест прошло 15 респондентов, и, если объединить ответы из интервью, получилась такая картина:
Готовые пресеты используют редко.
Обычный набор статусов, которым оперирует пользователь в течение недели, — не более четырех.
В основном все пользуются недавними статусами, постоянно переключая и редактируя их.
Так мы поняли, что готовые пресеты нужны лишь в первый раз, как пример, а не готовый шаблон. Мы планировали, что в настройках организации администратор будет сам добавлять для команды набор статусов. Но вряд ли бы ими активно пользовались, так что мы пришли к идее сделать общий список, где можно удалять и менять любой статус. Даже предустановленный.

Срок действия статуса можно отображать по-разному
В рабочем мессенджере важно не только ставить статус, но и указывать срок его действия. Например, пользователь ставит «обед», но что будет, если он забудет убрать статус спустя время? Проблему решает таймер: мы предлагаем выбирать диапазон действия статуса: в течение 30 минут, 1 часа или целого дня. После достижения дедлайна таймер слетает.
Вопрос: как отображать этот таймер для других пользователей? Тут есть варианты: точка отсчета, дедлайн в формате ДД.ММ.ГГ или комбинация обоих способов. Сделать выбор снова помогли пользователи — на этот раз мы воспользовались количественным исследованием.

Тест собрали в PathWay и разослали форму по внутренним и внешним чатам. В опросе приняло участие 135 человек: наши коллеги из МТС Линк и подписчики телеграм-канала.
Первый вариант победил с большим отрывом (73%), но третий, комбинированный, тоже получил свою долю голосов — 24%. Пока что реализуем первый, а потом будем изучать пользовательский опыт на бета-тесте.

Следующий этап — реализовать возможность ставить свое время. У нас сейчас есть только готовые временные диапазоны, но понятно, что не всем будет удобно выставлять таймер с шагом в десять минут, полчаса, час или день.

Синхронизировать эмоджи оказалось непростой задачей
Изначально мы хотели делать свои монохромные эмоджи с небольшой анимацией, но поняли, что идея дорогая в реализации и в нее сложно зайти. Поэтому мы решили взять системные эмоджи для платформ Apple, а на всех остальных использовать опенсорсные от Google. Они, на мой взгляд, не такие красивые, как на iPhone и Mac, и хочется всё это дело как-то засинхронизировать. Если вы сталкивались с подобной задачей, то расскажите в комментариях, как с ней разбирались: мне будет полезно узнать.

Что в итоге: как будут работать статусы
Смена статуса будет происходит через личный профиль. На вебе он всегда отображается в верхнем углу мессенджера и всплывает при наведении курсора, поэтому действие получается быстрым. На телефоне профиль находится внизу, в отдельной вкладке, так что до него тоже будет легко добраться.
Расскажу, как всё будет устроено на вебе и десктопе. В списке меню можно выполнить эти действия:
выбрать или отредактировать вариант из готовых пресетов;
создать новый статус, добавить подпись и установить время.

После того как статус установлен, он становится активным. Меню меняется: мы крупно показываем текущий статус и время его действия. Таймер можно изменить, а сам статус — сбросить. При клике на эмоджи откроется редактирование.

Подпись к статусу можно будет увидеть везде, где отображается профиль человека. Размер всплывающего текста ограничили 100 символами. Сначала у нас был лимит вообще в 50 знаков, но мы его увеличили, чтобы в тексте можно было указать людей для контакта. Например: «Ушел в отпуск, по всем вопросам — к @username».
Еще мы оставили возможность установить эмоджи без описания: пригодится тем, для кого статус — элемент украшения или средство привлечения внимания.

Планы на будущее: от ручных статусов к интегрированным
Сейчас статусы устанавливаются и обновляются вручную. В будущем они будут меняться еще и в зависимости от действий пользователя — например, мы сделаем интеграцию с календарем своего сервиса Встречи, который будет сам менять статус и добавлять в подпись длительность звонка.
Разрабатывая эту фичу, мы во многом опирались на пользовательский опыт. В своем телеграм-канале мы уже начали получать обратную связь и советы от подписчиков. Так пришло предложение сделать колокольчик-напоминание, на который можно кликнуть и получить уведомление, когда человек освободится. Считаю, идея отличная и над ней точно стоит подумать. Поэтому этот пост во многом я написал для того, чтобы получить и здесь, на Хабре, обратную связь. Приглашаю вас в комментарии: что думаете про пользовательский опыт? какие варианты для улучшений еще могут быть? стоит ли перерисовывать все эмоджи на свои или нет?