Files
mkd/docs/DEVELOPMENT_PIPELINE_AUTOMATION.md
2026-02-04 00:17:04 +05:00

9.9 KiB
Executable File
Raw Blame History

Архитектура автоматизации воронки развития

Обзор

Воронка развития должна автоматически управлять жизненным циклом потенциальных объектов от момента обнаружения до передачи в управление.

Источники данных для воронки

1. Ручное добавление (реализовано)

  • Менеджер вручную добавляет объект через форму
  • Статус: analysis (по умолчанию)

2. Импорт из файлов (CSV/Excel)

  • Массовый импорт объектов из внешних источников
  • Парсинг адресов, характеристик, контактов
  • Автоматическое создание записей в воронке

3. Интеграция с внешними API

  • Парсинг публичных реестров (Росреестр, ГИС ЖКХ)
  • Мониторинг сайтов конкурентов
  • Интеграция с CRM системами

4. Автоматическое обнаружение

  • Анализ отзывов жильцов (модуль PR)
  • Выявление недовольства текущей УК
  • Мониторинг социальных сетей и форумов

Автоматическое перемещение по стадиям

Стадии воронки:

  1. analysis (Анализ) - начальная стадия
  2. negotiation (Переговоры) - активная работа с собственниками
  3. preparation (Подготовка) - подготовка к ОСС
  4. voting (Голосование) - идет ОСС
  5. transfer (Передача) - объект передан в управление

Правила автоматического перехода:

1. Analysis → Negotiation

Триггеры:

  • Probability >= 30% (автоматически)
  • Создана маркетинговая активность для объекта
  • Проведена первая встреча с активистами

Условия:

  • Минимум 3 контакта с собственниками
  • Наличие хотя бы 1 активиста

2. Negotiation → Preparation

Триггеры:

  • Probability >= 60%
  • Собрано >= 5 активистов
  • Проведено >= 3 встреч

Условия:

  • Технический аудит завершен
  • Подготовлен проект договора управления

3. Preparation → Voting

Триггеры:

  • Создано ОСС для объекта (автоматически)
  • Probability >= 70%

Условия:

  • ОСС создано и запланировано
  • Подготовлены все документы

4. Voting → Transfer

Триггеры:

  • ОСС завершено успешно (quorum > 50%, решение "за")
  • Probability >= 90%

Условия:

  • ОСС статус = 'completed'
  • Результат голосования положительный

5. Откат стадий

Negotiation → Analysis:

  • Нет активности > 30 дней
  • Probability < 20%

Preparation → Negotiation:

  • ОСС отменено
  • Probability < 50%

Автоматический расчет probability

Формула расчета:

probability = baseProbability + 
              (activistsCount * 5) + 
              (meetingsHeld * 3) + 
              (adsDistributed / 10) + 
              (auditScore * 0.2) - 
              (daysInactive * 0.5)

Где:

  • baseProbability = 20% (для новых объектов)
  • activistsCount = количество активистов (макс 10)
  • meetingsHeld = количество встреч (макс 10)
  • adsDistributed = количество розданных листовок (макс 500)
  • auditScore = оценка технического аудита (0-100)
  • daysInactive = дней без активности (макс 60)

Обновление probability:

  • При каждом изменении маркетинговых метрик
  • При завершении технического аудита
  • Ежедневно (cron job) для пересчета по времени

События и триггеры

1. Создание ОСС

-- При создании ОСС автоматически:
-- 1. Обновить статус pipeline на 'voting'
-- 2. Связать ОСС с pipeline объектом
-- 3. Отправить уведомление менеджеру

2. Завершение ОСС

-- При завершении ОСС:
-- 1. Если quorum > 50% и решение "за":
--    - Обновить статус pipeline на 'transfer'
--    - Создать запись в buildings (если еще нет)
--    - Связать building_id с pipeline
-- 2. Если ОСС провалено:
--    - Обновить probability (-20%)
--    - Вернуть статус на 'preparation' или 'negotiation'

3. Завершение технического аудита

-- При завершении аудита:
-- 1. Обновить probability на основе wear_percent и projected_margin
-- 2. Если wear_percent > 70%:
--    - Уменьшить probability на 15%
-- 3. Если projected_margin < 10%:
--    - Уменьшить probability на 10%

4. Обновление маркетинговых метрик

-- При обновлении метрик:
-- 1. Пересчитать probability
-- 2. Проверить условия для перехода на следующую стадию
-- 3. Автоматически перевести, если условия выполнены

Deadlines и напоминания

Автоматические напоминания:

  • 7 дней в стадии - напомнить менеджеру о необходимости действий
  • 30 дней без активности - предупреждение о риске потери объекта
  • Deadline ОСС - напоминание за 3 дня до окончания
  • Просроченные задачи - ежедневные уведомления

Интеграция с другими модулями

Связь с модулями:

  1. ОСС модуль - автоматическое создание ОСС при переходе в 'preparation'
  2. Аудит модуль - автоматическое создание задачи на аудит при 'negotiation'
  3. Маркетинг модуль - автоматическое создание активности при добавлении объекта
  4. Buildings модуль - автоматическое создание здания при 'transfer'

Реализация

1. Таблица для истории переходов

CREATE TABLE development_pipeline_history (
  id BIGSERIAL PRIMARY KEY,
  pipeline_id VARCHAR(50) REFERENCES development_pipeline(id) ON DELETE CASCADE,
  from_status VARCHAR(20),
  to_status VARCHAR(20),
  reason TEXT,
  triggered_by VARCHAR(50), -- 'auto' | 'manual' | user_id
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

2. Таблица для правил автоматизации

CREATE TABLE development_automation_rules (
  id BIGSERIAL PRIMARY KEY,
  rule_name VARCHAR(100) NOT NULL,
  from_status VARCHAR(20),
  to_status VARCHAR(20),
  conditions JSONB, -- условия для срабатывания
  enabled BOOLEAN DEFAULT TRUE,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

3. Cron задачи (Node.js)

  • Ежедневная проверка условий для автоматических переходов
  • Пересчет probability для всех объектов
  • Проверка deadlines и отправка уведомлений

4. Триггеры в БД

  • Автоматическое обновление статуса при создании ОСС
  • Автоматическое обновление при завершении ОСС
  • Логирование всех изменений статуса

Примеры workflow

Сценарий 1: Успешный объект

  1. Объект добавлен вручную → analysis (probability: 20%)
  2. Проведена встреча, найдены активисты → probability: 35% → negotiation
  3. Проведено 3 встречи, 5 активистов → probability: 65% → preparation
  4. Создан технический аудит → probability: 70%
  5. Создано ОСС → автоматически voting
  6. ОСС завершено успешно → автоматически transfer + создан building

Сценарий 2: Потеря объекта

  1. Объект в negotiation 45 дней без активности
  2. Автоматическое снижение probability до 15%
  3. Автоматический откат в analysis
  4. Уведомление менеджеру о риске потери

Сценарий 3: Импорт из файла

  1. Загружен CSV с 50 объектами
  2. Автоматическое создание записей в analysis
  3. Автоматическое создание маркетинговых активностей
  4. Распределение по менеджерам (round-robin или по районам)