Главная

7 мин

Витрина данных для продаж и маркетинга: прозрачный ROI

Витрина данных для продаж и маркетинга помогает свести лиды, сделки и расходы на рекламу в одну модель и честно считать ROI по каналам.

Витрина данных для продаж и маркетинга: прозрачный ROI

Почему прозрачный ROI не получается без витрины

ROI почти всегда «не сходится», когда маркетинг смотрит на клики и расходы в рекламных кабинетах, а продажи живут в CRM и считают выручку по сделкам. Оба отчета могут быть правильными по отдельности, но вместе дают разные ответы на один и тот же вопрос: сколько денег принес канал.

Обычно теряется связка между тремя частями картины: расходами, лидами и выручкой. Расходы могут приезжать с задержкой или в другой валюте. Лиды дублируются (форма на сайте, звонок, чат). А выручка «уезжает» в сделки без источника, потому что менеджер не заполнил поле или источник перезаписался при повторном обращении.

Ручные таблицы и разрозненные отчеты редко спасают. Таблица быстро превращается в спор о том, чьи цифры «верные», вместо инструмента управления. Отчеты по отделам тоже не помогают: каждый считает по своим правилам. Разные окна дат, разные статусы, разные определения лида и конверсии.

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

Когда эти правила закреплены в витрине, разговор меняется. Вместо «почему опять не сходится» обсуждают, какой канал масштабировать и где в воронке теряются деньги.

Какие данные нужно собрать: лиды, сделки и расходы

Чтобы витрина данных для продаж и маркетинга работала, важно собрать не все подряд, а то, что реально склеивается в цепочку «клик - лид - сделка - оплата». Если хотя бы одно звено выпадает, ROI начинает «прыгать», а команда спорит не о выводах, а о цифрах.

Обязательные источники

Чаще всего достаточно четырех групп данных: CRM (лиды, контакты/компании, сделки и их статусы), рекламные кабинеты (показы, клики и расходы по кампаниям), аналитика сайта (сессии, источники трафика, UTM, формы) и коллтрекинг (звонки, длительность, номер, метки источника, если используете).

Иногда часть данных о лидах живет не в CRM, а в таблицах отдела продаж или в почте. Это тоже источник, но его нужно формализовать: кто вносит, по каким полям, как часто обновляется.

Минимальные поля, без которых связка ломается

Форматы могут быть разными, но минимум должен совпадать. Проверьте, чтобы в каждом блоке были:

  • дата и время события (клик/лид/сделка/оплата)
  • канал и кампания (желательно также source и medium)
  • UTM-метки или другой идентификатор источника
  • уникальный ID лида и ID сделки (или ключ для склейки)
  • сумма и валюта, плюс статус (успех/потеряно/в работе)

Расходы чаще всего берутся из рекламных кабинетов. Но если работает агентство, часть затрат может быть только в их отчетах (включая комиссии). А финальную «правду» по оплатам иногда дает бухгалтерия, особенно если вы считаете ROI от денег, а не от выставленных счетов.

Если данных не хватает, не откладывайте проект. Зафиксируйте, что именно отсутствует (например, нет UTM у звонков), задайте временное правило (например, привязка к последнему источнику сайта) и параллельно настройте сбор на будущее. Важно помечать такие места как «оценочные», чтобы не принимать по ним жесткие решения.

Договоритесь о терминах до сборки

Большая часть ошибок в ROI появляется не из-за формул, а из-за слов. Если маркетинг, продажи и финансы по-разному понимают «лид», «сделку» и «расходы», витрина данных для продаж и маркетинга будет считать аккуратно, но не то.

Зафиксируйте словарь на одном листе

