Не потрібно переписувати систему з нуля тільки доопрацювати!
Шукаю адекватного програміста для постійної співпраці . за дане доопрацювання CRM ГОТОВИЙ оплатити до 5000 + бонуси за якісно виконану роботу. Робіть ставки оберу по досвіду вашої роботи ну і звичайно нижчій сумі від запропонованої мною ціни.
Поточна технічна база:
- Адмінка: React + Vite + Tailwind SPA у папці admin/
- API / бекенд: Node.js + Express
- База даних: SQLite через better-sqlite3
Головна задача:
додати зрозумілу логіку роботи з лідами, угодами, менеджерами, Zoom / дзвінками, оплатами, підтвердженням оплат адміном і автоматичним розрахунком балансу менеджерів.
Технічні вимоги
Щоб система працювала стабільно, реалізувати через бекенд і БД без важких рішень.
- База даних
Створити окрему таблицю deals для угод, зв’язану із заявкою через lead_id / request_id. - Індекси
Додати індекси на поля, по яких будуть фільтри: менеджери, статуси, дата створення, дата Zoom / дзвінка. - Історія змін
Зберігати, хто і коли змінював статус угоди, оплату або фінансові дані. - Прострочки
Не робити важкі cron-задачі. Прострочки типу “заявка без угоди більше 2 годин” рахувати через timestamp при вибірці даних. - Підтвердження оплат
Менеджер може поставити статус “Передоплату внесено” або “Повну оплату внесено”, але підтвердити оплату може тільки адмін. - Нарахування
У статистику, баланс і нарахування мають потрапляти тільки оплати, підтверджені адміном. - Захист від дублювання
Не дозволяти створювати дубль угоди по одній заявці, дубль підтвердження однієї оплати або дубль нарахування по одній оплаті. - Передоплата і доплата
Якщо клієнт спочатку вніс передоплату, а потім доплатив залишок, це мають бути дві окремі фінансові події. - Права доступу
Права перевіряти на бекенді: тільки адмін може підтверджувати оплату, змінювати %, додавати виплати і бачити всі фінансові дані. - Головний принцип
Джерелом правди для аналітики, балансів і нарахувань є тільки оплата, підтверджена адміном.
ЗАВДАННЯ
1. Поточна логіка CRM
Зараз у CRM вже є розділи:
- Огляд
- Заявки
- Менеджери
- Налаштування
Потрібно додати новий розділ:
Фінальна структура меню:
- Огляд
- Заявки
- Угоди
- Менеджери
- Налаштування
2. Розділ “Заявки”
Розділ “Заявки” — це всі ліди, які залишили форму заявки на сайті.
Заявка не є угодою автоматично.
Логіка:
Заявка з сайту → менеджер зв’язався з лідом → домовились про Zoom / дзвінок → створюється угода
У таблиці заявок потрібно додати кнопку:
“Створити угоду”
Якщо по заявці вже створена активна угода, замість кнопки “Створити угоду” показувати:
“Відкрити угоду”
По одній заявці може бути тільки одна активна угода.
Не дозволяти створювати дубль угоди по одній і тій самій заявці.
3. Статуси заявки
У розділі “Заявки” додати поле:
“Статус заявки”
Варіанти статусу заявки:
- Очікую відповіді
- Створено угоду
- Не вийшов на зв’язок
- Відмова
Якщо з заявки створена угода, статус заявки автоматично змінюється на “Створено угоду”.
4. Розділення менеджерів
У CRM потрібно розділити два типи менеджерів:
- Трафік-менеджер
- Менеджер з продажів
Трафік-менеджер
Це людина, через чиє унікальне посилання прийшла заявка на сайт.
Він використовується в розділі “Заявки”.
Поле в заявці має називатися:
“Трафік-менеджер”
Менеджер з продажів
Це людина, яка проводить Zoom / дзвінок, веде комунікацію з клієнтом і закриває угоду.
Він використовується в розділі “Угоди”.
Поле в угоді має називатися:
“Відповідальний менеджер з продажів”
Окремо в угоді має бути поле:
“Менеджер з продажів, який закрив угоду”
Саме це поле використовується для аналітики продажів і нарахування балансу менеджеру.
Важливо:
трафік-менеджер із заявки не має автоматично ставати менеджером з продажів в угоді.
5. Розділ “Угоди”
Додати новий розділ:
“Угоди”
Форма створення угоди
При створенні угоди мають бути поля:
- Ім’я ліда
- Контакт ліда
- ID заявки
- Відповідальний менеджер з продажів
- Дата Zoom / дзвінка
- Час Zoom / дзвінка
- Статус угоди
- Тариф
- Коментар менеджера
- Дата наступного контакту
Логіка створення угоди із заявки
Угода створюється тільки вручну з розділу “Заявки”.
У розділі “Заявки” біля кожної заявки має бути кнопка “Створити угоду”.
Менеджер створює угоду тільки після того, як зв’язався з лідом і лід підтвердив дату та час Zoom / дзвінка.
Угода не створюється автоматично після надходження заявки.
Після натискання “Створити угоду” відкривається форма створення угоди, де менеджер вказує відповідального менеджера
з продажів, дату Zoom / дзвінка, час Zoom / дзвінка, статус угоди, тариф і коментар.
Після створення угоди заявка отримує статус “Створено угоду”, а біля заявки замість кнопки “Створити угоду” має показуватися кнопка
“Відкрити угоду” По одній заявці може бути тільки одна активна угода. Не дозволяти створювати дубль угоди по одній і тій самій заявці.
ПЕРЕГЛЯНУТИ ПОВНІСТЮ ТЗ МОЖНА В ГУГЛ ДОКУМЕНТІ
https://docs.google.com/document/d/1XX6daB1__MplFfQDwjV7w9-6DlUznEwSln7ao8i_9BM/edit?usp=sharing