Реестр броней в MacroCRM расположен в блоке Отчеты -> Продажи: ассортимент:
Отчет позволяет оценить ситуацию с бронями: на сколько часто и в каком количестве ставятся и снимаются брони в разрезе домов, менеджеров и разной категории недвижимости.
Работа с отчетом
1. Выставите интересующий вас период действия с бронями в фильтре Дата.
2. В фильтре Действие с бронью укажите Снятие, Постановка,Пролонгация, Перевод в платную бронь.
3. Дополнительно можно выставить Тип действия: Автоматическое или Ручное, чтобы исключить действия системы, например.
4. Оставьте фильтр ЖК/Дом и Менеджер пустыми, чтобы оценить ситуацию по компании в целом или, наоборот, укажите, чтобы посмотреть более конкретную статистику.
5. Фильтр Текущий статус позволяет выбрать действия с теми заявками, которые сейчас находятся в выбранном статусе.
Так как отчет фиксирует буквально все действия с Бронями, полезными могут оказаться дополнительные опции, такие как:
Платная бронь — показывает действия по тем заявкам, в которых включена платная бронь, вручную или через проведение финансовой операции Задаток.
Только последнее действие по заявке — если по одной и тоже же заявке ставили и снимали бронь несколько раз (при этом возможно на разные объекты), то по включенной опции отчет покажет только последнее действие с этой заявкой.
Исключать действия где бронь на другой объект — в ситуации, когда постановка брони была на один объект, затем бронь сняли и потавили на другой объект, эта опция может быть полезной. Она исключит из отчета первые действия по заявке, если в итоге бронь сейчас стоит на другой объект. Если опция выключена, то в таблице отображается «!»
Показать UTM (xls) — показывает UTM-метки в скачанном отчете в xls-формате.
Без посредника — показывает действия по тем заявкам, в которых не указан конакт-посредник.
Спосредником — показывает действия по тем заявкам, в которых указан конакт-посредник.
Уникальные действия — единожды ставили и снимали Бронь.
Уникальные первичные обращения — заявки со статусом Бронь с уникальным первичным обращением.
Технический паспорт отчёта
Структура отчёта:
Данные в системе
Реестр представляет собой последовательный журнал действий, связанных с изменением статусов заявок и объектов недвижимости. Каждая строка — это одно событие, отражающее изменение статуса заявки с привязкой к объекту и, при наличии, к сделке. Основные данные берутся из сущности , с дополнительными связями к , , , .
Поставлено, Снято, Продлено и Переведено в платную бронь (1-4):
Принцип выбора данных в MacroData без учёта дополнительных фильтров. Подсчёт количества действий производится на основе переходов между статусами. Для каждого действия применяется фильтрация по status_from_name и status_to_name.
Ниже приведён пример для подсчёта записей, где заявки были поставлены в бронь:
SELECT COUNT(id) AS Поставлено в бронь
FROM estate_buys_statuses_log
WHERE status_from_name IN ('Неразобранное', 'Проверка', 'Отложено', 'Подбор')
AND status_to_name = 'Бронь';
Для получения других типов действий измените условие WHERE.
Снятие брони:
WHERE status_from_name = 'Бронь'
AND status_to_name NOT IN ('Бронь', 'Сделка в работе', 'Сделка расторгнута', 'Сделка проведена')
Продление брони:
WHERE status_from_name = 'Бронь'
AND status_to_name = 'Бронь'
Перевод в платную бронь:
WHERE status_from_name = 'Бронь'
AND status_custom_to_name = 'Платная бронь'
Действие/тип, Дата (5-6):
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
CASE
WHEN status_from_name IN ('Неразобранное', 'Проверка', 'Отложено', 'Подбор')
AND status_to_name = 'Бронь'
THEN 'Постановка'
WHEN status_from_name = 'Бронь'
AND status_to_name NOT IN ('Бронь', 'Сделка в работе', 'Сделка расторгнута', 'Сделка проведена')
THEN 'Снятие'
WHEN status_from_name = 'Бронь'
AND status_to_name = 'Бронь'
THEN 'Продление'
WHEN status_from_name = 'Бронь'
AND status_custom_to_name = 'Платная бронь'
THEN 'Перевод в платную бронь'
END AS Действие/тип,
log_date AS дата
FROM
estate_buys_statuses_log
WHERE
(
(status_from_name IN ('Неразобранное', 'Проверка', 'Отложено', 'Подбор') AND status_to_name = 'Бронь') OR
(status_from_name = 'Бронь' AND status_to_name NOT IN ('Бронь', 'Сделка в работе', 'Сделка расторгнута', 'Сделка проведена')) OR
(status_from_name = 'Бронь' AND status_to_name = 'Бронь') OR
(status_from_name = 'Бронь' AND status_custom_to_name = 'Платная бронь')
)
ORDER BY
log_date;
В этом запросе структура CASE отвечает за обозначение действия по смене статусов, а напротив выводится дата события.
Стоимость по договору (11), Посредник (13) и Программа покупки (15):
Эти данные хранятся в таблице , так что установите связь между и estate_deals, чтобы получить необходимую информацию:
SELECT
CASE
WHEN status_from_name IN ('Неразобранное', 'Проверка', 'Отложено', 'Подбор')
AND status_to_name = 'Бронь'
THEN 'Постановка'
WHEN status_from_name = 'Бронь'
AND status_to_name NOT IN ('Бронь', 'Сделка в работе', 'Сделка расторгнута', 'Сделка проведена')
THEN 'Снятие'
WHEN status_from_name = 'Бронь'
AND status_to_name = 'Бронь'
THEN 'Продление'
WHEN status_from_name = 'Бронь'
AND status_custom_to_name = 'Платная бронь'
THEN 'Перевод в платную бронь'
END AS Действие/тип,
log_date AS Дата,
estate_deals.deal_sum AS Стоимость по договору
FROM
estate_buys_statuses_log
LEFT JOIN
estate_deals ON estate_buys_statuses_log.deal_id = estate_deals.id
WHERE
(
(status_from_name IN ('Неразобранное', 'Проверка', 'Отложено', 'Подбор') AND status_to_name = 'Бронь') OR
(status_from_name = 'Бронь' AND status_to_name NOT IN ('Бронь', 'Сделка в работе', 'Сделка расторгнута', 'Сделка проведена')) OR
(status_from_name = 'Бронь' AND status_to_name = 'Бронь') OR
(status_from_name = 'Бронь' AND status_custom_to_name = 'Платная бронь')
)
ORDER BY
log_date;
Так как само событие не представляет из себя сущность, ориентируйтесь на дату и тип действия для связи с объектами недвижимости.
В приведённом запросе строка estate_deals.deal_sum AS `Стоимость по договору` отвечает за вывод Стоимось по договору (11). Для вывода Посредник (13) и Программа покупки (15) замените эту строку соответствующим образом:
estate_deals.agent_name AS `Посредник`
estate_deals.deal_program_name AS `Программа покупки`
Категория, Объект, S м2 и Цена по прайсу (7-10):
Для получения данных метрик необходимо через estate_deals установить связь с . Выборка данных в MacroData:
SELECT
CASE
WHEN status_from_name IN ('Неразобранное', 'Проверка', 'Отложено', 'Подбор')
AND status_to_name = 'Бронь'
THEN 'Постановка'
WHEN status_from_name = 'Бронь'
AND status_to_name NOT IN ('Бронь', 'Сделка в работе', 'Сделка расторгнута', 'Сделка проведена')
THEN 'Снятие'
WHEN status_from_name = 'Бронь'
AND status_to_name = 'Бронь'
THEN 'Продление'
WHEN status_from_name = 'Бронь'
AND status_custom_to_name = 'Платная бронь'
THEN 'Перевод в платную бронь'
END AS Действие/тип,
log_date AS Дата,
CASE estate_sells.estate_sell_category
WHEN 'flat' THEN 'Квартира'
WHEN 'garage' THEN 'Парковка'
WHEN 'storageroom' THEN 'Кладовка'
WHEN 'house' THEN 'Дом'
WHEN 'comm' THEN 'Коммерция'
END AS Категория
FROM
estate_buys_statuses_log
LEFT JOIN estate_deals ON estate_buys_statuses_log.deal_id = estate_deals.id
LEFT JOIN estate_sells ON estate_deals.deal_id = estate_sells.deal_id
WHERE
(
(status_from_name IN ('Неразобранное', 'Проверка', 'Отложено', 'Подбор') AND status_to_name = 'Бронь') OR
(status_from_name = 'Бронь' AND status_to_name NOT IN ('Бронь', 'Сделка в работе', 'Сделка расторгнута', 'Сделка проведена')) OR
(status_from_name = 'Бронь' AND status_to_name = 'Бронь') OR
(status_from_name = 'Бронь' AND status_custom_to_name = 'Платная бронь')
)
ORDER BY
log_date DESC;
В представленном запросе осуществляется вывод категории объекта по типу и дате события. Для получения S м2 и Цена по прайсу (9-10) замените конструкцию CASE estate_sells.category … END AS `Категория` следующим образом:
estate_sells.estate_area AS `S, м2`
estate_sells.estate_price AS `Цена по прайсу2`
Поле Объект (8) содержит в себе данные о комнатности, категории, адресе, площади, цене и стоимости. Эти данные можно агрегировать аналогичным образом за счёт данных в estate_sells.
Заявка/Контакт (12) и Текущий статус заявки (14):
Данные метрики хранятся в , так что аналогично предыдущему пункту через LEFT JOIN установите связь между estate_buys_statuses_log и estate_buys.
Выборка данных в MacroData:
SELECT
CASE
WHEN status_from_name IN ('Неразобранное', 'Проверка', 'Отложено', 'Подбор')
AND status_to_name = 'Бронь'
THEN 'Постановка'
WHEN status_from_name = 'Бронь'
AND status_to_name NOT IN ('Бронь', 'Сделка в работе', 'Сделка расторгнута', 'Сделка проведена')
THEN 'Снятие'
WHEN status_from_name = 'Бронь'
AND status_to_name = 'Бронь'
THEN 'Продление'
WHEN status_from_name = 'Бронь'
AND status_custom_to_name = 'Платная бронь'
THEN 'Перевод в платную бронь'
END AS Действие/тип,
log_date AS Дата,
estate_buys.id AS Заявка/Контакт
FROM
estate_buys_statuses_log
LEFT JOIN estate_buys ON estate_buys_statuses_log.estate_buy_id = estate_buys.id
WHERE
(
(status_from_name IN ('Неразобранное', 'Проверка', 'Отложено', 'Подбор') AND status_to_name = 'Бронь') OR
(status_from_name = 'Бронь' AND status_to_name NOT IN ('Бронь', 'Сделка в работе', 'Сделка расторгнута', 'Сделка проведена')) OR
(status_from_name = 'Бронь' AND status_to_name = 'Бронь') OR
(status_from_name = 'Бронь' AND status_custom_to_name = 'Платная бронь')
)
ORDER BY
log_date DESC;
В данном запросе выводится id заявки через строку запроса estate_buys.id AS `Заявка/Контакт`. Для вывода Текущий статус заявки (14) замените эту строку на:
estate_buys.status_name AS `Текущий статус заявки`.
Менеджер (16):
Таблица estate_buys_statuses_log уже содержит данные об id сотрудника, который являлся инициатором этого события. Для получения ФИО менеджера необходимо напрямую установить связь между estate_buys_statuses_log и .
Выборка данных в MacroData:
SELECT
CASE
WHEN status_from_name IN ('Неразобранное', 'Проверка', 'Отложено', 'Подбор')
AND status_to_name = 'Бронь'
THEN 'Постановка'
WHEN status_from_name = 'Бронь'
AND status_to_name NOT IN ('Бронь', 'Сделка в работе', 'Сделка расторгнута', 'Сделка проведена')
THEN 'Снятие'
WHEN status_from_name = 'Бронь'
AND status_to_name = 'Бронь'
THEN 'Продление'
WHEN status_from_name = 'Бронь'
AND status_custom_to_name = 'Платная бронь'
THEN 'Перевод в платную бронь'
END AS Действие/тип,
log_date AS Дата,
users.users_name AS Менеджер
FROM
estate_buys_statuses_log
LEFT JOIN users ON estate_buys_statuses_log.users_id = users.id
WHERE
(
(status_from_name IN ('Неразобранное', 'Проверка', 'Отложено', 'Подбор') AND status_to_name = 'Бронь') OR
(status_from_name = 'Бронь' AND status_to_name NOT IN ('Бронь', 'Сделка в работе', 'Сделка расторгнута', 'Сделка проведена')) OR
(status_from_name = 'Бронь' AND status_to_name = 'Бронь') OR
(status_from_name = 'Бронь' AND status_custom_to_name = 'Платная бронь')
)
ORDER BY
log_date DESC;