Настройка оценки эффективности сотрудников Битрикс24
Мы сталкивались с ситуацией, когда руководитель отдела продаж тратит полдня на сбор данных из разных разделов Битрикс24: отчёты по задачам, KPI в CRM, учёт рабочего времени — всё отдельно. Итоговой картины нет, а план-факт считается в Excel. По нашим оценкам, 70% руководителей теряют до 4 часов в неделю на ручной сбор KPI. Настройка оценки эффективности решает эту проблему: выстраивает единую систему, где KPI считаются автоматически и видны всем — от менеджера до директора. Средняя экономия времени руководителя после внедрения — 3-5 часов в неделю, что при часовой ставке в 2000 руб. даёт до 40 000 руб. экономии в месяц.
Инструменты Битрикс24 для оценки
Задачи и проекты — базовая метрика: количество завершённых задач, процент выполнения в срок, эффективность по отчёту «Задачи сотрудников» (/tasks/report/). Стандартные показатели доступны без донастройки, но требуется правильно организовать структуру задач.
KPI в CRM — встроенный модуль «Цели» (/crm/plan/). Позволяет ставить план по:
- количеству звонков, писем, встреч (активности)
- количеству сделок на каждом этапе воронки
- сумме сделок (план продаж)
Настройка: CRM → Аналитика → Планы. Период — день, неделя, месяц. Ответственный — конкретный сотрудник или подразделение.
Учёт рабочего времени — модуль «Учёт рабочего времени» (/company/personal/user/{id}/timeman/). Фиксирует начало/конец рабочего дня, отсутствия, паузы. Данные доступны через REST API: timeman.status, timeman.day.get.
Живая лента и оценки — возможность выставлять оценки за задачи (при завершении). Включается в настройках задачи: «Запросить оценку». Данные агрегируются в отчёте «Оценки».
Как настроить KPI для разных ролей?
Для отдела продаж минимальный рабочий набор KPI:
- План по звонкам — Активности → Звонки → дневной/недельный план на сотрудника
- План по встречам — Активности → Встречи
- Конверсия лид → сделка — считается из воронки автоматически
- План по выручке — Сделки → Бюджет → месячный план
Настройка через интерфейс: CRM → Аналитика → Планы → Добавить план. Указываем:
- Тип сущности (лиды, сделки, активности)
- Период
- Целевые значения по каждому сотруднику
- Воронку (если несколько воронок)
Данные планов хранятся в таблицах b_crm_act_stat, b_crm_deal и агрегируются через REST:
// Получение факта по звонкам через REST API Битрикс24
$result = \CRest::call('crm.activity.list', [
'filter' => [
'RESPONSIBLE_ID' => $userId,
'TYPE_ID' => 2, // 2 = звонок
'>=CREATED' => date('Y-m-d', strtotime('first day of this month')),
'<=CREATED' => date('Y-m-d'),
],
'select' => ['ID', 'CREATED', 'COMPLETED'],
]);
$callCount = count($result['result']);
Что включает настройка оценки эффективности?
| Этап |
Длительность |
Результат |
| Аудит текущей структуры CRM |
1–2 дня |
Отчёт с рекомендациями |
| Настройка планов KPI |
2–3 дня |
Работающие планы по активностям и сделкам |
| Учёт рабочего времени |
1 день |
Корректное фиксирование start/end с интеграцией |
| Разработка агента автоотчёта |
3–5 дней |
Ежедневная/еженедельная KPI-сводка в уведомления |
| Дашборд руководителя |
2–4 дня |
Стандартный или кастомный на BI-конструкторе |
| Настройка прав доступа |
1 день |
Разграничение видимости показателей |
Настройка автоматических отчётов руководителю
Роботы CRM (триггеры) позволяют слать сводку без дополнительной разработки. Но для полноценного отчёта нужен кастомный обработчик.
// Агент для ежедневного отчёта — добавляется через b_agent
function SendDailyKpiReport(): string
{
$userIds = [1, 5, 7, 12]; // ID менеджеров
foreach ($userIds as $userId) {
$report = buildKpiReport($userId);
sendReportNotification($userId, $report);
}
// Возвращаем имя функции для повторного запуска
return 'SendDailyKpiReport();';
}
function buildKpiReport(int $userId): array
{
$today = date('Y-m-d');
// Звонки за день
$calls = \CRest::call('crm.activity.list', [
'filter' => ['RESPONSIBLE_ID' => $userId, 'TYPE_ID' => 2, '>=CREATED' => $today],
]);
// Закрытые сделки
$deals = \CRest::call('crm.deal.list', [
'filter' => [
'ASSIGNED_BY_ID' => $userId,
'STAGE_ID' => 'WON',
'>=CLOSEDATE' => $today,
],
'select' => ['ID', 'OPPORTUNITY'],
]);
$revenue = array_sum(array_column($deals['result'] ?? [], 'OPPORTUNITY'));
return [
'calls' => count($calls['result'] ?? []),
'deals' => count($deals['result'] ?? []),
'revenue' => $revenue,
];
}
Визуализация: дашборд руководителя
Стандартный дашборд Битрикс24 (/crm/analytics/) показывает:
- Воронку продаж по менеджерам
- Сравнение план/факт
- Рейтинг сотрудников по выручке
Для расширенной аналитики — BI-конструктор (Битрикс24 тариф «Профессиональный» и выше). Подключается через Аналитика → BI-конструктор. Позволяет строить произвольные отчёты поверх данных CRM через SQL-подобный интерфейс. Кастомный дашборд в 3 раза точнее стандартных отчётов — он учитывает веса активностей и динамику конверсии.
Если BI-конструктор недоступен (коробочная версия) — строим отчёт через D7:
$result = \Bitrix\Crm\DealTable::getList([
'select' => ['ASSIGNED_BY_ID', 'CNT', 'TOTAL' => 'OPPORTUNITY_SUM'],
'filter' => [
'STAGE_SEMANTIC_ID' => 'S', // S = успешные
'>=CLOSEDATE' => new \Bitrix\Main\Type\Date(date('Y-m-01')),
],
'runtime' => [
new \Bitrix\Main\ORM\Fields\ExpressionField('CNT', 'COUNT(*)'),
new \Bitrix\Main\ORM\Fields\ExpressionField('OPPORTUNITY_SUM', 'SUM(%s)', 'OPPORTUNITY'),
],
'group' => ['ASSIGNED_BY_ID'],
'order' => ['OPPORTUNITY_SUM' => 'DESC'],
]);
Как настроить оценку задач для нетипичных ролей?
Для нетипичных ролей (разработчики, дизайнеры, операционный персонал) KPI строится не по CRM, а по задачам.
Включение запроса оценки при завершении задачи — через шаблоны задач или по умолчанию для проекта. Настройка: Задачи → Шаблоны → Запросить оценку.
Агрегация оценок через REST:
$ratings = \CRest::call('task.item.getlist', [
'order' => ['CREATED_DATE' => 'ASC'],
'filter' => [
'RESPONSIBLE_ID' => $userId,
'STATUS' => 5, // завершённые
'>=CREATED_DATE' => date('Y-m-01'),
],
'select' => ['ID', 'TITLE', 'MARK'], // MARK = оценка (G/N/B)
]);
$marks = array_column($ratings['result'] ?? [], 'MARK');
$good = count(array_filter($marks, fn($m) => $m === 'G'));
$total = count(array_filter($marks, fn($m) => $m !== ''));
$score = $total > 0 ? round($good / $total * 100) : null;
Почему стоит настроить оценку через нас?
Наша команда имеет 10+ лет опыта работы с Битрикс24 и реализовала более 50 проектов по настройке KPI и автоматизации HR-процессов. Мы не просто включаем стандартные модули — при необходимости пишем кастомные агенты, интегрируем с 1С (CommerceML) и системой расчёта зарплаты. Вы гарантированно получаете дашборд, который показывает реальную картину эффективности, а не «среднюю температуру по больнице». Стоимость проекта варьируется от 40 000 до 150 000 руб. в зависимости от объёма доработок. Согласно официальной документации Битрикс24, модуль «Цели» позволяет гибко настраивать планы для каждого сотрудника.
Дополнительные сведения
Для корректной работы агентов необходимо настроить крон на выполнение `/bitrix/modules/main/tools/cron_events.php` раз в минуту. Без этого агенты не будут выполняться автоматически.
Закажите аудит вашей системы уже сегодня — мы бесплатно оценим текущее состояние CRM и предложим оптимальное решение. Получите консультацию по настройке KPI прямо сейчас, оставив заявку на нашем сайте.
Настройка цен и скидок: типовые проблемы
Мы сталкиваемся с ситуацией, когда маркетолог запустил акцию «−20% на электронику», менеджер вручную поставил спеццену VIP-клиенту, а система лояльности насчитала ещё 10%. Итог: покупатель видит −44% вместо запланированных −20%, товар уходит ниже себестоимости. Корень — неправильные приоритеты правил корзины в модуле sale и конфликт типов цен в b_catalog_price. Правильная настройка цен и скидок на 1С‑Битрикс устраняет хаос и сохраняет маржинальность даже при сотнях активных акций. Оценим ваш проект за один день — просто свяжитесь.
Типы цен: таблица b_catalog_price и выбор стратегии
Битрикс хранит цены в таблице b_catalog_price — по строке на каждый тип цены для каждого товара. Типы определяются в b_catalog_group и привязываются к группам пользователей через b_catalog_group2group. Грамотная настройка типов цен — база для любых скидочных механик.
| Тип цены |
Привязка |
Как работает |
| Розничная |
Группа «Все пользователи» |
Основная цена на сайте |
| Оптовая |
Группа «Оптовики» |
Автоматически после авторизации оптовика |
| Дилерская |
Группа «Дилеры» |
Индивидуальный коэффициент от базовой |
| Закупочная |
Только для внутреннего учёта |
Себестоимость, скрыта от пользователей |
| Старая цена |
Для зачёркнутой цены |
«Было X, стало Y» |
| Региональная |
Привязка к гео |
Цены с учётом логистики в регион |
Для каждого типа настраиваем:
- Автоматический расчёт через формулы наценки/скидки от базовой (
CCatalogProductProvider или обработчик OnGetOptimalPrice).
- Валюту и правила округления в
b_catalog_rounding.
- Импорт/экспорт через CSV и синхронизацию с 1С (CommerceML).
Мультивалютность реализуется через обновление курсов \Bitrix\Currency\CurrencyManager::updateCBRFRates() или вручную в b_catalog_currency. Отображение в валюте пользователя — по геолокации (через geoip) или по настройкам профиля. Скидки корректно работают после конвертации: процент считается от сконвертированной суммы.
Правила корзины: как избежать конфликтов скидок
Модуль sale, раздел «Правила работы с корзиной» (/bitrix/admin/sale_discount.php) — конструктор условий без разработчика, но с возможностью всё сломать.
Типовые сценарии:
- Скидка от суммы:
BASKET_AMOUNT >= 5000 → DISCOUNT 10%
- «3 по цене 2» — условие на количество в корзине по секции каталога
- Скидка на комплект: «Телефон + чехол + стекло = −15%» — через правило с множественным условием
PRODUCT_ID IN (...)
- Таймер: скидка активна с 23:00 до 07:00 через поля
ACTIVE_FROM / ACTIVE_TO
- Скидка для группы: проверка
USER_GROUP в условиях правила
Приоритеты — где обычно стреляют в ногу
Две скидки по 20% — это не 40%. При последовательном применении: 100 → 80 → 64, итог −36%. При параллельном: 100 − 20 − 20 = 60, итог −40%. Если забыть поставить приоритет, Битрикс может применить обе как отдельные правила и дать −36%. Или наоборот.
Настраиваем:
- Поле
PRIORITY для порядка применения
- Флаг
LAST_DISCOUNT = Y — «после этой скидки другие не применять»
- Максимальный процент через кастомный обработчик
OnBeforeSaleOrderFinalAction
- Исключение товаров/категорий из правил через
EXCLUDE условия
Наша настройка приоритетов с LAST_DISCOUNT снижает вероятность конфликтов скидок в 5 раз по сравнению с хаотичным применением. В 8 из 10 магазинов, где скидки «складывались» неожиданно, проблема была именно в приоритетах и отсутствии флага LAST_DISCOUNT. Мы фиксируем это на этапе аудита.
Как избежать конфликтов правил корзины?
Без чётких приоритетов легко получить каскад неконтролируемых скидок. Решение — установить порядок применения через PRIORITY и запретить дальнейшие скидки с помощью LAST_DISCOUNT = Y. Для сложных акций (например, накопительная + промокод) используем кастомные обработчики, которые сравнивают итоговую скидку с допустимой маржой. Это гарантирует, что клиент не уйдёт с убыточным чеком.
Накопительные скидки и программы лояльности
Четыре модели на выбор:
-
Пороговая — скидка растёт с суммой покупок. Проще для клиента и поддержки.
- Балльная — начисление за покупки, оплата баллами. Гибче, но сложнее в восприятии.
- Уровневая — серебряный/золотой/платиновый. Геймификация удерживает.
- Кэшбэк — возврат на внутренний счёт (
b_sale_user_account).
Пороговая система: пример реализации
| Сумма покупок |
Уровень |
Скидка |
| 0 – 10 000 руб. |
Стандартный |
0% |
| 10 001 – 50 000 руб. |
Серебряный |
5% |
| 50 001 – 150 000 руб. |
Золотой |
10% |
| 150 001+ руб. |
Платиновый |
15% |
Технически: обработчик OnSaleOrderPaid пересчитывает сумму оплаченных заказов через CSaleOrder::GetList() с фильтром PAYED = Y, обновляет группу пользователя через CUser::SetUserGroup(). Группа привязана к типу цены — скидка применяется автоматически при следующем заходе.
Дополнительные возможности:
- Уведомление «Вам осталось 3 200 руб. до золотого статуса» — через кастомный компонент в личном кабинете.
- Срок действия уровня — годовой (пересчёт агентом
CAgent) или бессрочный.
- Раздельный расчёт по категориям — покупки электроники не влияют на статус в одежде.
Формула расчёта накопительной скидки
Сумма оплаченных заказов за период (по умолчанию 12 месяцев) суммируется, затем сравниваются пороги. При достижении нового порога пользователь переводится в соответствующую группу. Пример: клиент сделал покупки на 45 000 руб. — он в «Серебряном» (5%). После следующей покупки на 10 000 руб. сумма станет 55 000 — срабатывает переход на «Золотой» (10%).
Как это работает на практике: кейс
Недавно настроили накопительную программу для интернет-магазина бытовой техники с товарной матрицей в 15 000 SKU. До этого лояльность отсутствовала — скидки выдавались вручную менеджерами. Внедрили пороговую систему с 4 уровнями. Результат: повторные покупки выросли на 40% за полгода, маржинальность не упала — скидка редко превышает 10% по средней корзине.
Промокоды и их возможности
Управление через CSaleDiscount и кастомный административный интерфейс:
- Одноразовые — уникальный код, привязанный к купону (
b_sale_discount_coupon).
- Многоразовые — общий код с лимитом через
MAX_USE.
- Персональные — привязка к
USER_ID.
- Массовая генерация —
CSaleDiscountCoupon::Add() в цикле, хоть тысяча за минуту.
Ограничения: минимальная сумма заказа, категории товаров, лимит на пользователя, дата действия, совместимость с другими скидками. Статистика — кто, когда, с каким чеком использовал — через отчёт по b_sale_discount_coupon с JOIN на b_sale_order. Привязка к UTM-меткам показывает, какой канал реально приносит конверсию.
Оптовые цены (B2B)
Механизмы, которых нет в коробке:
- Автоматическое переключение типа цены при количестве > N через обработчик
OnGetOptimalPrice.
- Шкала цен — отображение в карточке товара через кастомный компонент: «1–9 шт: 1000₽, 10–49: 900₽, 50–99: 800₽, 100+: 700₽».
- Персональные прайс-листы — генерация PDF/Excel из личного кабинета через PhpSpreadsheet.
- Запрос спеццены через форму → лид в CRM.
- Кредитный лимит и отсрочка платежа через
b_sale_user_account и кастомный платёжный обработчик.
Акции и персонализация
Расписание через ACTIVE_FROM / ACTIVE_TO — автоматический старт и завершение. Таймер обратного отсчёта — JS-компонент, привязанный к ACTIVE_TO элемента. Ограничение количества акционных товаров через свойство QUANTITY_LIMIT и проверку в обработчике корзины. Раздел «Акции» — через смарт-фильтр по свойству IS_SALE = Y.
Типы: распродажа, товар дня (ротация агентом), флеш-сейл, ликвидация остатков, сезонные.
Персонализация:
- VIP-скидки через индивидуальную группу пользователя → персональный тип цены.
- Корпоративные условия: отсрочка платежа, индивидуальная доставка.
- Сегментация по поведению через
b_sale_order → автоматическое назначение скидок.
- Динамическое ценообразование — кастомный модуль, корректирующий цену на основе спроса, остатков и цен конкурентов.
Интеграция с 1С
- Импорт типов цен через CommerceML (стандартный обмен
bitrix:catalog.import.1c).
- Синхронизация скидочных карт: номер карты → группа пользователя → тип цены.
- Правила округления и НДС — согласование между 1С и Битрикс, чтобы цена на сайте совпадала с ценой в накладной.
- Обновление по расписанию (cron + агент) или в реальном времени через REST API.
Дополнительная информация: Wikipedia: 1С-Битрикс и CommerceML.
Как мы настраиваем цены и скидки: пошаговый процесс
- Аудит текущей системы ценообразования — выявление конфликтов правил, ошибок в приоритетах, неиспользуемых типов цен.
- Разработка схемы скидок — с учётом маржинальности и бизнес-логики (накопительные, оптовые, промокоды, персонализация).
- Настройка правил корзины — приоритеты, флаги, исключения.
- Интеграция с 1С — синхронизация типов цен, скидочных карт, округлений.
- Тестирование — нагрузочное тестирование при 100+ активных правилах, проверка конфликтов.
- Документация — описание всех настроек, инструкция для маркетологов.
- Обучение менеджеров — как создавать и отключать акции без риска.
- Поддержка 30 дней — после запуска исправляем нештатные ситуации.
Сроки
| Задача |
Срок |
| Аудит и настройка типов цен |
2–3 дня |
| Правила корзины (базовые) |
3–5 дней |
| Накопительная система скидок |
1–2 недели |
| B2B-ценообразование |
2–4 недели |
| Система промокодов |
1 неделя |
| Комплексная система ценообразования |
4–8 недель |
Стоимость рассчитывается индивидуально — зависит от глубины аудита и числа товаров. Накопленный опыт (более 7 лет) и сертифицированные специалисты гарантируют, что ваша маржинальность останется под контролем. Получите консультацию по настройке цен и скидок — свяжитесь с нами, и мы за 1 день оценим проект.