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 використовуються як основа відвідувань
- Essentials —
Client.managerFK закріплює клієнта за ТП - 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-сектор
Пов'язане¶
- CRM & Sales README
- Client Portal
- Sales Invoice
- Telephony
- Mobile Sales App:
c:/eswf/mobile-sales/(native React Native код)