Звонит знакомый – владелец интернет-магазина электроники в Алматы. Голос расстроенный до невозможности: «Слушай, мы потратили полгода на внедрение CRM. Работает. Данные о заказах есть. Но до сих пор не понимаем главного – почему клиенты уходят. Почему положили товар в корзину и исчезли? Что происходит между "зашёл на сайт" и "купил"? Куда они вообще деваются?»
Спрашиваю: «А какие события вы собираете с сайта?» Пауза. «Ну... Google Analytics стоит же. Там вроде всё видно.» Вздох. История повторяется в сотый раз.
Проблема в том, что Google Analytics показывает агрегированные метрики – сколько народу зашло на страницу, сколько процентов свалило. Но он не отвечает на главный вопрос: «Что конкретно делал Асланбек Сериков из Караганды за три дня до того, как написал нам гневный отзыв?» А именно такие вопросы критичны для продаж и поддержки. Персональная история, а не усреднённые проценты.
Разберём, как построить event model – систему сбора событий, которая связывает всё поведение клиента на всех точках контакта. От первого визита на сайт до звонка в поддержку через год после покупки. На реальных примерах казахстанского бизнеса покажу, какие события реально стоит собирать, а какие – просто сожрут ресурсы впустую.
«Вы не можете управлять тем, что не измеряете. Но важнее – вы не можете персонализировать то, чего не видите. Event model – это глаза вашего бизнеса на всём пути клиента.»
Что такое event model и зачем она нужна бизнесу
Если упростить до предела, event model – это договорённость о том, какие действия клиента мы фиксируем и в каком формате храним. Не просто «пользователь был на сайте», а структурированные записи: кто, что сделал, когда, в каком контексте.
Представьте себе детектива, который расследует преступление. Ему нужны не общие слова «что-то произошло», а точная хронология событий: в 14:32 подозреваемый вошёл в здание, в 14:35 поднялся на третий этаж, в 14:38 вышел через чёрный ход. Event model для бизнеса – то же самое, только «преступление» – это уход клиента к конкуренту, а «подозреваемый» – цепочка его действий, которая к этому привела.
Без event model вы работаете вслепую. С ней – понимаете, что именно привело к покупке (или отказу), можете воспроизвести успешные паттерны и предотвратить проблемные.
Что даёт event model бизнесу
Customer 360
Полная картина поведения клиента от первого касания до повторной покупки – в одном месте
Триггеры в реальном времени
Бот или менеджер реагирует на действие клиента мгновенно – пока интерес горячий
Предиктивная аналитика
AI учится на паттернах событий и предсказывает churn, upsell-возможности, LTV
Контекст для поддержки
Оператор видит, что клиент делал перед обращением – не нужно переспрашивать
Я часто слышу возражение: «У нас и так данных много, зачем ещё?» Дело не в количестве, а в связности. Когда данные разбросаны по Google Analytics, CRM, телефонии и чат-платформе – они бесполезны. Event model объединяет их вокруг одного клиента, создавая цельную историю.
О том, как построить единый профиль клиента, мы подробно писали в статье Единый профиль клиента Customer 360: как собрать. Сегодня сфокусируемся на событийной модели – фундаменте для такого профиля.
Анатомия события: из чего состоит правильная запись
Прежде чем говорить о том, какие события собирать, давайте разберёмся, как должно выглядеть хорошее событие. Это не просто строчка в логе – это структурированная запись с обязательными и опциональными полями.
Обязательные поля каждого события
event_id
Уникальный идентификатор события. UUID или ULID. Нужен для дедупликации – если событие пришло дважды, вы его не посчитаете дважды.
timestamp
Когда произошло событие. Важно: время клиента (в его часовом поясе) и серверное время – разные вещи. Храните в UTC, конвертируйте при показе.
user_id / anonymous_id
Кто совершил действие. До авторизации – anonymous_id (cookie или device fingerprint), после – связываем с user_id из CRM.
event_name
Что произошло. Используйте глагол + объект: page_viewed, product_added_to_cart, support_ticket_created. Единый naming convention критичен.
source
Откуда пришло событие: website, mobile_app, chatbot, call_center, email. Позволяет строить омниканальную картину.
properties
Контекст события: для product_viewed – product_id, price, category; для call_ended – duration, outcome, agent_id. Специфичны для каждого типа.
Вот как выглядит реальное событие в JSON-формате:
{
"event_id": "evt_8f2a4b6c-1234-5678-9abc-def012345678",
"timestamp": "2025-12-29T14:32:15.234Z",
"user_id": "usr_almaty_12345",
"anonymous_id": "anon_cookie_abc123",
"event_name": "product_added_to_cart",
"source": "website",
"properties": {
"product_id": "SKU-IPHONE15PRO-256",
"product_name": "iPhone 15 Pro 256GB",
"price": 599900,
"currency": "KZT",
"quantity": 1,
"category": "smartphones",
"page_url": "/products/iphone-15-pro",
"referrer": "google_organic",
"utm_campaign": "winter_sale_2025"
},
"context": {
"device": "mobile",
"os": "iOS 17.2",
"browser": "Safari",
"ip": "2.134.xxx.xxx",
"city": "Алматы"
}
}
Несколько моментов, на которые стоит обратить внимание. И user_id, и anonymous_id в одной записи – это позволяет связать поведение до и после регистрации. В properties лежит вся бизнес-логика: что за товар, какая цена, откуда пришёл. А context содержит техническую информацию для сегментации (например, отдельная аналитика по мобильным пользователям).
Важно договориться о naming convention заранее. Я видел проекты, где одно и то же событие называлось add_to_cart, addToCart, cart_item_added, product_added_to_basket в разных частях системы. Это кошмар для аналитики. Выберите один стиль (рекомендую snake_case с глаголом в прошедшем времени: product_viewed, order_placed, call_ended) и придерживайтесь его везде.
События с сайта: что реально важно, а что шум
Начнём с самого популярного источника – веб-сайта. Здесь легко впасть в две крайности: собирать вообще всё (включая каждое движение мыши) или ограничиться базовыми page views. Оба подхода ошибочны.
Расскажу историю. Один казахстанский e-commerce проект решил «собирать все данные, потом разберёмся». За три месяца накопили 2 терабайта событий. Когда пришло время анализировать – оказалось, что 95% данных бесполезны (события hover_over_element, scroll_10_percent, mouse_moved), а нужных для бизнеса событий толком нет. Потратили ещё два месяца на переделку.
Критические (собирать обязательно)
- page_viewed (ключевые страницы)
- product_viewed
- product_added_to_cart
- checkout_started
- order_placed
- user_signed_up
- user_logged_in
Важные (собирать по возможности)
- search_performed
- filter_applied
- product_removed_from_cart
- form_submitted
- promo_code_applied
- wishlist_item_added
- review_submitted
Шум (обычно не нужны)
- mouse_moved
- scroll_percentage
- element_hovered
- page_focused / page_blurred
- every_click (без контекста)
- viewport_resized
Объясню логику. Критические события – это те, без которых невозможно построить воронку продаж и понять путь клиента. Если вы не знаете, что человек добавил товар в корзину – как вы отправите ему напоминание о брошенной корзине?
Важные события добавляют контекст. search_performed показывает, что человек искал (и нашёл ли). filter_applied – какие критерии важны для покупателя. Это ценно для персонализации, но бизнес не рухнет без этих данных.
Шум – события, которые генерируют огромный объём данных с минимальной пользой. Да, heatmaps бывают полезны, но для этого есть специализированные инструменты (Hotjar, Clarity). Тащить scroll_percentage в CRM – пустая трата ресурсов.
Практика: события для интернет-магазина электроники
Вот минимальный набор событий, который мы рекомендуем казахстанским e-commerce проектам на старте:
product_list_viewed– каталог, категорияproduct_viewed– карточка товараproduct_added_to_cartproduct_removed_from_cartcart_viewed
checkout_startedcheckout_step_completed(доставка, оплата)order_placedpayment_completedorder_delivered(из логистики)
События из продукта: SaaS, приложения, сервисы
Если у вас не просто сайт, а продукт – мобильное приложение, SaaS-платформа, личный кабинет – события из него критически важны. Именно они показывают, как клиент на самом деле использует то, за что заплатил.
Приведу пример из практики. Казахстанский стартап – платформа для бухгалтерского учёта малого бизнеса. Продажи шли хорошо, но через 3 месяца отток достигал 40%. Почему? Без product analytics было непонятно.
Когда внедрили event model, картина прояснилась. Клиенты, которые уходили, имели характерный паттерн: регистрировались, создавали одну-две накладные, никогда не подключали интеграцию с банком – и пропадали. А клиенты, которые оставались, в первую неделю обязательно делали три вещи: подключали банк, импортировали контрагентов и создавали хотя бы один отчёт.
Это знание позволило перестроить онбординг: теперь новым пользователям активно помогают сделать эти три действия в первые 7 дней. Отток снизился до 22%.
Категории product events
Онбординг
account_createdprofile_completedfirst_project_createdteam_member_invitedintegration_connected
Ключевые действия
feature_used(с указанием какой)document_createdreport_generatedexport_performedautomation_configured
Проблемы и ограничения
error_encounteredlimit_reachedupgrade_prompt_shownfeature_blocked(по тарифу)session_timeout
Монетизация
trial_startedsubscription_createdplan_upgradedplan_downgradedsubscription_cancelled
Главный принцип: события должны отражать ценность для клиента. Не «кнопка нажата», а «отчёт сгенерирован». Не «экран открыт», а «интеграция подключена». Простой тест: это действие приближает клиента к получению ценности от продукта? Если да – собирайте.
Отдельно отмечу события ошибок. Когда клиент сталкивается с проблемой – это момент истины. Если вы знаете, что Нурсултан из Нур-Султана три раза за неделю видел ошибку «Не удалось загрузить отчёт» – можете проактивно связаться с ним до того, как он уйдёт к конкуренту.
О том, как использовать такие сигналы для предсказания оттока, читайте в статье Churn prediction: прогноз оттока клиентов и удержание.
События из чатов и мессенджеров: диалоги как данные
Чаты – золотая жила данных, которую многие игнорируют. Там клиент говорит прямым текстом, что его волнует, чего не хватает, почему недоволен. Но без структурированных событий эта информация теряется в потоке сообщений.
Важно понимать: мы не предлагаем хранить каждое сообщение в event model (это вопрос другой системы – диалогового хранилища). Мы говорим о событиях, которые можно извлечь из диалогов.
События из чат-каналов
Структурные события
-
chat_startedканал, источник, время ожидания -
chat_endedдлительность, количество сообщений, outcome -
chat_transferredот бота к оператору, между операторами -
chat_ratedоценка CSAT, комментарий
Семантические события (AI-извлечение)
-
intent_detectedжалоба, вопрос о цене, запрос на возврат -
sentiment_detectedпозитив, негатив, нейтрально -
product_mentionedизвлечённый product_id или название -
competitor_mentionedупоминание конкурента в диалоге
Семантические события – это следующий уровень. С помощью AI (NLP-моделей) можно автоматически извлекать из текста диалога структурированную информацию. Клиент написал «Вчера заказал iPhone, а сегодня увидел, что у Sulpak дешевле на 20 тысяч» – это не просто сообщение, это три события: intent_detected (жалоба на цену), product_mentioned (iPhone), competitor_mentioned (Sulpak).
Такие события бесценны для маркетинга и product-менеджмента. Когда видите, что за месяц 50 клиентов упомянули конкурента X в контексте «у них дешевле» – это сигнал к действию.
Подробнее о том, как анализировать настроения клиентов в реальном времени, читайте в статье Sentiment analysis в CRM: мониторинг удовлетворённости в реальном времени.
События из звонков: телефония всё ещё актуальна
Несмотря на рост мессенджеров, телефон остаётся важным каналом – особенно в B2B и для сложных продуктов. Звонок – это концентрат информации: за 5 минут клиент скажет больше, чем за 20 сообщений в чате.
Проблема в том, что звонок – это неструктурированные данные (аудио). Чтобы превратить его в события, нужны два уровня обработки: технический (факт звонка, длительность, участники) и семантический (о чём говорили, какой результат).
| Событие | Что фиксируем | Зачем нужно |
|---|---|---|
call_initiated |
Входящий/исходящий, номер клиента, время | Начало воронки звонков, связь с кампаниями |
call_answered |
Кто ответил (IVR, оператор, бот), время ожидания | SLA, нагрузка на операторов, эффективность IVR |
call_transferred |
Откуда → куда, причина перевода | Анализ маршрутизации, обучение операторов |
call_ended |
Длительность, outcome (продажа, консультация, отказ) | Конверсия звонков, эффективность скриптов |
call_transcribed |
ID записи, сводка ключевых тем | Поиск по звонкам, обучение, контроль качества |
call_scored |
Оценка качества (автоматическая или ручная) | QA, мотивация операторов, выявление проблем |
Особенно ценно событие call_transcribed в связке с AI-анализом. Современные системы speech analytics могут автоматически извлекать из разговора: упомянутые продукты, возражения клиента, эмоциональный тон, соблюдение скрипта оператором.
Пример из практики. Страховая компания в Казахстане внедрила автоматический анализ звонков. Система выявила, что операторы, которые в первые 30 секунд упоминают слово «защита» (а не «страховка»), имеют конверсию на 15% выше. Это знание невозможно получить без event model на уровне содержания звонков.
О речевой аналитике подробнее читайте в статье Речевая аналитика: инсайты из звонков.
Хотите построить event model для своего бизнеса?
Проведём аудит ваших точек контакта с клиентами и спроектируем event model, которая свяжет сайт, продукт, чаты и звонки в единую картину Customer 360. Первая консультация – бесплатно.
Архитектура сбора событий: как всё это связать
Теперь, когда понятно, какие события собирать, возникает вопрос: как технически это реализовать? Событий много, источников много – как не утонуть в сложности?
Есть два основных подхода: централизованный и федеративный. Расскажу о плюсах и минусах каждого.
Централизованная (Event Hub)
Все источники отправляют события в единую шину (Kafka, RabbitMQ, AWS Kinesis), откуда они распределяются в CRM, аналитику, хранилище.
Плюсы:
- + Единая точка контроля
- + Проще гарантировать консистентность
- + Легче добавлять новых потребителей
Минусы:
- Сложнее в начальной настройке
- Single point of failure
- Требует DevOps-экспертизы
Федеративная (Point-to-Point)
Каждый источник напрямую интегрируется с CRM через API/webhooks. Нет единой шины, связи – между конкретными системами.
Плюсы:
- + Быстрый старт
- + Меньше инфраструктуры
- + Понятнее для небольших команд
Минусы:
- Сложность растёт экспоненциально
- Труднее поддерживать консистентность
- Дублирование логики
Мой совет: если у вас до 5 источников событий – начинайте с федеративной архитектуры. Webhooks и прямые API-интеграции быстро решат задачу. Когда источников станет больше или появится потребность в real-time обработке – переходите к централизованной.
Вот как выглядит типичный поток событий:
Сайт
Event Hub
CRM
Приложение
Чаты
Телефония
Важный момент – связывание пользователей. Один и тот же человек может прийти с анонимного визита на сайте (anonymous_id), потом зарегистрироваться (user_id), потом позвонить по телефону (phone_number). Event model должна связывать все эти идентификаторы в единый профиль.
Технически это называется identity resolution или identity stitching. Большинство современных CDP (Customer Data Platform) и продвинутых CRM умеют это делать. Если у вас такой системы нет – придётся реализовывать логику связывания вручную.
Подробнее об архитектуре интеграций читайте в статье Событийная архитектура (event-driven) для бизнеса.
Антипаттерны: как не надо строить event model
За годы работы я видел много ошибок в построении event model. Некоторые из них типичные – и вы можете их избежать.
Событие-помойка
Одно событие generic_action с полем action_type, куда пишется всё подряд. Невозможно анализировать, невозможно строить триггеры. Каждое бизнес-действие – отдельное событие.
Отсутствие версионирования
Структура события меняется, но версия не указывается. Старые данные ломают новые отчёты. Всегда добавляйте поле schema_version.
PII в открытом виде
Телефоны и email в properties без хеширования. Нарушает GDPR/152-ФЗ и создаёт риски при утечке. Персональные данные – только через ID с отдельным хранилищем.
Клиентское время без проверки
Timestamp берётся с устройства клиента, которое может быть настроено неправильно. Результат – события из «будущего». Валидируйте и корректируйте на сервере.
Жёсткие связи вместо ID
В событии хранится название товара вместо product_id. Товар переименовали – связь потеряна. Всегда используйте стабильные идентификаторы.
«Мёртвые» события
Собираете событие, но нигде его не используете. Через год – 100 ГБ бесполезных данных. Для каждого события должен быть use case: триггер, отчёт, модель.
Отдельно скажу про over-engineering. Я видел проекты, где на этапе MVP строили сложнейшую event-driven архитектуру с Kafka, schema registry, stream processing – и застревали на месяцы. Начинайте просто. Webhooks в CRM. Когда упрётесь в ограничения – усложняйте.
Практический чек-лист: с чего начать
Если вы дочитали до этого места и думаете «окей, понятно, но с чего конкретно начать?» – вот пошаговый план.
Чек-лист внедрения event model
Неделя 1: Аудит и планирование
- Составить список всех точек контакта с клиентом
- Определить 10-15 критических событий для старта
- Написать naming convention и зафиксировать
- Определить структуру обязательных полей
Неделя 2-3: Реализация
- Внедрить трекинг на сайте (GTM + dataLayer)
- Настроить webhooks из чат-платформы
- Подключить телефонию к CRM
- Реализовать identity stitching
Неделя 4: Валидация
- Проверить, что все события приходят в CRM
- Построить тестовую воронку на реальных данных
- Настроить первый триггер (напр., брошенная корзина)
- Документировать схему событий
Далее: Развитие
- Добавлять новые события по мере необходимости
- Внедрить AI-анализ (sentiment, intent)
- Построить предиктивные модели на событиях
- Масштабировать архитектуру при росте
Заключение: события – это язык, на котором говорит бизнес
Вернусь к истории, с которой начал. Тот владелец интернет-магазина электроники через три месяца после внедрения event model позвонил снова. Но теперь голос был совсем другим.
«Слушай, – сказал он, – я наконец понимаю своих клиентов. Вижу, что люди, которые смотрят больше трёх товаров в категории "смартфоны" за сессию, покупают с вероятностью 40%. А те, кто сразу идёт на страницу конкретной модели – с вероятностью 65%. Мы перестроили главную страницу, чтобы быстрее показывать конкретные модели. Конверсия выросла на 12%».
Ради этого и нужна event model. Не абстрактные графики в Google Analytics, а конкретные инсайты, которые превращаются в действия. Не «трафик вырос» или «трафик упал», а понимание, почему конкретный клиент купил или не купил.
Event model – это не просто техническая задача. Это способ перевести поведение клиентов на язык, который понимает бизнес. И чем раньше вы начнёте этот «перевод» – тем больше преимуществ получите.
Готовы построить Customer 360 на основе событий?
Поможем спроектировать event model для вашего бизнеса, настроить сбор событий с всех каналов и связать их в единый профиль клиента. Начнём с бесплатного аудита.
Часто задаваемые вопросы
Сколько событий нужно для начала?
Для MVP достаточно 10-15 критических событий, покрывающих основную воронку: от первого визита до покупки и обращения в поддержку. Не пытайтесь собрать всё сразу – начните с минимума, который даёт бизнес-ценность, и расширяйте по мере необходимости.
Как связать анонимного посетителя с зарегистрированным пользователем?
Используйте identity stitching: до регистрации присваивайте anonymous_id (cookie или device fingerprint), после авторизации – связывайте его с user_id. Большинство CDP и современных CRM поддерживают это из коробки. Если нет – реализуйте таблицу связей identity_graph.
Какие инструменты использовать для сбора событий?
Для сайта – Google Tag Manager + Segment или Rudderstack. Для продукта – Amplitude, Mixpanel или собственный SDK. Для чатов и телефонии – webhooks из соответствующих платформ. Ключевое – не инструмент, а единый формат событий и центральное место сбора.
Как обеспечить качество данных событий?
Три уровня: 1) Schema validation – проверяйте структуру каждого события перед записью; 2) Мониторинг – алерты на аномалии (резкое падение/рост количества событий); 3) Дедупликация – используйте event_id для предотвращения дублей. Автоматизируйте всё, что можно.
Сколько хранить исторические события?
Зависит от бизнеса. Для анализа воронок обычно достаточно 12-24 месяцев. Для предиктивных моделей может потребоваться больше. Рекомендуем: hot storage (быстрый доступ) – последние 3 месяца, cold storage (архив) – до 5 лет. Учитывайте требования GDPR/152-ФЗ по хранению персональных данных.
Читайте также
CRM vs CDP vs DWH: архитектура Customer 360
Кто является единым источником правды о клиенте
MDM в CRM: golden record и дедупликация
Как создать единую эталонную запись клиента
Качество данных в CRM: SSOT
Как построить единый источник правды
Наблюдаемость LLM-системы
Логи, трассировка и метрики для AI
Сквозная аналитика CRM
UTM, источники, атрибуция и выручка
Операционная эффективность: bottlenecks
Как найти узкие места в процессах