Месторасположение: Отчёты → Заявки → Отчёт о скорости обработки заявок
Отчёт представляет собой перечень заявок и сроки их обработки менеджерами отдела продаж.
По умолчанию в отчёт попадают заявки, созданные в MacroCRM в статусе Неразобранное. Заявки, созданные сразу в статусе Проверка — они поступают по API и распределяются на менеджеров автоматически — в отчёт по умолчанию не входят. Чтобы учесть и их, выберите в фильтре «Опции» пункт «Учитывать заявки, созданные в проверке».
Отчёт строится за период (диапазон дат) по дате создания заявки.
#Столбцы
- ID заявки — ссылка на заявку.
- Менеджер — текущий менеджер заявки.
- Статус — текущий статус заявки.
- Создано — дата и время создания заявки.
- Принято в работу — дата и время первого перехода заявки в любой статус выше неразобранного, в том числе отказ, нецелевой. Для заявок, созданных в статусе Проверка, такого перехода нет: менеджер назначается сразу при создании. Для них в столбце выводится дата и время первого контакта менеджера с клиентом — звонка или SMS. Если контакта не было, столбец пустой.
- Первый звонок — дата и время первого звонка после создания заявки. Считаются только звонки в статусах: Исходящий, Исходящий (не соед.), Отвечен. Отправка SMS в этот столбец не попадает.
- Срок обработки (от появления заявки до первого звонка), мин. — количество минут от Создано до Первый звонок. Для заявок, созданных в статусе Проверка, — количество минут от Создано до первого контакта менеджера с клиентом (звонка или SMS). Если контакта не было, столбец пустой.
#Фильтры
- Дата создания заявки (диапазон дат) — по умолчанию выбраны даты от 1 числа текущего месяца до сегодня. В выборку попадают заявки, созданные в указанный период, текущий статус которых — любой, кроме Удалено.
- Срок обработки заявки, мин. — диапазон для фильтрации по времени обработки в минутах. Подробнее о том, как считается значение в этом фильтре, — в блоке «Важно!» ниже.
- Менеджер — фильтрует заявки по текущему ответственному менеджеру.
- Статус — фильтрует заявки по текущему статусу.
- Источники — фильтрует заявки по рекламному источнику, из которого поступила заявка.
- Опции — фильтр с множественным выбором. Можно выбрать несколько пунктов одновременно.
#Пункты фильтра «Опции»

- Уникальные первичные обращения — оставляет в выборке только первые (первичные) заявки каждого клиента.
- Повторные обращения — оставляет в выборке только последующие (повторные) заявки клиентов. Если выбраны оба пункта одновременно, применяется Повторные обращения.
- Только заявки, поступившие в рабочее время — оставляет в выборке заявки, созданные в рабочие часы компании.
- Учитывать заявки, созданные в проверке — добавляет в выборку заявки, созданные сразу в статусе Проверка. Заявки, созданные в статусе Неразобранное, при этом остаются в отчёте.
#Выгрузка
Кнопка →XLS выгружает отчёт с теми же фильтрами и опциями, что выбраны на странице, без ограничения на количество строк.
#Технический паспорт отчёта
#Структура отчёта

#Условия попадания в отчёт
По умолчанию в отчёт попадают заявки из estate_buys, у которых первая запись в estate_buys_statuses_log содержит status_from = 5 (Неразобранное) и status_to >= 3. Заявки, созданные в статусе Неразобранное и ни разу не переведённые в другой статус, записей в логе не имеют — они отбираются по текущему estate_buys.status = 5. Заявки со статусом estate_buys.status = 0 (Удалено) исключаются.
При включённой опции «Учитывать заявки, созданные в проверке» в выборку добавляются заявки, у которых первая запись в estate_buys_statuses_log содержит status_from = 10 (Проверка) — либо записей в логе нет и текущий estate_buys.status = 10.
#Данные в системе
ID заявки, Менеджер, Статус, Создано
Данные берутся из estate_buys. Для отображения имени менеджера необходима связь с users, для названия статуса — с estate_statuses.
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
estate_buys.estate_buy_id,
users.users_name,
estate_statuses.status_name,
estate_buys.created_at
FROM
estate_buys
LEFT JOIN users ON estate_buys.manager_id = users.id
LEFT JOIN estate_statuses ON estate_buys.status = estate_statuses.status_id
WHERE
estate_buys.status != 0
AND estate_buys.created_at BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}');
Принято в работу
Для заявок, созданных в статусе Неразобранное, значение берётся из estate_buys_statuses_log — это log_date первой по времени записи, где status_from = 5 и status_to >= 3.
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
estate_buys_statuses_log.estate_buy_id,
MIN(estate_buys_statuses_log.log_date) AS accepted_at
FROM
estate_buys_statuses_log
WHERE
estate_buys_statuses_log.status_from = 5
AND estate_buys_statuses_log.status_to >= 3
GROUP BY
estate_buys_statuses_log.estate_buy_id;
Для заявок, созданных в статусе Проверка, значение в столбце — дата ближайшего из первого звонка или первого SMS. SMS в MacroData не выгружаются.
Первый звонок
Первый звонок ищется в таблице calls по contacts_id заявки — не по estate_id звонка. Учитываются звонки в статусах calls_status: Исходящий (out_success), Исходящий (не соед.) (out_error), Отвечен (answered), совершённые не ранее даты создания заявки.
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
estate_buys.estate_buy_id,
MIN(calls.call_date) AS first_call_date
FROM
estate_buys
LEFT JOIN calls ON calls.contacts_id = estate_buys.contacts_id
AND calls.calls_status IN ('out_success', 'out_error', 'answered')
AND calls.call_date >= estate_buys.created_at
WHERE
estate_buys.status != 0
AND estate_buys.created_at BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
GROUP BY
estate_buys.estate_buy_id;
#Расчётные данные
Срок обработки
Рассчитывается как количество минут между estate_buys.created_at и датой первого подходящего звонка. Для заявок из Проверки — между created_at и ближайшим из первого звонка или первого SMS. Если контакта не было, поле пустое.
Принцип расчёта в MacroData:
SELECT
estate_buys.estate_buy_id,
FLOOR(
(
UNIX_TIMESTAMP(MIN(calls.call_date)) - UNIX_TIMESTAMP(estate_buys.created_at)
) / 60
) AS processing_minutes
FROM
estate_buys
LEFT JOIN calls ON calls.contacts_id = estate_buys.contacts_id
AND calls.calls_status IN ('out_success', 'out_error', 'answered')
AND calls.call_date >= estate_buys.created_at
WHERE
estate_buys.status != 0
AND estate_buys.created_at BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
GROUP BY
estate_buys.estate_buy_id,
estate_buys.created_at;