Потрібно доопрацювати існуючу CRM і додати окремий розділ “Угоди”, зв’язаний з уже реалізованим розділом “Заявки”.
CRM вже працює, розділ “Заявки” створювати або переписувати з нуля не потрібно. Завдання — акуратно дописати існуючу систему без ламання поточної логіки.
Технічний стек:
- адмінка: React + Vite + Tailwind SPA у папці admin/
- бекенд/API: Node.js + Express
- база даних: SQLite через better-sqlite3
Що потрібно реалізувати:
1. Додати нову вкладку “Угоди” в меню CRM.
2. У розділі “Заявки” додати кнопку “Створити угоду”. Якщо угода по заявці вже створена — показувати “Відкрити угоду”. По одній заявці може бути тільки одна активна угода.
3. При створенні угоди автоматично підтягувати із заявки тільки базові дані:
- ID заявки
- ім’я ліда
- контакт ліда
Менеджера із заявки не підтягувати автоматично. В угоді має бути окреме обов’язкове поле: “Відповідальний менеджер за угоду”.
4. Форма створення угоди має містити:
- лід
- контакт
- відповідальний менеджер за угоду
- дата дзвінка
- час дзвінка
- статус угоди
- коментар менеджера
- наступна дія
- дата наступного контакту
- сума угоди + валюта
Обов’язкові поля: відповідальний менеджер, дата дзвінка, час дзвінка, статус угоди.
5. Статуси угоди:
- Дзвінок заплановано
- В роботі / думає
- Очікуємо передоплату
- Передоплату внесено / Угоду закрито
- Відмова
- Не вийшов на зв’язок
- Перенести дзвінок
Фінальні статуси: “Передоплату внесено / Угоду закрито” і “Відмова”.
6. У розділі “Угоди” зробити таблицю з основними колонками:
- ID угоди
- дата створення
- дата/час дзвінка
- лід
- контакт
- відповідальний менеджер
- статус угоди
- сума угоди
- статус передоплати
- хто закрив угоду
- дії
7. У картці угоди показувати всю основну інформацію по ліду, статусу, сумі, менеджеру, передоплаті, коментарях та історії змін.
8. Додати можливість редагувати угоду:
- змінити статус
- змінити дату/час дзвінка
- додати коментар
- змінити відповідального менеджера
- змінити суму угоди
- змінити статус передоплати
- видалити угоду
9. Додати логіку передоплати:
Менеджер може поставити “Очікуємо передоплату” або “Передоплату внесено”.
Адмін окремо підтверджує передоплату статусом “Передоплату підтверджено адміном”.
У фінальну статистику та розрахунок менеджера угода має потрапляти тільки після підтвердження передоплати адміном.
10. Додати контроль прострочених заявок і угод:
- заявка прострочена, якщо більше 2 годин немає угоди і не вказана причина, чому угоду не створено
- угода прострочена, якщо дата/час дзвінка минули, а статус не фінальний
11. У заявках додати колонку “Угода”:
- Не створена
- Створена
- Неякісний лід
- Дубль
- Не відповідає
- Закрита без угоди
12. Додати прості фільтри в “Заявках” і “Угодах”:
за статусом, менеджером, датою, простроченням, передоплатою, відмовами, валютою.
13. Додати базову статистику в “Огляд”:
- заявки без угоди
- прострочені заявки
- дзвінки сьогодні
- прострочені угоди
- угоди в роботі
- очікують передоплату
- підтверджені передоплати
- закриті угоди
- сума підтверджених передоплат
14. Додати статистику по менеджерах:
кількість заявок, створених угод, закритих угод, підтверджених передоплат, відмов, суму підтверджених передоплат, конверсії.
15. Додати CSV-експорт угод і окремий CSV-експорт для розрахунків з менеджерами.
Важливо:
Не потрібно робити Telegram-сповіщення, інтеграцію з календарем, Kanban-дошку, складну аналітику або повну перебудову CRM.
Головна мета:
зробити простий і зрозумілий розділ для контролю лідів після заявки:
заявка → угода → відповідальний менеджер → дата/час дзвінка → статус → наступна дія / причина відмови → сума → передоплата → підтвердження адміном → статистика менеджерів.
Очікую від виконавця:
- досвід з React / Node.js / Express / SQLite
- акуратну роботу з існуючим кодом
- без переписування CRM з нуля
- просту реалізацію без зайвого ускладнення
- можливість швидко розібратися в поточній структурі проєкту