Небольшим компаниям с двумя-пятью менеджерами большие CRM часто не подходят: дорого, сложно, половина функций не нужна. В итоге сделки живут в Excel и мессенджерах, задачи забываются, а руководитель не видит, что происходит в продажах и кто сколько приносит.
Нужна простая CRM, которую можно поставить за день и настроить под себя: клиенты, воронка сделок, задачи со сроками и понятные отчёты, причём менеджер видит только своё, а руководитель — весь отдел.
Это демонстрационный проект: в демо-данных вымышленная веб-студия с руководителем и двумя менеджерами.
Сделал веб-приложение на Python и FastAPI с шаблонами Jinja2 — без сборки фронтенда, запускается одной командой.
Сделки ведутся на доске по этапам: новая, переговоры, КП отправлено, выиграна или проиграна, с суммами по колонкам и фильтром по менеджеру. В карточке сделки этап меняется в один клик, а в истории видно, кто, когда и что поменял; туда же пишутся заметки по договорённостям и ставятся задачи со сроком. Просроченные задачи подсвечиваются, задачи на сегодня — на главной.
У клиентов — карточки с контактами и всеми сделками и поиск по названию, контакту, телефону и почте. Пришлось отдельно сделать поиск без учёта регистра для русских букв: стандартная база SQLite умеет это только для латиницы, и «флор» не находил «Флора».
Главная руководителя — сделки в работе и на какую сумму, выиграно за месяц, конверсия в победу, просроченные задачи, воронка по этапам и таблица по менеджерам. Сделки выгружаются в Excel.
Роли проверяются на каждом запросе: менеджер не видит и не может изменить чужую сделку даже по прямой ссылке. Пароли хранятся в виде PBKDF2-хеша с солью, сессия — в подписанной cookie. Логика и веб-интерфейс покрыты 18 автотестами, включая сценарий через формы: создал сделку, сменил этап, оставил заметку, поставил задачу.
Простая CRM, в которой отдел продаж ведёт клиентов, сделки и задачи, а руководитель за минуту видит картину: что в работе, что выиграно за месяц, у кого какая конверсия и где просрочено.
Код открыт, демо-доступы в README; база по умолчанию SQLite, подойдёт и PostgreSQL. Под конкретную компанию легко добавить свои этапы, поля и отчёты.