Прежде чем что-то менять — давайте поймём, как система устроена сейчас. Какие сущности есть, как они связаны, как называются. Где язык бизнеса совпадает с системой, а где — расходится.
Цель — построить единый язык (ubiquitous language), на котором и бизнес, и разработка говорят одинаково.
Все сущности CRM. Цвет = функциональная область.
Вот термины, которые использует CRM. Красным отмечены расхождения между названием и реальным смыслом.
| Термин в системе | Где встречается | Фактический смысл | Расхождение |
|---|---|---|---|
| Клиент | Форма акции, справочник | Бренд (заказчик) | «Клиент» ≠ заказчик в бытовом смысле |
| Партнёр | Справочник, форма счёта | Площадка (где проходит акция) | Поле «Площадка» берёт данные отсюда |
| Площадка | Форма акции (UI-лейбл) | Нет отдельного справочника — берётся из «Партнёров» | UI называет одно, база хранит другое |
| Выручка | План-факт, карточка акции | Два разных числа: карточная (Продажа−Закупка) и операционная (Доходы−Расходы) | Одно слово — два смысла |
| Маржа | Карточка акции, план-факт | Карточная выручка = Продажа − Закупка | Совпадает с «Выручкой п.18» — не операционная маржа |
| Доход | План-факт | Сумма счетов (инвойсов) | — |
| Расход | План-факт, карточка акции | Сумма статей затрат | — |
| Наценка | Карточка акции | Процент надбавки к закупке | В план-факте — это ratio (Доход/Выручка), не % |
| Договор клиента | Форма акции | Договор с брендом | «Клиентский» = «бренда» |
| Договор платформы | Форма акции | Договор с площадкой | «Платформа» = «площадка» |
| Тираж | Карточка акции | Количество купонов | — |
Как акция проходит от создания до завершения в системе.
Менеджер заполняет форму: клиент (бренд), площадка, статус, договоры. Можно скопировать из существующей акции.
Статус меняется вручную. Нет автоматического «гейта» — любой может поставить любой статус в любой момент.
Устанавливаются даты проведения (start/end). Договоры переходят в «Подписан».
Создаются счета (доходы) и расходы. Каждая запись — с план/факт суммой и датой. Менеджер отслеживает оплаты.
По мере поступления денег — заполняются фактические суммы и даты. Статус оплаты → «Оплачено».
Статус акции → «Завершена». План-факт анализ: сравнение плана с фактом, расчёт маржи и налогов.
Это самое важное, что нужно понять. Обе называются «выручка», но это разные числа.
Считается из полей карточки акции: закупка, продажа, наценка.
Используется: карточка акции, блок «Финансовый итог», строка «Маржа» в план-факте.
Считается из actual документов: счета и расходы.
Используется: строки «Доходы» и «Расходы» в план-факте.
От карточной выручки до дивидендов. Российская система налогообложения, зашитая в код.
Отчёт для директора. Помесячная сводка. Вот правила, которые работают сейчас.
Сумма счетов по месяцам. План = amount_plan, факт = amount_actual. Учитываются все счета, независимо от статуса оплаты.
Сумма затрат по месяцам. Расходы с exclude_from_kpi = true полностью исключаются из расчёта.
Распределяется по месяцам пропорционально счетам, не по дате старта. Если счетов нет — маржа = 0 в план-факте.
payment_status_id = 2 означает «Оплачено». Только оплаченные счета дают факт-маржу. Это конвенция, не настройка.Как устроена связь между юрлицами, брендами и контактами.
Три роли. Гендиректор наследует права директора.
Все события идут в общий Telegram-чат. Ежедневный дайджест — отдельным сообщением.
Задача создана/обновлена · Файл добавлен · Комментарий добавлен. Каждое — отдельное сообщение с ссылкой на акцию.
Раз в день по расписанию. Сводка: просроченные задачи, предстоящие дедлайны, неоплаченные счета. horizon: 3 дня (5 в пятницу).
Таблица называется email_logs, но уведомления идут в Telegram. Названия расходятся с реальностью.
Не предложения — наблюдения. Где система ведёт себя неожиданно или неоднозначно.
В план-факте: «Выручка (Доходы)» = сумма счетов. «Маржа» = карточная выручка (Продажа − Закупка). Пользователь видит рядом два числа под похожими названиями и не понимает, почему они разные.
Любой пользователь может поставить любой статус в любой момент. Нет проверки «можно ли перейти из статуса A в B». «Согласована» — это статус с sort ≥ 20 (конвенция), а не правило.
Поле формы «Площадка» берёт данные из справочника «Партнёры». Настоящего партнёра (поставщика купонов/призов) нет в системе.
Маржа распределяется по месяцам пропорционально счетам. Если у акции есть карточная выручка, но нет счетов — в план-факте она покажет 0. Это неожиданно для бизнеса.
Все контакты — на уровне юрлица. Если у ООО «Мэлон» 3 бренда, нельзя сказать «этот контакт — по Befree, а этот — по Zarina».
Акции, счета, расходы — удаляются физически (может только директор). Статусы, бренды, контакты — помечаются is_active = false и исчезают из списков.
В карточке акции — это % надбавки к закупке. В план-факте — это ratio (Доход / Выручка). Одно слово, разная математика.
Это гипотезы о том, как устроен бизнес. Нам нужно знать: верно ли система отражает реальность?
Это не выбор решения — это сбор фактов. На основе ответов построим TO BE.