Начните с простых определений и сразу решите, что попадает в учет, а что остается «для справки».

  • Лид: новая потенциальная возможность, которая впервые появилась в вашей системе (форма, звонок, чат). Один человек не должен становиться двумя лидами из-за разных точек входа.
  • Контакт: человек или организация в CRM. Контакт может быть создан позже лида, но не должен считаться новым лидом.
  • Заявка: конкретное обращение (например, запрос КП). Заявок у одного контакта может быть несколько, и это нормально.
  • Сделка: единица продаж, по которой принимается решение «выиграли/проиграли». Сразу договоритесь, какие этапы считаются активными, что такое «закрыта», и какую дату вы берете: создание, переход в «выиграна» или оплату.
  • Выручка для ROI: что подставляете в расчет - сумму договора, сумму счета или поступление денег.

Типичный конфликт выглядит так: маркетинг считает лидом каждую заявку с сайта, а продажи создают лид в CRM еще раз при звонке. На бумаге лидов становится «в два раза больше», конверсия падает, а стоимость лида растет.

Расходы и окна времени

По расходам заранее определите состав: включаете ли НДС, комиссии площадок, оплату агентства, производство креативов, тестовые бюджеты. И главное - в какой момент расход считается понесенным: по дате счета, списанию, акту или оплате.

Отдельно задайте окна времени: сколько дней после клика или заявки вы связываете лид с расходом, и сколько времени даете сделке «дозреть» до выручки. Без этих правил одни и те же деньги будут «переезжать» между месяцами, и расчет ROI по каналам станет постоянно спорным.

Минимальная модель витрины: что с чем связывать

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

Обычно хватает пяти таблиц:

  • расходы (затраты по дням, кампаниям, объявлениям)
  • касания (визиты, клики, звонки, заявки, источники)
  • лиды (контакты и статус в CRM)
  • сделки (воронка, суммы, этапы, дата оплаты)
  • справочники (каналы, кампании, регионы, менеджеры, продукты)

Связки держатся на ключах. Идеально, когда везде есть стабильный client_id (или contact_id), а дальше цепочка lead_id -> deal_id. На практике часто приходится собирать пазл из нескольких признаков: UTM-метки, phone/email, дата и время события. Полезно хранить и рекламные идентификаторы (campaign_id, ad_id), чтобы не терять точность при агрегации.

Справочники важны не «для красоты». Они фиксируют единую классификацию: один и тот же канал не должен называться то «Paid Search», то «Контекст». То же касается регионов, менеджеров и продуктов - без единых справочников отчеты начинают расходиться.

Хорошее правило: сырье не трогаем, расчетам даем отдельные поля. В raw храните оригинальные UTM, исходные названия кампаний, телефон как пришел, сумму сделки как в CRM. Рядом держите рассчитанные поля: нормализованный канал, объединенный client_id, признак уникального лида, выручка по оплате, дата первой/последней активности. Так логику можно пересчитывать, не теряя исходных данных.

Как привести данные к одному виду

Чтобы витрина данных для продаж и маркетинга считала ROI честно, все источники должны говорить на одном языке. Иначе один и тот же канал окажется в отчетах как «google», «Google Ads», «gads» и «поиск», а сделки будут жить своей жизнью в CRM.

Начните с правил именования. Самое больное место - UTM и названия кампаний. Договоритесь о шаблоне, который можно проверять автоматически: единый регистр, один разделитель (например, подчеркивание), понятные значения для source, medium и campaign. Если рекламу запускают разные команды и подрядчики, без этого сравнение каналов превращается в угадайку.

Дальше сделайте нормализацию источников. В витрине держите две сущности: «как пришло» (сырой источник) и «как называется в отчетах» (нормализованный канал). Например, все варианты Google (включая авторазметку) приводите к одному каналу. Meta отделяйте от Instagram. Яндекс не смешивайте с органикой. Офлайн и партнеров фиксируйте отдельными правилами.

В первую очередь обычно унифицируют:

  • справочник каналов и их групп (платный поиск, соцсети, партнеры, офлайн)
  • правила для UTM и названий кампаний
  • валюту, НДС и единые даты (часовой пояс)
  • идентификаторы: lead_id, deal_id, client_id
  • статусы и этапы воронки (только из утвержденного набора)

