CJM: что такое карта пути клиента и как её составить
CJM — карта пути клиента: этапы, точки контакта, действия, эмоции и боли от первого касания до результата. Из чего состоит CJM, как собрать и проверить данными.
Содержание статьи
Продакт приносит на встречу схему: пользователь регистрируется, создаёт рабочее пространство, делает отчёт, зовёт коллег. Схема логичная, и все с ней согласны. Потом аналитик смотрит на первые три действия реальных пользователей и находит, что почти каждый третий трижды открыл продукт и не сделал ничего. На схеме такого этапа нет. CJM (customer journey map, карта пути клиента) — это описание того, как клиент проходит путь от первого касания до результата: этапы, точки контакта с продуктом, действия, мысли и эмоции, проблемы и возможности на каждом шаге. Хорошая CJM строится на исследованиях и данных, а не на том, как команда представляет себе клиента.
Коротко
CJM — инструмент, чтобы увидеть продукт глазами клиента и найти, где путь ломается.
- CJM описывает путь клиента по этапам: что он делает, где касается продукта, что чувствует и где спотыкается.
- Источники — интервью, обращения в поддержку, отзывы и продуктовая аналитика. Одних предположений команды мало.
- Аналитик добавляет к каждому этапу числа: сколько людей до него доходят, за какое время, какими путями.
- Одна карта на всех обычно врёт: у разных сегментов разные пути.
- Итог CJM — список возможностей с приоритетами, а не красивый плакат.
Что такое CJM простыми словами
Представьте, что вы ведёте клиента за руку от момента, когда он впервые услышал о продукте, до момента, когда получил результат и вернулся снова. На каждой остановке записываете: что он делает, где именно это происходит, о чём думает, что его раздражает. Это и есть карта пути клиента.
Главное отличие CJM от схем, которые рисует команда, — точка зрения. Схема экранов показывает продукт. CJM показывает человека с его задачей, и в неё попадает то, что происходит вне продукта: письмо коллеге, звонок в поддержку, сравнение с конкурентом в соседней вкладке.
Карта бывает про текущее состояние («как есть») или про желаемое («как должно быть»). Начинать почти всегда стоит с текущего: без него непонятно, что именно улучшать.
Зачем нужна CJM и когда её составлять
CJM окупается, когда метрики показывают проблему, но не объясняют её. Активация упала, отток вырос, конверсия из пробного периода застряла — а по дашборду непонятно, что пользователи переживают на этом отрезке пути. Карта соединяет числа с причинами: вот этап, вот сколько людей на нём теряется, вот что они говорят об этом в интервью и обращениях.
Вторая ситуация — несколько команд отвечают за разные куски одного пути. Маркетинг видит клик по рекламе, продукт — экраны онбординга, поддержка — жалобы. Общая карта показывает, где ответственность обрывается и клиент остаётся один.
Не стоит начинать с CJM, если у продукта пока нет пользователей. Карта описывает путь, который уже существует. Для новой идеи полезнее дешёвая проверка спроса, то есть MVP.
Из чего состоит CJM
Составы карт у разных команд различаются, но основные слои повторяются. Удобно рисовать их как таблицу: этапы — столбцы, слои — строки.
| Слой | Что в нём | Пример для этапа «первый день» |
|---|---|---|
| Этап | крупный шаг пути глазами клиента | разобраться, подойдёт ли сервис |
| Цель клиента | чего он хочет добиться на этапе | быстро увидеть свои данные в отчёте |
| Точки контакта | где клиент касается компании | письмо после регистрации, экран онбординга, справка |
| Действия | что он делает | открывает продукт, создаёт рабочее пространство, делает отчёт |
| Мысли и эмоции | что думает и чувствует, по интервью | «где взять данные?», раздражение от пустого экрана |
| Боли | что мешает или злит | непонятно, какой файл загрузить |
| Возможности | что можно улучшить | демо-данные на старте, шаблон первого отчёта |
| Метрики | как этап выглядит в данных | доля дошедших до отчёта в первый день, время до отчёта |
Как составить CJM: пошагово
Первую карту удобно собрать за две-три недели небольшой группой: продакт, дизайнер или исследователь, аналитик и кто-то из поддержки.
- Выберите сегмент и сценарий. «Новый пользователь из платного поиска в первую неделю» — рабочая рамка. «Все наши клиенты» — нет.
- Соберите источники. Интервью с клиентами дают мысли и эмоции, обращения в поддержку — боли, продуктовая аналитика — реальные действия и их частоту.
- Нарисуйте черновик этапов по интервью, словами клиента.
- Наложите данные: сколько людей доходит до каждого этапа, сколько времени это занимает, какими путями идут.
- Найдите разрывы — места, где путь по интервью и путь по данным расходятся. Там обычно и лежат главные возможности.
- Сведите возможности в список с владельцами и метриками, которые покажут, сработало ли улучшение.
Данные в CJM: каждый этап в числах
Покажем слой метрик на учебной базе SQL-курса — это данные SaaS-продукта «Маяк», тот же DuckDB, что в песочнице. Берём 2718 пользователей, зарегистрированных 1 июня – 31 июля: у всех прошло не меньше двух недель наблюдения.
Для каждого события считаем, какая доля когорты сделала его к концу N-го дня после регистрации (день 0 — день регистрации).
| Событие | День 0 | К концу 1-го дня | К концу 2-го дня | К концу 13-го дня |
|---|---|---|---|---|
| app_open — открыл продукт | 100 | 100 | 100 | 100 |
| workspace_created — рабочее пространство | 61,1 | 61,1 | 61,1 | 61,1 |
| report_created — первый отчёт | 39,2 | 39,2 | 39,2 | 39,2 |
| invite_sent — пригласил коллегу | 0 | 24,7 | 24,7 | 24,7 |
| export_completed — выгрузил отчёт | 0 | 0 | 22,2 | 22,2 |
with cohort as (
select user_id, signup_date
from users
where signup_date between date '2026-06-01' and date '2026-07-31'
),
first_touch as (
select c.user_id, e.event_name,
min(e.event_time) - c.signup_date as since_signup
from cohort c
join events e using (user_id)
group by c.user_id, e.event_name, c.signup_date
)
select event_name,
round(100.0 * count(*) filter (where since_signup < interval 1 day)
/ (select count(*) from cohort), 1) as day_0,
round(100.0 * count(*) filter (where since_signup < interval 2 day)
/ (select count(*) from cohort), 1) as by_day_1,
round(100.0 * count(*) filter (where since_signup < interval 3 day)
/ (select count(*) from cohort), 1) as by_day_2,
round(100.0 * count(*) filter (where since_signup < interval 14 day)
/ (select count(*) from cohort), 1) as by_day_13
from first_touch
group by event_name
order by by_day_13 desc;Сколько времени занимает каждый этап
Таблица выше говорит, что путь первой недели на деле укладывается в три дня: после второго дня новых шагов не появляется. Для карты это важный вывод — этапа «вторая неделя» в онбординге просто нет, и бороться за новичка нужно в первые 72 часа.
Время до шага считаем от первого открытия продукта. Медиана до рабочего пространства — 0,6 часа, до первого отчёта — 2 часа, до приглашения коллеги — 27 часов, до выгрузки — 52 часа. В учебной базе шаги идут почти по расписанию: медиана и 90-й перцентиль совпадают. Это свойство сгенерированных данных. В живом продукте разброс большой, и на карту стоит выносить обе величины.
Какими путями идут пользователи
Доли по событиям не показывают порядок. Чтобы увидеть реальные пути, склеим первые три события каждого пользователя в строку через string_agg и посчитаем самые частые цепочки.
| Первые три события | Пользователей | Доля |
|---|---|---|
| app_open → workspace_created → report_created | 1066 | 39,2% |
| app_open → app_open → app_open | 767 | 28,2% |
| app_open → workspace_created → app_open | 495 | 18,2% |
| app_open → app_open → invite_sent | 138 | 5,1% |
| app_open → invite_sent → app_open | 125 | 4,6% |
| app_open → workspace_created → invite_sent | 60 | 2,2% |
with cohort as (
select user_id from users
where signup_date between date '2026-06-01' and date '2026-07-31'
),
numbered as (
select e.user_id, e.event_name,
row_number() over (partition by e.user_id order by e.event_time, e.event_id) as step
from events e
join cohort using (user_id)
),
paths as (
select user_id,
string_agg(event_name, ' → ' order by step) as first_3
from numbered
where step <= 3
group by user_id
)
select first_3, count(*) as users,
round(100.0 * count(*) / sum(count(*)) over (), 1) as share
from paths
group by first_3
order by users desc
limit 6;767 человек, 28,2% когорты, трижды открыли продукт и ничего в нём не создали. На карте это отдельный этап «осматривается и не понимает, с чего начать», с собственной болью и возможностью. Без данных его бы не нарисовали.
Чем CJM отличается от user flow, воронки и service blueprint
Все четыре инструмента описывают путь, но с разных сторон. Часто их используют вместе: CJM задаёт этапы, воронка меряет переходы, user flow детализирует экраны.
| Инструмент | Чей взгляд | Что показывает | Когда нужен |
|---|---|---|---|
| CJM | клиента | этапы, действия, эмоции, боли и возможности, включая события вне продукта | понять опыт целиком и найти, где он ломается |
| User flow | продукта | экраны и переходы внутри одного сценария | проектировать интерфейс |
| Воронка | данных | сколько людей проходит заданные шаги и где отваливается | измерить потери на известном пути |
| Service blueprint | компании | что происходит «за сценой»: сотрудники, системы, процессы под каждым шагом клиента | перестраивать сервис, где участвуют люди и несколько отделов |
Частые ошибки при составлении CJM
Самая дорогая ошибка — карта из предположений. Команда собирается у доски, рисует путь, каким он кажется изнутри, и получает схему продукта вместо пути клиента. Пример выше показывает цену: этап «осматривается и ничего не делает» у почти трети новичков в такую карту не попал бы.
Вторая ошибка — одна карта на всех. Посмотрите, как по-разному проходят первую неделю пользователи из разных каналов.
| Канал | Пользователей | Рабочее пространство | Отчёт | Приглашение | Выгрузка |
|---|---|---|---|---|---|
| organic | 1075 | 67,1 | 44,3 | 25,3 | 23,8 |
| referral | 644 | 75,6 | 46,1 | 24,5 | 27,2 |
| partner | 517 | 54,2 | 35,0 | 23,4 | 20,9 |
| paid_search | 482 | 35,9 | 23,2 | 25,1 | 13,5 |
- Из рекомендаций рабочее пространство создают 75,6%, из платного поиска — 35,9%. Для платного поиска главный этап карты — первые минуты, а не приглашение коллег.
- Приглашают коллег во всех каналах одинаково, около четверти. Но в платном поиске 75 из 121 пригласивших, 62%, так и не создали рабочее пространство, а в рекомендациях таких 27,8%. Похоже, из рекламы часто приходит не тот, кто будет работать в продукте, а тот, кто ищет инструмент для команды и сразу передаёт его дальше. Это гипотеза для интервью, а не вывод, но на общей карте такой развилки нет вовсе.
- Карта без владельца и без списка возможностей быстро превращается в плакат. У каждой найденной боли должен быть ответственный и метрика.
- Карту не обновляют. После редизайна онбординга путь меняется, а карта годами показывает старый.
Проверьте на учебной базе
Откройте песочницу и посчитайте самые частые цепочки первых трёх событий отдельно для paid_search и referral. Сравните, какая доля пользователей каждого канала застревает на пути «app_open → app_open → app_open», и решите, нужна ли каналу отдельная карта.
Материалы по теме

Конверсия: что это, формула и как считать без ошибок
Конверсия — доля тех, кто сделал целевое действие, среди тех, кто мог его сделать. Формула CR, выбор знаменателя, окно конверсии, шаги воронки, сегменты и почему нельзя усреднять конверсии — на примерах с учебной базы.
STRING_AGG в SQL: собрать строки в одну и увидеть путь пользователя
Как в SQL собрать значения столбца в строку: STRING_AGG, GROUP_CONCAT и LISTAGG, порядок внутри строки, DISTINCT и NULL, путь пользователя и самые частые пути по каналам.

Conversion rate: как собрать честную воронку
Как считать conversion rate по воронке: выбрать вход, порядок событий и окно конверсии, найти настоящий drop-off и не перепутать пользователей с сессиями.