Студия Евгения Кулакова
Кейс · Битрикс24 · Аналитика

Научили Битрикс24 считать, сколько стоит каждый клиент

Бухгалтерская компания вела 2 600 сделок в CRM, но не знала экономику по клиентам: сколько часов уходит на обслуживание и что остаётся после себестоимости. Мы собрали BI-отчёт по рентабельности и встроили его прямо в портал — с живыми данными, настраиваемыми нормами и тремя срезами в один клик.

0сделок в модели
0среза одного отчёта
0показателей по клиенту
0ручных пересчётов
01 — Задача

Отчёт был, пользы не было

Рентабельность клиентов считалась запросом в конструкторе BI: 300 строк SQL, полсотни пользовательских полей и два смарт-процесса. Цифра получалась — но жила отдельно от CRM, не обновлялась и не давала ответить на главный вопрос: этот клиент нам выгоден?

Оторван от CRM

Цифра без контекста

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

Замороженные нормативы

Правки через разработчика

Часы на обслуживание и постоянные расходы были зашиты в текст запроса. Изменилась аренда или ставка — снова идти в код.

Только один срез

Часы считали руками

Запрос отдавал факт: сколько выписок и сотрудников. Перевести это в часы и в рубли себестоимости приходилось в отдельной таблице.

исходный запрос конструктора BI — фрагмент
-- одна из 15 веток расчёта нормо-часов базового тарифа
CASE
  WHEN crm_deal_uf.UF_CRM_1697028607706 = 'ИП'
   AND crm_deal_uf.UF_CRM_1697028744107 LIKE '%Патент%'
   AND crm_deal_uf.UF_CRM_1697028773    LIKE '%С оборотами%'
  THEN 1.9
  WHEN crm_deal_uf.UF_CRM_1697028607706 <> 'ИП'
   AND crm_deal_uf.UF_CRM_1697028744107 LIKE '%УСН доходы (С НДС)%'
   AND crm_deal_uf.UF_CRM_1742787087894 LIKE '%22%'
  THEN 4.4
  /* … ещё 13 условий … */
  ELSE 0
END AS "baza_kof",

-- и так по каждому из 26 показателей
SUM(DISTINCT TRY_CAST(NULLIF(TRIM(Kolichestvo_avansovykh_otchetov), '') AS DOUBLE)),
SUM(DISTINCT TRY_CAST(NULLIF(TRIM(Otrazhenie_operatsii_VED), '')      AS DOUBLE)),
SUM(DISTINCT TRY_CAST(NULLIF(TRIM(Registratsiya_DKP_v_FGIS), '')     AS DOUBLE))
02 — Решение

Приложение внутри портала

Вместо запроса — локальное приложение Битрикс24. Оно само забирает данные из CRM, держит их в актуальном состоянии по событиям и считает экономику по нормам, которые бухгалтерия задаёт сама.

Выгрузка

REST забирает сделки воронки, компании, ответственных и два смарт-процесса — со всеми полями.

Расшифровка

Значения списков приходят как ID — приложение разворачивает их в текст по справочникам портала.

Своя база

Копия данных лежит рядом с отчётом: он открывается мгновенно и не нагружает портал.

Актуальность

Битрикс присылает событие об изменении сделки или компании — обновляется одна запись.

Встройка

Отчёт открывается пунктом меню портала. Отдельный логин не нужен — вход через Битрикс24.

03 — Кабинет

Тот самый отчёт — попробуйте

Ниже живая копия интерфейса. Переключайте срез данных, меняйте параметры себестоимости и открывайте карточку клиента — всё считается на лету, как в реальном приложении.

интерактивная демонстрация данные обезличены

Отчёт по работе с клиентами

Воронка бухобслуживания · сделок в периоде: 8

С/с 1 часа: 294 ₽
04 — Управление

Формулы отдали бухгалтерии

Главное отличие от прежнего запроса: ни одна цифра не зашита в код. Всё, что влияет на результат, редактируется в интерфейсе — и отчёт пересчитывается сразу.

Помесячно

Себестоимость часа

Список постоянных расходов ведётся по месяцам: аренда, лицензии, ФОТ, налоги. Значения июля влияют только на июль — август считается отдельно и наследует прошлый месяц как черновик.

итого расходов ÷ норма часов × коэффициент = база
Матрица

Нормо-часы базового тарифа

Форма собственности × система налогообложения × наличие оборотов. Пятнадцать сочетаний, у каждого — часы с оборотами и без. Раньше это были те самые 300 строк SQL.

ООО · ОСНО · с оборотами → 4,2 ч
Правило

Расчёт зарплаты

Первый сотрудник трудозатратнее последующих, иностранные граждане считаются по отдельным ставкам. Логика вынесена в понятные поля, а не в формулу.

1 × первый + (N−1) × следующий
Справочник

Нормы доп-услуг

Кассы, маркетплейсы, ВЭД, лизинг, акты сверок, авансовые отчёты — время на единицу. Появилась новая услуга — добавляется строкой, без релиза.

количество × норма = часы → × база = рубли
05 — Стек

Как это устроено

Отдельный сервис рядом с порталом: собственная база, свой домен с SSL, обновления по событиям Битрикс24 и встройка через JS-SDK.

Next.jsReactTypeScript PrismaSQLiteDocker Bitrix24 RESTИсходящие вебхуки BX24 JS SDKЛокальное приложениеnginx + SSL
06 — Результат

Что получил бизнес

0сделок синхронизировано и пересчитывается автоматически
0показателей по каждому клиенту в одной таблице
0среза данных переключаются без перезагрузки
0ожидания: отчёт открывается из своей базы
  • Рентабельность каждого клиента видна прямо в Битрикс24 — без выгрузок и сторонних сервисов.
  • Нормативы и расходы меняет бухгалтерия, помесячно и самостоятельно. Разработчик для этого не нужен.
  • Один отчёт отвечает на три вопроса: что сделали, сколько это заняло часов и во сколько обошлось.
  • Карточка клиента показывает динамику по месяцам — видно, когда обслуживание начало дорожать.
  • Решения «оставить, пересмотреть тариф или отказаться» принимаются по цифрам, а не на ощущениях.
Работаем без промежуточной цепочки

Посчитаем экономику
и в вашем Битрикс24

Разберём, какие данные уже есть в вашей CRM и что мешает превратить их в управленческий отчёт.

Получить аудит бизнес-процесса