Задача [CRM4]: внешний модуль "Маркетинг"

Формулировка проблемы: необходимо реализовать кейс системы управления взаимоотношениями с клиентами.

Решение: необходимо реализовать модуль "Маркетинг" согласно требованиям:

Общее
Воронка лидогенерации
  • Воронка лидогенерации представлена в виде кнопок статусов лида.

  • Статусы лида определяются записями справочника crm_dict_leadStatus.

  • Кнопки статусов содержат два типа значений:

    • количество лидов данного статуса;

    • коэффициент конвертации.

  • В счетчик количества лидов входят лишь те лиды, в мероприятиях которых в поле crm_form_event_responsibleManager_responsible указаны выбранные пользователи.

  • Значение отображаются в формате:

    %название_статуса%

    %количество_лидов_статуса% (%коэффициент_конвертации%)

  • Коэффициент конвертации отсутствует для кнопки первого статуса.

  • Коэффициент конвертации рассчитывается как:

    количество лидов последующего статуса / количество лидов предыдущего статуса * 100%

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

  • Изменение высоты кнопок, количества лидов и коэффициентов конвертации должно происходить в режиме реального времени.

  • Кнопки статусов лидов имеет форму трапеции.

  • Ширина кнопок статична:

    • максимальная - 450px по наибольшей горизонтальной стороне кнопки;

    • минимальная - 150px по наименьшей горизонтальной стороне кнопки.

  • Высота кнопок динамична и определяется количеством лидов соответствующих статусов.

  • Минимальная высота кнопок - 40px.

  • Максимальная высота всей воронки - 500px.

  • Если воронка содержит один статус, то его кнопка также отображается в виде трапеции на максимальную высоту всей воронки.

  • Если не выбран ни один пользователь и ни одно мероприятие (при выключенном флаге "Показывать лиды, не привязанные к мероприятиям"), воронка отображается пустой:

    • значения количества лидов и коэффициента конвертации - 0;

    • кнопки имеют минимальную высоту.

Панели стоимости и комиссии
  1. Стоимость лидогенерации в панели - сумма значений компонента Потенциальный бюджет всех лидов текущей воронки.

  2. Комиссия лидогенерации в панели рассчитывается как:

    стоимость лидогенерации * % комиссии

    где % комиссии - значение поля "% комиссии" первой созданной записи реестра % комиссии.

  3. Значение поля "% комиссии" для каждого отдельного лида идет в расчет согласно значению crm_dict_leadStatus_end записи справочника crm_dict_leadStatus:

  4. При смене статуса лида на запись справочника crm_dict_leadStatus, у которой crm_dict_leadStatus_end=1, для нее сохраняется текущий % комиссии. Он будет использоваться в расчете, даже если строка динамической таблицы с таким % будет удалена.

  5. Если в записи реестра % комиссии указано несколько записей с одинаковыми датами начала, то в расчет идет последний % комиссии, удовлетворяющий требованиям.

  6. Значение комиссии лидогенерации в панели округляется до целого.

Боковая панель
  • Изменение значений настроек боковой панели должно сопровождаться анимацией загрузки, во время которой все кнопки статусов лидов будут недоступны для нажатия.

Мероприятие
  • Настройка "Мероприятие" представлена компонентом выбора записи реестра и флагом "Показывать лиды, не привязанные к мероприятиям".

  • Компонент содержит все записи реестра Маркетинговое мероприятие, отображаемые в списке.

  • Список записей в компоненте ограничен правами авторизованного пользователя:

    • руководителю отображаются мероприятия, в которых ответственным менеджером является он либо его подчиненные;

    • пользователю отображаются только те мероприятия, в которых ответственным менеджером является данный пользователь.

    Примечание

    Данное требование будет реализовано позднее.

  • Компонент позволяет выбрать:

    • одно мероприятие;

    • несколько мероприятий;

    • все мероприятия;

    • ни одно мероприятие.

  • Диалог выбора мероприятий выглядит аналогично диалогу выбора записи реестра.

  • Диалог выбора мероприятий дополнительно содержит флаг "Выбрать все".

  • По нажатию на флаг "Выбрать все" выделятся все мероприятия на всех страницах компонента.

  • Флаг "Показывать лиды, не привязанные к мероприятиям" определяет включение в воронку лидов, для которых компонент Мероприятие пуст.

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

Рисунок 18. Диалог выбора мероприятий

Диалог выбора мероприятий

Пользователи
  • Настройка представлена компонентом выбора пользователей.

  • Компонент содержит авторизованного пользователя, а также его подчиненных, которые входят в группу "Маркетологи".

    Примечание

    Так как на данный момент отсутствует импорт/экспорт групп, компонент будет отображать только подчиненных руководителя. Ограничение подчиненных согласно группе "Маркетологи" будет реализовано позднее.

  • Компонент позволяет выбрать:

    • всех пользователей;

    • нескольких пользователей;

    • одного пользователя;

    • ни одного пользователя.

  • По умолчанию выбран авторизованный пользователь.

Фильтры
  • Доступно два параметра фильтрации:

    • Период

    • Статус лида

  • При фильтрации лидов за период учитывается только факт смены значения в поле "Статус" записи реестра Лид. Если за указанный период значение этого поля изменялось несколько раз, то в воронку должно войти только последнее.

  • Параметр "Период" представлен выпадающим списком и двумя компонентами выбора даты, разделенными тире.

  • Выпадающий список периода содержит пункты:

    • "За все время" - воронка содержит все лиды с момента создания записи реестра до текущего времени на сервере.

    • "Прошедшая неделя" - учитываются только те лиды, у которых изменился статус за последнюю неделю от текущего дня на сервере.

    • "Прошедший месяц" - учитываются только те лиды, у которых изменился статус за последний месяц от текущего дня на сервере.

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

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

    • "Произвольный период" - учитываются только те лиды, у которых изменился статус за указанный пользователем период.

  • Компоненты выбора даты активны только при выбранном пункте "Произвольный период".

  • Компоненты выбора даты по умолчанию отображают период текущий день на сервере + месяц.

  • Параметр "Статус" представлен выпадающим списком с пунктами:

    • "Все";

    • значение crm_dict_leadStatus_name записи справочника crm_dict_leadStatus, у которой crm_dict_leadStatus_end=1;

    • значения crm_dict_leadStatus_name всех записей справочника crm_dict_leadStatus, у которой crm_dict_leadStatus_quality=0.

  • Статус "Все" включает в себя все записи справочника crm_dict_leadStatus со значением crm_dict_leadStatus_quality=1.

  • По умолчанию выбраны период "За все время" и статус "Все".

Рисунок 19. Воронка лидогенерации

Воронка лидогенерации

Рисунок 20. Пустая воронка лидогенерации

Пустая воронка лидогенерации

Рисунок 21. Фильтрация по статусу "Некачественный лид"

Фильтрация по статусу "Некачественный лид"