Перейти до змісту

Sales Field Manager

Інструмент керівника відділу польових продажів: бачить у real-time що роблять ТП, створює день-плани, контролює GPS-compliance, аналізує KPI.


1. Призначення

Sales Field Manager — верхній рівень для Sales Field mobile app: - Мобільний застосунок — для самих ТП (відвідування клієнтів, замовлення, фото) - Field Manager (desktop) — для супервізора: планування, контроль, звіти


2. Ключові функції

A. Список ТП з місячними KPI

Показник Джерело
Плановані vs фактичні візити DayPlan + SalesVisit
Оборот за місяць Invoice (де sales_rep == TP)
Чек-ін compliance SalesVisit.gps_distance <= 200м
Фото compliance Кількість візитів з фото
Підписи клієнтів ClientSignature

B. День-плани (CRUD)

  • Створення плану на день для ТП: список клієнтів + послідовність + цілі
  • Копіювання плану з минулого тижня
  • Масове редагування (перенос візиту, скасування)
  • Видача плану в mobile app через sync

C. Контроль GPS-compliance

  • Карта з візитами: кольорові маркери (green = в радіусі 200м від адреси клієнта, red = далеко)
  • Список порушень compliance
  • Trigger для попередження ТП

D. Дашборд рейтингу

  • Ранжування ТП за KPI
  • Heatmap активності (день × година)
  • Графіки тренду (виручка, візити, cancellation rate)

3. Backend API

backend/sales_field/ — 10 API endpoints:

Endpoint Опис
/api/v1/sales-field/reps/ Список ТП з KPI
/api/v1/sales-field/reps/<id>/kpi/ Детальний KPI
/api/v1/sales-field/day-plans/ CRUD день-планів
/api/v1/sales-field/day-plans/copy-week/ Копіювання плану
/api/v1/sales-field/visits/ Візити ТП
/api/v1/sales-field/visits/gps-compliance/ Звіт compliance
/api/v1/sales-field/dashboard/ Загальний дашборд

Власних моделей немає — агрегація з: - crm.Activity, crm.Lead, crm.Deal - sales_mobile_api.SalesVisit, DayPlan, DayPlanItem - essentials.Invoice, Client


4. Frontend

Основний компонент: components/Essentials/SalesFieldManager.tsx

Секції UI: - List view: таблиця ТП з KPI + фільтрами - Day planner: drag-and-drop календар - Visits map: Leaflet з маркерами візитів - Dashboard: Mantine Charts (heatmap, bars, lines)


5. Зв'язок з Sales Mobile App

Менеджер (Desktop)                 ТП (Mobile)
──────────────────                 ──────────────
Sales Field Manager                Sales Field App
     │                                   │
     ├── create DayPlan ──sync──────────>│
     │                                   │
     │<──────sync── SalesVisit───────────┤
     │                                   │
     ├── see compliance                  │── visit client
     │                                   │── create Invoice offline
     │<──────sync── Invoice──────────────┤
     │                                   │
     └── analytics dashboard             └── get route from plan

Mobile додаток: mobile-sales/ (документація самого мобільного — окремо, в eswf/frontends/mobile є деталі стеку).


6. Інтеграції

  • CRM — Lead/Contact/Deal використовуються як основа відвідувань
  • EssentialsClient.manager FK закріплює клієнта за ТП
  • Telephony — дзвінки з додатку створюють CallLog
  • Notifications — FCM push для нових завдань / повідомлень

🔮 Deferred / Ideas

Territory-based assignment

Мотивація: автоматично розподіляти нових клієнтів за територіями Чому відкладено: потрібна геолокація + правила розподілу Trigger: >10 ТП

Incentive / commission engine

Мотивація: автоматичний розрахунок комісій від оборотів ТП Чому відкладено: різні схеми у різних компаніях, потрібен DSL Trigger: запит sales director

AI call-script assistant

Мотивація: перед дзвінком у клієнта — підказки (останнє замовлення, debt, потреби) Чому відкладено: потрібен prompt engineering + інтеграція з Chat Trigger: стабілізація основного флоу

Competitor tracking at PoS

Мотивація: ТП на точці може зафіксувати ціни / наявність конкурентів Чому відкладено: складний UX + база конкурентів Trigger: FMCG-сектор


Пов'язане