Каждый рубль, потраченный покупателем, должен с большей вероятностью пойти на бренд AM.PM.
Заменить ручные ежеквартальные начисления на мгновенную привязку бонуса к каждому подтверждённому чеку.
Создать инструмент, который продавец открывает каждый день между клиентами - и видит, что заработал.
Каждый бонус, статус, уровень - виден в реальном времени. Конец «непонятным начислениям раз в квартал».
«Нам нужно создать невероятное казино из аттракционов и сменяющих друг друга акций, которые будет постоянно мотивировать продавца. Чтобы, приходя на работу каждый день, он с нетерпением открывал наше приложение - в ожидании, что же такого мы для него приготовили.»
Если связь неочевидна или бонусы приходят через неделю, интерес гаснет за 3 дня.
Мгновенный расчёт ожидаемого бонуса при оформлении продажиБольшинство игнорировало материалы бренда, если это не влияло на доход.
Тест после статьи = начисление бонусов, как за реальную продажуПродавцы впервые получили инструмент самоанализа - раньше категории были «чёрной коробкой».
Аналитика продаж по 6 категориям с временными фильтрамиКаждое действие в торговом зале должно занимать максимум 3 клика - иначе продавец не успевает.
Скан штрих-кода вместо ручного ввода артикула
3 недели на полях: 12 глубинных интервью + 5 выездных наблюдений в торговых залах + анкетирование. Результат - 6 ключевых инсайтов. Главный сюрприз: продавцы не против учиться, но только если за это платят бонусами.
Первый вариант был линейным - убрал после обсуждения с PO: продавцу нужно начинать с любой точки, не только с продажи. Получился цикл: Цель → Продажа → Чек → Бонус → Обмен → Уровень → Цель.
Экран продажи переделывал трижды: первые два варианта с формой ввода браковались - слишком медленно. Сканер штрих-кода как стартовая точка оказался очевидным только после второго выездного наблюдения.
9/10 поняли механику сразу. После тестов: переделал шкалу прогресса, добавил статус «ожидает подтверждения чека» - без него 6 из 10 не понимали, почему баланс не меняется.
Токены, компоненты, иконки, типографика. Параллельная разработка на двух платформах без дизайн-системы - это катастрофа. Именно здесь сэкономили больше всего на QA-итерациях.
Главный сюрприз пилота: продавцы уровней 8-10 продавали на 40% больше - уровни сработали сильнее, чем задания. Страх потерять статус оказался мотиватором мощнее, чем перспектива роста.
| Этап | Цель продавца | Ключевые экраны | Эмоции / боли | Реакция системы | Метрики |
|---|---|---|---|---|---|
| 0. Триггер | Понять: есть ли смысл ставить приложение. |
|
Скепсис, боязнь «сложной бюрократии». | Чёткое правило «1 бонус = 1 рубль», прозрачные условия. | CTR по QR, установки. |
| 1. Онбординг | Быстро начать и понять, что делать сначала. |
|
Нет времени на «100 полей». | Мини-чеклист первого дня, примеры в пустых состояниях. | Завершение онбординга, TTV, D1. |
| 2. Главный экран | Видеть задачи, прогресс и бонусы за один взгляд. |
|
Ясность; риск перегруза. | Приоритизация: наверху задачи с высокой наградой и ближним дедлайном. | CTR карточек, % стартов, D3. |
| 3. Продажа | Быстро зафиксировать продажу. |
|
Страх отказа, не тратить время. | Мгновенный расчёт бонуса, push при подтверждении чека. | Скан → Чек CR, время подтверждения. |
| 4. Задания | Выполнить понятную цель и получить повышенный бонус. |
|
Азарт; «хочу видеть, сколько осталось». | Объяснение ценности категории, напоминания. | % выполнений, дни до завершения. |
| 5. Обучение | Быстро узнать про новинки и заработать бонус. |
|
Интерес; учиться с наградой. | Напоминания через 2-3 дня, мгновенная обратная связь. | % дочитываний, % прохождений. |
| 6. Бонусы | Понять баланс и обменять на реальную ценность. |
|
«Это реальные деньги?» | Быстрый обмен, понятные статусы. | Конверсия в обмен. |
| 7. Уровни | Расти в статусе и повышать коэффициент. |
|
Страх потерять статус - мощный мотиватор. | Пуши о повышении или риске падения уровня. | Распределение по уровням, аплифт. |
| 8. Статистика | Понять слабые категории и планировать продажи. |
|
Открытие; «хочу наглядности». | Быстрые фильтры, подсветка аномалий. | % открытий ≥1 раз в неделю. |
Две шрифтовые семьи разведены по ролям. Tondo Corp - брендовый шрифт AM.PM, живёт в лого, display-заголовках экранов и акцидентных лейблах: полукруглые формы создают узнаваемую тёплую геометрию бренда. Inter отвечает за весь UI: карточки, формы, статусы, числовые значения в аналитике - выбран за оптический размер и читаемость в мелких кеглях на мобильном. Оба шрифта заведены в дизайн-токены - экраны ссылаются только на семантические роли, а не на конкретный шрифт.
| Токен | Пример | Размер / LH · Вес |
|---|---|---|
| display-xl | AM.PM | 40 / 48 · 700 |
| display-lg | Мои бонусы | 32 / 40 · 700 |
| display-md | 10 уровней мастерства | 24 / 32 · 700 |
| display-sm | Задания месяца | 20 / 28 · 600 |
| display-xs | Новая продажа | 18 / 24 · 600 |
| label-lg | Сканировать чек | 14 / 20 · 600 · tracking .08 |
| label-md | Категория | 12 / 16 · 600 · tracking .08 |
| Токен | Пример | Размер / LH · Вес |
|---|---|---|
| text-xl | Лид-абзац экрана | 18 / 28 · 400 |
| text-lg | Смеситель для раковины | 16 / 24 · 400 |
| text-md | Артикул F40-88U. Бонус 240 ₽ | 15 / 22 · 400 |
| text-md / medium | Ожидает подтверждения чека | 15 / 22 · 500 |
| text-sm | До следующего уровня 4 продажи | 14 / 20 · 400 |
| text-xs | 20 апр · Магазин 0118 | 12 / 16 · 500 |
| number-xl / tnum | 12 480 ₽ | 48 / 56 · 600 · tnum |
В коде используется трёхуровневый токен: font.family.display = Tondo Corp, font.family.text = Inter. Компоненты ссылаются на семантику - h1.font, body.font, button.label.font - поэтому смена бренд-шрифта правит один токен, а не каждый экран. Tondo Corp - коммерческая семья, в приложении подключается через брендовый font-kit AM.PM; в этом превью шрифт подгружается из системы, если установлен, иначе используется sans-serif fallback.
Токены устроены трёхуровнево, чтобы одно правило меняло и iOS, и Android: примитивы (сама палитра: brand.500, warning.400) → семантика (status.confirmed, status.pending) → компонент (badge.confirmed.bg, badge.confirmed.text). Экраны ссылаются только на семантический слой - если завтра поменяется бренд-цвет AM.PM, правим один примитив, а все бейджи, кнопки и иконки обновляются автоматически.
Сырая палитра. Не имеют смысла в UI, только определяют цвет: brand.500 = #EA63E4, gray.700.
Привязка цвета к роли в продукте: status.confirmed, status.pending, status.rejected, status.learning. Дизайнер выбирает смысл, а не hex.
Частные токены, собранные из семантики: badge.confirmed.bg, badge.confirmed.border. Разработчик подставляет их в код один раз.
В мотивационной системе AM.PM статусы - это критичный элемент доверия: продавец должен мгновенно понять, что произошло с его продажей и бонусом. Pending в «Ожидает подтверждения чека» намеренно жёлтый, чтобы не конфликтовать с брендовым розовым акцентом. Confirmed зелёный - деньги уже на балансе. Rejected красный - деструктивное состояние с обязательным объяснением причины. Learning в брендовом цвете - обучение работает в той же системе бонусов, что и продажи.
| Бейдж | Токен | Когда применяется |
|---|---|---|
| Ожидает | warning / 400 | Чек загружен, бонус ещё не подтверждён модератором - без этого статуса 6 из 10 продавцов в тестах не понимали, почему баланс не меняется. |
| Подтверждено | success / 500 | Чек прошёл проверку, бонус начислен на баланс - можно тратить в магазине сертификатов. |
| Отменено | error / 500 | Чек отклонён - обязательное объяснение причины + кнопка «Отправить повторно». |
| Обучение | brand / 500 | Бонус начислен за пройденный тест по новинке - в брендовом цвете, чтобы выделить новый канал заработка. |
Токен → компонент → паттерн. Карточка задания собирается из атомов: бейдж статуса, иконка категории, прогресс-бар, типографика.
Все карточки заданий, новостей и обучения построены на одной компоненте-ячейке с 4 вариантами наполнения. Это убрало 80% расхождений между платформами при сборке.
iOS (UIKit) и Android (Jetpack Compose) собираются из одного источника правды в Figma. Параллельная разработка без расхождений.
Спецификации содержали описание поведений, граничных случаев и токенов. Время на согласование с разработкой сократилось - больше всего сэкономили на QA-итерациях.
Карточки заданий, бонусный виджет и уровень собраны на одном экране. Наверху - задачи с высокой наградой и ближним дедлайном. Один главный приоритет на сессию, чтобы продавец не тонул в контенте между клиентами.
Прогресс-бар до следующей ступени и текущий коэффициент бонусов в профиле. Уровни 8-10 дали +40% к продажам vs. новички - страх потерять накопленный статус мотивирует сильнее, чем перспектива роста.
Между клиентами - 2 минуты, ручной ввод артикула не успевал. Сканер штрих-кода как стартовая точка экрана продажи появился только после второго выездного наблюдения. Каждое действие - максимум 3 клика.
Смесители, Душевая, Санфарфор, Wellness, Мебель, Аксессуары. Продавцы впервые получили инструмент самоанализа: фильтры по периодам, подсветка аномалий, сравнение с прошлой неделей.
Чеки буферизируются локально и отправляются при восстановлении соединения. В торговом зале сеть нестабильна - потеря данных недопустима, иначе вся прозрачность системы рушится.
При отклонении - понятное объяснение причины + инструкция + повторная отправка. Для нового продавца без истории - пустые состояния с примерами и микро-задание «Первая продажа» с повышенным бонусом.