Отдельно решите, как хранить историю CRM. Для ROI важно не только текущее состояние, но и изменения: этапы, сумма, ответственный, дата закрытия. Самый надежный вариант - журнал событий или таблица истории, куда пишется каждая смена поля с временем.

Еще один частый перекос - повторные продажи и апсейл. Если клиент купил второй раз, не приписывайте весь доход к каналу привлечения. Разделяйте метрики: ROI привлечения (первая продажа) и ROI расширения (допродажи). Тогда маркетинг не будет выглядеть «волшебником» на старой базе.

Пример: в B2B компании вроде GSE.kz лид пришел из рекламы, потом ушел в длинный тендер, а через 4 месяца сумма сделки выросла после апсейла. Если в витрине есть история этапов и изменений суммы, видно, когда и за счет чего вырос доход, и какой канал действительно привел нового клиента.

Пошагово: как построить витрину данных

Витрина данных для продаж и маркетинга ценна не количеством таблиц, а тем, что цифры сходятся и их можно объяснить. Поэтому нужен короткий цикл: собрать, проверить, поправить.

Шаги, которые работают в реальных командах

  1. Соберите список источников: CRM, рекламные кабинеты, веб-аналитика, биллинг, коллтрекинг, таблицы отдела. Для каждого источника запишите владельца данных, способ доступа и что считается «истиной» (например, суммы оплат - только из бухгалтерии).

  2. Определите, как данные будут попадать в хранилище и как часто обновляться. Часто достаточно: расходы по рекламе раз в день, лиды и сделки каждый час, оплаты раз в сутки. Частота должна совпадать с тем, как вы принимаете решения.

  3. Сделайте черновую витрину на 1-2 каналах, а не сразу на всех. Возьмите, например, контекст и органику, и проверьте логику на 10-20 реальных сделках: где появился лид, когда стал сделкой, когда пришла оплата, не потерялись ли статусы.

После первой проверки расширяйтесь аккуратно. Подключайте остальные каналы и справочники: единый список кампаний, каналов, регионов, продуктов. На этом шаге обычно всплывают дубли и расхождения.

Что обязательно проверить при расширении

  • как склеиваются идентификаторы (телефон, email, client_id, deal_id) и что делать, если их несколько
  • как убираются дубли лидов и контактов, чтобы не «раздувать» конверсии
  • как учитываются возвраты и частичные оплаты, чтобы ROI не был завышен

Финальный слой делайте «для отчетов»: фиксированные поля, понятные названия, одинаковые правила расчета. Сразу настройте права доступа: маркетингу достаточно агрегатов по кампаниям, продажам нужны детали по лидам и сделкам, финансы должны подтверждать оплаты. Тогда отчеты будут совпадать у всех, а споры о цифрах станут редкостью.

Как считать ROI и какие метрики добавить рядом

ROI в витрине данных для продаж и маркетинга считается просто, но важно договориться, какую выручку подставлять. Базово: ROI = (выручка - расходы) / расходы. Для B2B чаще всего берут не сумму из КП, а подтвержденные деньги: оплату или выручку по закрытым сделкам.

Самая частая ошибка - считать ROI по «ожидаемой» выручке. Если вы используете сумму в сделке, зафиксируйте правило: это должен быть один и тот же тип выручки для всех каналов (например, «Closed Won сумма» или «Оплачено»). Если маржинальность сильно разная, полезнее считать ROI по валовой прибыли, а не по обороту.

ROMI отличается тем, что в расходах учитываются только маркетинговые затраты (реклама, подрядчики, инструменты). ROI шире: он включает всю цепочку, если вы добавляете затраты продаж (зарплаты, бонусы, обзвоны) и операционные расходы. ROMI удобен для сравнения каналов привлечения, ROI - для оценки, окупается ли воронка целиком.

Рядом с ROI почти всегда нужны метрики, которые объясняют, где ломается экономика:

  • CPL (стоимость лида) и CPA (стоимость сделки/покупателя)
  • CAC (стоимость привлечения клиента) с выбранным составом расходов
  • конверсия лид -> квалификация -> сделка -> оплата
  • средний чек и доля выигранных сделок
  • срок цикла сделки (дней) и скорость движения по этапам

