К содержанию
SemCue

Art Quest · Horror Cinema · MORPHEUS

Одна картинавместо пяти кабинетов.

Сайты, боты, CRM, брони, реклама и платежи трех направлений жили в разных кабинетах, и каждый отвечал на свой вопрос. Мы собрали для компании одну систему: свой трекер событий, пульт владельца, сборщик, который по таймерам читает 20 источников, и зеркало amoCRM в общей базе. Главная цифра пульта: денежные действия, а не визиты.

Работает · трекер, пульт и сборщик на боевом сервере; недельный пакет собирается по таймеру с 12 октября 2026

Откуда данные

  • Сайты трех брендов
  • Боты Telegram и VK
  • amoCRM и брони
  • ЮKassa
  • Яндекс Метрика
  • Search Console
  • Авито
  • VK

Своя система

  1. ТрекерСобытия сайтов и ботов
    60 557событий за три недели
  2. СборщикЧитает источники по таймерам
    20источников в недельном пакете
  3. БазаСделки, брони, платежи вместе
    4 356сделок amoCRM в зеркале

Что получает владелец

  • Пульт владельца19 разделов: денежные действия, воронка, Live
  • Недельный пакетСервер собирает сам, по понедельникам
  • Сквозной путьКлик, бот, бронь, оплата, сделка

Каждый кабинет знает свой кусок

Метрика считает визиты. amoCRM знает сделки. ЮKassa видит платежи, Авито ведет свои чаты, Search Console показывает поиск. Ни один кабинет не скажет, какой пост привел клиента, который через бота забронировал сеанс и оплатил его.

Владельцу нужен ответ на простой вопрос: откуда на этой неделе пришли деньги. Для ответа данные должны сойтись в одном месте и говорить на одном языке. Так появилась своя система из трех слоев.

Было

  • Метрика считает визиты, а не брони
  • amoCRM знает сделку, но не страницу, с которой пришел клиент
  • Сайт, бот и платеж пишут в разные журналы

Стало

  • Один трекер на сайтах и в ботах
  • Сделки amoCRM лежат в той же базе, что и события
  • Сквозной ключ связывает клик, бота, бронь и оплату; сделки получают сессию сайта
  • Недельный пакет сервер собирает сам
  • Слой 1

    Трекер

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

  • Слой 2

    Сборщик

    Программа на Python по трем таймерам читает внешние источники и складывает записи в свое хранилище. В недельный пакет входят 20 источников.

  • Слой 3

    Пульт

    Веб-панель владельца на 19 разделов. Главная цифра на ней: денежные действия, а не визиты.

Раздел «CRM / Брони» пульта на демо-данных: показатели за сегодня и период, сравнение периодов и воронка сделок.
Сделки, брони и оплаты в одном разделе: за сегодня, неделю и месяц. Кадр на демо-данных.

Пульт считает денежные действия, а не визиты

Главная плитка пульта называется «Денежные действия». В нее входят три счетчика: загруженные чеки оплаты, брони на сайте Horror Cinema и заявки из ботов в CRM с настоящим телефоном.

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

В разделе теста живые и мертвые сессии считаются отдельно. Живая сессия: человек что-то сделал на странице. Мертвая: зашел и ушел. Трафик с пустыми заходами так не выглядит победой.

Пульт владельца на демо-данных: плитки «Денежные действия», заявки, входы, сессии и ошибки, блок CRM за сегодня и карточки трех проектов.
Главная пульта на демо-данных. Главная плитка считает действия, а не визиты.
Live-лента событий на демо-данных: проект, воронка, сессия и устройство по каждому действию.
Live-лента событий: что делает человек на сайте, с проектом, сессией и устройством. Кадр на демо-данных.
  • 19разделов в пультеглавная, сайты, реклама, боты, CRM, зарплаты, Live
  • 110событий в реестрекогда срабатывает, зачем и показывается ли на пульте
  • 60 557событий записанос 8 по 29 октября, без фильтра служебного трафика
  • 5 488уникальных сессийза те же три недели

Сборщик читает 20 источников по таймерам

Сборщик живет на сервере отдельной программой. Три таймера запускают ее: частый, суточный и недельный. Она читает Метрику, Search Console, Авито, VK, ЮKassa, amoCRM и хранилище броней, приводит записи к общему виду и кладет в свое хранилище.

К 9 октября там лежали 18 390 нормализованных записей, 103 запуска сборщика и 1 762 связки атрибуции. Связка отвечает на вопрос, из какого канала пришли сделка, бронь или платеж.

  • 2 182записи Яндекс Метрикипо статусу на 29 сентября
  • 1 801запись Search Consoleна 29 сентября
  • 999чатов Авитона 29 сентября
  • 181платеж ЮKassaи 18 возвратов, на 29 сентября

Главное правило сборщика: сбой не превращается в ноль. Если не ответил один из 17 дополнительных источников, пакет получает пометку PARTIAL и предупреждение. Если упал один из трех критичных (полный список сделок, хранилище броней, календарь), пакет не выходит.

Отдельный слой следит за правками сайтов. Он нормализовал 21 изменение и 63 контрольные проверки через 7, 14 и 28 дней после каждого.

Полная выгрузка amoCRM за 6 минут 45 секунд

