Event model для продаж и поддержки: какие события собирать с…
  • Customer 360 и данные
  • Автор: Команда CrmAI
  • Опубликовано:
Event model для продаж и поддержки: сбор событий с сайта, продукта, чатов и звонков

Однажды мне позвонил знакомый — владелец интернет-магазина электроники в Алматы. Голос был расстроенным: «Мы потратили полгода на внедрение CRM, но до сих пор не понимаем, почему клиенты уходят. У нас есть данные о заказах, но это верхушка айсберга. Что происходит до покупки? Почему человек положил товар в корзину и исчез? Куда он потом делся?»

Я задал ему простой вопрос: «А какие события вы собираете с сайта?» Пауза. «Ну... Google Analytics стоит. Там вроде всё видно.» Я вздохнул — история повторялась в сотый раз.

Проблема в том, что Google Analytics показывает агрегированные метрики: сколько людей зашло на страницу, сколько процентов ушло. Но он не отвечает на вопрос: «Что делал конкретный Асланбек Сериков из Караганды за три дня до того, как написал гневный отзыв?» А именно такие вопросы важны для продаж и поддержки.

Сегодня разберём, как построить event model — систему сбора событий, которая связывает поведение клиента на всех точках контакта: от первого визита на сайт до звонка в поддержку через год после покупки. Расскажу на реальных примерах казахстанского бизнеса, какие события стоит собирать, а какие — пустая трата ресурсов.

«Вы не можете управлять тем, что не измеряете. Но важнее — вы не можете персонализировать то, чего не видите. Event model — это глаза вашего бизнеса на всём пути клиента.»

Адаптация идеи Питера Друкера
для эпохи data-driven бизнеса
Цитата

Что такое 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_cart
  • product_removed_from_cart
  • cart_viewed
  • checkout_started
  • checkout_step_completed (доставка, оплата)
  • order_placed
  • payment_completed
  • order_delivered (из логистики)

События из продукта: SaaS, приложения, сервисы

Если у вас не просто сайт, а продукт — мобильное приложение, SaaS-платформа, личный кабинет — события из него критически важны. Именно они показывают, как клиент на самом деле использует то, за что заплатил.

Приведу пример из практики. Казахстанский стартап — платформа для бухгалтерского учёта малого бизнеса. Продажи шли хорошо, но через 3 месяца отток достигал 40%. Почему? Без product analytics было непонятно.

Когда внедрили event model, картина прояснилась. Клиенты, которые уходили, имели характерный паттерн: регистрировались, создавали одну-две накладные, никогда не подключали интеграцию с банком — и пропадали. А клиенты, которые оставались, в первую неделю обязательно делали три вещи: подключали банк, импортировали контрагентов и создавали хотя бы один отчёт.

Это знание позволило перестроить онбординг: теперь новым пользователям активно помогают сделать эти три действия в первые 7 дней. Отток снизился до 22%.

Категории product events

Онбординг
  • account_created
  • profile_completed
  • first_project_created
  • team_member_invited
  • integration_connected
Ключевые действия
  • feature_used (с указанием какой)
  • document_created
  • report_generated
  • export_performed
  • automation_configured
Проблемы и ограничения
  • error_encountered
  • limit_reached
  • upgrade_prompt_shown
  • feature_blocked (по тарифу)
  • session_timeout
Монетизация
  • trial_started
  • subscription_created
  • plan_upgraded
  • plan_downgraded
  • subscription_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 model

Архитектура сбора событий: как всё это связать

Теперь, когда понятно, какие события собирать, возникает вопрос: как технически это реализовать? Событий много, источников много — как не утонуть в сложности?

Есть два основных подхода: централизованный и федеративный. Расскажу о плюсах и минусах каждого.

Централизованная (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

Как найти узкие места в процессах