Если цикл сделки длинный, не сравнивайте «январские расходы» с «январской выручкой» напрямую. Обычно помогают два подхода: сравнение по когортам (месяц первого касания) и сравнение по дате оплаты/закрытия с лагом (например, окно 60-90 дней).

Возвраты, отмены и частичные оплаты учитывайте как корректировки. Для ROI удобнее использовать чистую выручку: оплаты минус возвраты. Частичные оплаты можно считать по факту платежей (кассовый подход) или распределять по графику, но правило должно быть одинаковым для всех каналов и периодов.

Атрибуция без усложнений: как связать лид с каналом

Чтобы витрина данных для продаж и маркетинга считала ROI прозрачно, нужно ответить на простой вопрос: какой канал «привел» лида. Практичный подход - закрепить за лидом один «канал по умолчанию» по понятным правилам, а рядом хранить альтернативные модели атрибуции для сравнения.

На старте обычно достаточно четырех моделей: first click (первое касание), last click (последний клик), линейная (всем касаниям поровну) и по позиции (например, 40% первому, 40% последнему, 20% середине). Если цикл сделки длинный, полезно держать два расчета рядом: по первому касанию для оценки верхней части воронки и по последнему клику для оценки «дожима».

Проблема номер один - лиды без UTM. Здесь важно не «угадывать», а ввести приоритеты источников и закрепить их в витрине:

  • если есть gclid/yclid или явный рекламный источник, берете его
  • если нет, но есть UTM, берете UTM
  • если нет UTM, но есть referrer, считаете органикой или рефералом
  • если нет и referrer (прямой заход), помечаете как «прямой»
  • офлайн лиды (звонок, выставка) должны приходить с отдельной меткой источника

Отдельно задайте атрибуционное окно. Для быстрого продукта это может быть 7-14 дней, для B2B чаще 30-90. Слишком длинное окно завысит вклад рекламы, слишком короткое занизит, потому что лид «успеет забыть» первую точку входа.

И главное - честно используйте статус «неатрибутировано». Лучше видеть долю таких лидов и улучшать сбор данных, чем прятать проблему в «прямые» или «органику» и получать красивый, но неверный расчет ROI по каналам.

Пример: витрина для B2B-воронки от лида до оплаты

Представьте B2B-компанию в Казахстане, которая продает сложные решения: серверы, рабочие станции и внедрение. Заявки приходят с сайта (форма) и по телефону, а работа с клиентами ведется в CRM: лиды, сделки, счета, оплаты.

Маркетинг использует несколько источников трафика. Поиск приводит людей, которые уже «созрели» и ищут конкретную модель. Таргет в соцсетях чаще дает первые касания и более «сырые» лиды. Партнеры (интеграторы, реселлеры) приводят меньше заявок, но иногда с высоким средним чеком.

До появления витрины данных для продаж и маркетинга отчеты спорят друг с другом: в рекламных кабинетах видны клики и заявки, в CRM - сделки и деньги, а связать их в одну цепочку получается не всегда. Обычно всплывают одинаковые расхождения:

  • дубли лидов: клиент оставил форму и потом позвонил, в CRM это два лида
  • сделки без источника: менеджер создал сделку вручную и не заполнил поле «канал»
  • расходы «висят в воздухе»: есть траты по кампании, но в данных нет ее идентификатора для связи с заявками
  • разные статусы и даты: маркетинг считает по дате лида, продажи - по дате создания сделки или оплаты

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

Частые ошибки, из-за которых ROI становится недостоверным

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