8 октября в 14:26 по Ташкенту началась полная выгрузка amoCRM. В 14:33 она закончилась.

За 6 минут 45 секунд пришли 4 063 сделки, 8 844 контакта, 36 263 задачи и 5 748 примечаний к сделкам. На это ушло 253 вызова API. Ошибок 0. Запросов на запись ни одного: выгрузка только читала данные.

Зеркало сделок лежит рядом с событиями сайта. На 29 октября в нем 4 356 сделок. К сделке система добавляет сессию сайта, страницу входа, номер брони и платеж, если они известны.

  • 4 063сделкив выгрузке 8 октября
  • 8 844контакта
  • 36 263задачи
  • 253вызова API0 ошибок

Недельный пакет собирается без людей

По понедельникам в 03:30 по Ташкенту сервер сам собирает недельный пакет по 20 источникам. Пакет получает контрольную сумму SHA-256, а в Drive уходит безопасный ZIP только с агрегатами: без переписок, карточек CRM и данных клиентов.

Пакеты 12, 19 и 26 октября собрал таймер. Никто не нажимал кнопку.

  • 7 минпервый плановый запуск12 октября, с 03:30 до 03:37
  • 98,6 сполная сборка недели12 фаз, репетиция на копии хранилища
  • 3 из 3запуска подряд без ручного старта12, 19 и 26 октября

Что владелец получает из пакета каждую неделю, показывает отдельный кейс про недельный отчет бизнеса.

Клик, бот, бронь, оплата и сделка на одном ключе

28 октября в ссылки на ботов добавили сквозной ключ: он связывает сайт, бота, бронь и оплату. За первые сутки система выдала 348 ключей.

Сделки в зеркале получили привязку к сессии сайта: было 0, стало 38 из 278 (14%). Теперь у 47 сделок есть страница входа, у 57 номер брони, у 39 платеж.

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

Один ключ на всем пути клиента

  1. 1Кликреклама, пост, QR
  2. 2Сайтсессия и страница входа
  3. 3Ботключ в ссылке на Telegram и VK
  4. 4Броньключ и сессия сохраняются
  5. 5Оплатаплатеж привязан к брони
  6. 6Сделкав зеркале amoCRM

348 ключей выдано за первые сутки

Сессии без источника: до и после пересчета правил

Horror Cinema
до
79%
после
34%
Art Quest
до
95%
после
62%
MORPHEUS
до
73%
после
29%
Доля сессий без источника пересчитана по новым правилам определения канала на данных с 8 октября. Сами данные не менялись.

Весь путь клиента от клика до сделки разобран в отдельном кейсе про сквозную аналитику.

Что показали данные

  • iPhone

    Форма брони не отправлялась с iPhone пять дней

    С 19 по 23 октября форма брони на сайте Horror Cinema не отправлялась с iPhone. Недельный отчет за 19–25 октября: 3 обращения через самостоятельную бронь против 12 за предыдущую неделю. Исправили 23 октября.

  • Директ

    Сделки «Директ + поиск» оказались звонками

    41 сделка «Директ + поиск» оказалась звонками по рекламному номеру. Метка Директа дошла до сайтов только у 2 сессий, а 730 сессий пришли из органического поиска Яндекса. В заходах на сайт такие сделки не видны.

  • Виджет

    Бронь теряла сессию

    11 из 11 броней через виджет сайта Horror Cinema до 19 октября приходили без сессии: фильтр принимал 13-значную метку времени за телефон. С 19 октября бронь получает сессию виджета, а с 28 октября виджет передает сессию сайта, и бронь склеивается с визитом.

Как это делалось

Пять месяцев от первого пульта до сквозного ключа

Первая рабочая версия пульта: 29 мая 2026 года. 13 июня на нем появились CRM и боты. К концу сентября рядом работал сборщик, 12 октября он сам собрал первый плановый недельный пакет на новом сервере, а 28 октября в систему встал сквозной ключ.

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

  • КомпанияВопросы к данным и выбор источников: что читать, что считать деньгами.
  • SemCueТрекер, пульт, сборщик, зеркало amoCRM и сквозной ключ.
  • СерверТаймеры сами запускают сбор и недельный пакет.

Для технических читателей

Устройство

Трекер и пульт
Node.js (Express) и PostgreSQL. События сайтов и ботов, зеркало сделок amoCRM, 19 разделов пульта.
Сборщик
Python, хранилище на SQLite, три таймера: частый, суточный и недельный.
Правила пакета
3 критичных и 17 дополнительных источников. Сбой дополнительного помечает PARTIAL и не становится нулем. У пакета контрольная сумма SHA-256, в Drive уходит ZIP только с агрегатами.
Сквозной ключ
Ключ в ссылках на ботов, привязка брони, платежа и сделки к сессии сайта.

Откуда цифры

Откуда сведения

Следующая система

Сквозной путь клиента: от клика до оплаты →

SemCue / Обсудим задачу

Что вы хотите изменить?

Расскажите о проекте и задаче. Даже если пока есть только идея.

Напишите нам в Telegram

Обсудим цель, текущую ситуацию и подходящий следующий шаг.

Обсудить проект в Telegram
В разработкеСайт ещё дорабатывается: что-то может меняться.