crm → management
Зачем нужно
Management получает финансовые и операционные факты для финансовых dashboards, прогноза, KPI продаж и учёта выплат.
Стороны
- источник: crm
- потребитель: management
- вид: event-driven + sync snapshot
События
| messageType | Когда |
|---|---|
crm.lead.created | создан лид |
crm.deal.created / crm.deal.won / crm.deal.lost | движение сделки |
crm.invoice.issued / crm.invoice.paid / crm.invoice.overdue | биллинг |
crm.payment.succeeded / crm.payment.failed | платежи |
crm.refund.created | возврат |
crm.entitlement.activated / crm.entitlement.revoked | доступы |
crm.teacher_payout.approved / crm.teacher_payout.paid | выплаты |
Online read
GET /api/v2/crm/aggregates/sales?from=...&to=...
GET /api/v2/crm/aggregates/balance
GET /api/v2/crm/teacher-payouts?period=...
Поведение management
- finance dashboards;
- маркетинговые отчёты по источникам лидов;
- учёт KPI команд продаж.
Идемпотентность
- события дедуплицируются по
messageId; - финансовые агрегаты пересчитываются по natural key (
invoiceId,paymentId,refundId,payrollItemId); - snapshot-запросы должны быть repeatable для одного периода.
Ошибки
| Сценарий | Поведение |
|---|---|
| неизвестный финансовый статус | событие уходит в DLQ, dashboard не обновляется |
| недоступен CRM snapshot API | management показывает последний успешный snapshot и alert |
| payload без обязательного ID | reject + audit integration error |
Scopes
| Scope | Для чего |
|---|---|
service:crm.aggregates.read | читать финансовые агрегаты |
service:crm.teacher_payouts.read | читать выплаты преподавателей |
Безопасность
- payload не содержит PII платёжных данных;
- доступ к management dashboard — только по permission
management.dashboards.read.finance.
Retention
- финансовые события 7 лет.