Типовые причины, из-за которых отчеты «ломаются»:

  • путают лиды и контакты: контакт участвует в нескольких сделках, а лид конвертируется, и метрики начинают жить своей жизнью
  • выбирают «не ту» дату и не проговаривают это: ROI по дате создания лида и ROI по дате выручки отвечают на разные вопросы
  • не фиксируют изменения суммы сделки: суммы в B2B меняются, и без истории вчерашний ROI легко становится «другим» без реальных событий
  • неполно или дважды учитывают расходы: комиссии, агентское вознаграждение, НДС, бонусы, возвраты часто размазаны по разным системам
  • скрывают «неизвестный канал»: источник не заполнился, и его тихо относят к «прямым» или к самому успешному каналу, теряя сигнал о проблеме

Простой пример: у системного интегратора (например, при продаже серверов и инфраструктуры) цикл сделки длинный, а суммы корректируются после тендера. Если считать ROI по лидам за месяц, но выручку подтягивать по оплатам через квартал, без окна задержки и без истории изменений сумм отчет будет выглядеть как качели.

Минимальная защита: зафиксировать правила дат, хранить историю изменений сделки, вести единый справочник расходов и отдельно отслеживать долю «unknown» как метрику качества данных, а не как «корзину».

Чеклист перед запуском и следующие шаги

Перед тем как показывать цифры руководству, убедитесь, что витрина данных для продаж и маркетинга готова к жизни, а не только к красивому демо. Ошибки обычно прячутся в мелочах: разные названия полей, дубли лидов, некорректные окна времени.

Короткий чеклист перед запуском:

  • подключены все нужные источники: CRM (лиды, сделки), рекламные кабинеты (расходы), справочники (продукт, регион, менеджер)
  • согласованы ключевые поля и термины: что такое лид, MQL/SQL, сделка, выручка, валюта, статус оплаты
  • устранены дубли и настроены правила склейки (email, телефон, ИИН/БИН, client_id, utm)
  • заданы окна времени: когда расход считается относящимся к лиду и как долго «живет» канал
  • настроены идентификаторы связки: единый lead_id/deal_id, а для рекламы - кампания, объявление, utm_source/medium

Дальше сделайте две контрольные проверки. Первая: сумма расходов в витрине должна сходиться с отчетами рекламных кабинетов за тот же период и в той же валюте. Вторая: при обновлениях сделки не должны «пропадать» или менять историю (вчера была выручка, сегодня ноль) без понятной причины и лога изменений.

Чтобы не увязнуть, начните с малого: один продукт, один регион, 2-3 канала (поиск, таргет, партнеры) и один понятный отчет - расходы, лиды, сделки, оплаченная выручка, ROI. Так проще заметить, где ломается связка. Частая ситуация: канал дает много лидов, но ноль оплат. Причина нередко не в канале, а в том, что оплаты фиксируются в другой системе и не попали в витрину.

Следующие шаги после пилота:

  • автоматизировать обновления по расписанию и добавить мониторинг качества данных
  • разграничить доступы для маркетинга, продаж и финансов, чтобы все смотрели на одно и то же
  • зафиксировать версию модели и правил (что меняли и когда), чтобы ROI оставался сравнимым

Если для этого нужна инфраструктура и внедрение, можно опереться на системную интеграцию GSE.kz: подобрать серверы S200 под хранилище и рабочие нагрузки, а также организовать поддержку и стабильную работу витрины.

Частые вопросы

Почему ROI не сходится, если отчеты в рекламе и CRM вроде правильные?

Чаще всего проблема в том, что расходы, лиды и выручка живут в разных системах и не связаны едиными правилами. Витрина фиксирует, как именно вы склеиваете клик, обращение, сделку и оплату, и дает одну «версию правды», чтобы цифры перестали расходиться между маркетингом и продажами.

Какие источники данных нужны в первую очередь для витрины?

Начните с CRM (лиды, контакты/компании, сделки, статусы), рекламных кабинетов (расходы, кампании), веб-аналитики (UTM, сессии, формы) и, если есть, коллтрекинга (звонки и их источники). Если оплаты подтверждаются в отдельной системе или у бухгалтерии, лучше сразу брать «факт денег» оттуда, чтобы ROI считался по реальным поступлениям.

