Перейти к основному содержимому

Сценарии CRM

Зачем нужно

Документ описывает внутридоменные сценарии CRM: квалификация лидов, ведение сделки, биллинг, поддержка, выплаты преподавателям.

1. Лид из витрины

  1. Получено событие storefront.lead.submitted.
  2. CRM создаёт crm_lead с дедупликацией по idempotencyKey.
  3. По правилам auto-assign назначается менеджер.
  4. Если контакт совпадает с существующим crm_account — связывается.
  5. Менеджер видит лид в pipeline.

2. Квалификация и сделка

  1. Менеджер связывается, отмечает результат (звонок, письмо, заметка) — crm_interaction.
  2. По готовности переводит лид в qualified.
  3. Создаётся crm_deal с предложением и продуктом.
  4. Сделка ведётся через статусы: qualified → proposal → won|lost.

3. Покупка и оплата

  1. На won создаётся crm_order с purchaser/payer, beneficiary и optional enrollment subject.
  2. Выставляется crm_invoice со ссылкой на платёжного провайдера.
  3. Клиент оплачивает.
  4. Платёжный webhook: crm_payment с idempotency_key и succeeded.
  5. Инвойс — paid (или partially_paid при частичной оплате).
  6. CRM активирует entitlement в зависимости от targetDomain, scope и enrollment subject.
  7. Публикуется событие crm.entitlement.activated для lms/competitions.

4. Возврат

  1. Менеджер инициирует возврат через UI с указанием причины.
  2. CRM делает refund через провайдера.
  3. Создаётся crm_refund, инвойс — cancelled или баланс уменьшается.
  4. Соответствующий entitlement помечается revoked.
  5. Публикуется событие crm.entitlement.revoked.

5. Подписка / абонемент

  1. Активный entitlement расходуется по событиям lms.entitlement.consumed.
  2. CRM пишет crm_entitlement_consumption_log и обновляет sessionsRemaining.
  3. Когда баланс заканчивается или истекает срок — expired.
  4. Возобновление активирует новый entitlement (или продлевает существующий по правилам провайдера).

6. Карточка клиента

  1. Менеджер открывает crm_account.
  2. Видит timeline (взаимодействия, оплаты, доступы, заметки).
  3. Может добавить контакт, заметку, задачу.
  4. Чувствительные блоки (ФИО ребёнка, паспортные данные) видны по permission.

7. Поддержка / ticket

  1. Клиент пишет в support (через форму витрины, email, чат).
  2. Создаётся crm_ticket.
  3. Support отвечает; история коммуникаций сохраняется.
  4. Эскалация на менеджера или в management при необходимости.

8. Расчёт выплаты преподавателю

  1. По событиям lms.teacher_session.completed копится статистика.
  2. На конец периода CRM формирует crm_teacher_payout по правилу выплат (crm_teacher_rate).
  3. Менеджер согласует расчёт.
  4. После approval — выплачивается через банк.
  5. Публикуется crm.teacher_payout.approved/paid.

9. Ручная корректировка

  1. Менеджер открывает баланс или entitlement.
  2. С указанием причины делает корректировку.
  3. Запись пишется в crm_audit_log с before/after.

10. Импорт лидов

  1. Менеджер загружает CSV.
  2. CRM валидирует контакты, дедуплицирует.
  3. Создаются лиды партией.
  4. Каждый лид помечен источником import с originator user.

Связанные документы

Ссылки на draft feature specs ниже — non-canonical detail drafts; канонические CRM-сценарии остаются в этом active-документе, state machines и events.