Какие поля обязательны, чтобы связка «клик — лид — сделка — оплата» не ломалась?

Нужны дата и время события, канал/кампания, идентификатор источника (UTM или рекламные клики вроде gclid/yclid), а также устойчивые ID для склейки (lead_id, deal_id, client_id или заменяющий ключ). Для денег важно хранить сумму, валюту и статус, а также понимать, какую дату вы используете для выручки: закрытие сделки или оплату.

О чем нужно договориться по терминам до сборки витрины?

Сначала договоритесь, что считается лидом, а что — просто обращением или контактом, чтобы один человек не превращался в два лида из-за формы и звонка. Затем закрепите, какую выручку подставляете в ROI (сумма договора, счета или поступление денег) и какие статусы сделок участвуют в расчете. Без этого витрина будет считать корректно, но не то, что ожидает бизнес.

Как выбрать окна времени, чтобы ROI не «переезжал» между месяцами?

Нужно заранее выбрать окно, в пределах которого вы связываете лид с источником и расходом, например 30–90 дней для B2B. Параллельно определите, к какому периоду относятся расходы: по дате списания, акту или оплаты. Иначе вы будете сравнивать расходы одного месяца с выручкой другого и получать «качели» в ROI даже при стабильной воронке.

Какая минимальная структура витрины данных обычно работает?

Минимально достаточно таблиц расходов, касаний (визиты/заявки/звонки), лидов, сделок и справочников (каналы, кампании, продукты, регионы). Сырые данные лучше хранить отдельно и рядом добавлять рассчитанные поля: нормализованный канал, признаки дублей, выручку по оплате, даты первого и последнего касания. Так вы сможете менять логику расчетов, не теряя первоисточник.

Как привести каналы и кампании к единому виду, чтобы отчеты не дробились?

Заведите единые правила UTM и именования кампаний и проверяйте их автоматически, чтобы «google», «Google Ads» и «gads» не стали разными каналами. В витрине храните два поля: «как пришло» (сырой источник) и «как показываем в отчетах» (нормализованный канал). Отдельно приведите к одному виду валюты, часовые пояса и справочник статусов воронки.

Какую атрибуцию выбрать на старте и что делать с лидами без UTM?

Базово закрепите один «канал по умолчанию» на лид по понятному приоритету: рекламный идентификатор, затем UTM, затем referrer, затем прямой заход, а офлайн — только по явной метке. Параллельно можно считать альтернативы вроде first click и last click, чтобы понимать вклад верхней части воронки и «дожима». Важно оставлять статус «неатрибутировано», а не прятать такие лиды в «прямые», чтобы видеть качество данных.

Как правильно считать ROI в витрине и какие метрики смотреть рядом?

Сначала определите, какую выручку используете, и держите правило одинаковым для всех каналов и периодов; в B2B чаще берут оплаты или закрытые успешные сделки. Рядом с ROI полезно смотреть CPL/CPA, конверсии по этапам, средний чек и длительность цикла сделки, чтобы понимать причину цифры, а не только итог. Если маржинальность сильно различается, лучше перейти на расчет по валовой прибыли, иначе ROI по обороту будет вводить в заблуждение.

Какие ошибки чаще всего делают ROI недостоверным даже при наличии витрины?

Чаще всего ломают картину дубли лидов, сделки без источника, разные даты для расчетов и неполный учет расходов (комиссии, НДС, агентские). Еще одна частая проблема — отсутствие истории изменений в CRM, когда сумма и этап сделки меняются, а вы не видите, почему «вчера было иначе». Минимальная защита — правила дедупликации, единый справочник статусов и расходов, хранение истории сделок и отдельный контроль доли «unknown» как показателя качества данных.

Запрос

Пришлите спецификацию. Остальное сделаем мы

Одна позиция или объект под ключ, любое направление. Вашу поставку от первого звонка до акта ввода ведёт один менеджер.

Расчёт бесплатноДокументы для госзакупок и тендеровОдин договор и одна гарантия