В приложении реализован базовый функционал CRM-системы: ведение клиентской базы, автоматизация сделок, задач и воронок.
Приложение разработано с целью освоения базовых навыков создания веб-приложений с применением фреймворка Laravel.
- PHP v8.0.2
- Laravel v9.19
- Bootstrap v5.2
- Livewire v2.10
- Laravel-permission v5
- Laravel WebSockets v1.13
- Telebot v2.3
Склонируйте репозиторий
git clone https://github.com/praisethesadness/crm.git
Установите зависимости
composer install
npm install && npm run build
Создайте .env
-файл
cp .env.example .env
Убедитесь, что в .env
-файле установлены параметры подключения к БД:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=root
Для создания таблиц и внесения тестовых данных запустите следующую команду:
php artisan migrate:fresh —seed
Запустите сервер
php aritsan serve
Для получения real-time уведомлений (напоминания для задач и новые сообщения от клиентов):
php artisan schedule:work
php artisan websockets:serve
Чтобы иметь возможность переписываться с клиентом, добавьте API-токен своего Telegram-бота в .env
-файл
TELEGRAM_BOT_TOKEN=your_token
и запустите команду
php artisan telebot:polling
Вход в систему осуществляется через email и пароль. Самостоятельная регистрация пользователя не предусмотрена.
Ограничение возможностей пользователя в соответствии с назначенными ему ролями.
По умолчанию предусмотрены две роли: администратор и менеджер. Ниже перечислены действия в системе, требующие авторизации, и привилегии базовых ролей.
Действие | Менеджер | Администратор |
---|---|---|
Создать/изменить/удалить воронку | - | + |
Создать клиента | + | + |
Создать/изменить/удалить сотрудника | - | + |
Создать/изменить/удалить роль | - | + |
Создать задачу | + | + |
Назначить исполнителя задачи | - | + |
Добавить сделку | + | + |
Изменить любую сделку | - | + |
Можно как добавлять новые роли, так и редактировать существующие (однако набор доступных привилегий в системе остается неизменным).
Внесение клиентов в систему осуществляется двумя способами: ручной ввод и принятие входящего лида. Первый способ подразумевает заполнение полей формы создания клиента:
- ФИО (обязательно)
- Номер телефона
Во время принятия лида автоматически создается запись о клиенте с полем ФИО, заполненным именем пользователя Telegram.
Менеджер может изменить запись о клиенте только в том случае, если за ним закреплены задачи или сделки, в которых фигурирует данный клиент.
Сущность сотрудника имеет следующие поля:
- ФИО
- Роли (0 и более)
- Должность
- Номер телефона
- Пароль
При внесении в систему нового сотрудника ему по умолчанию назначается роль менеджер.
Сущность задачи имеет следующие поля:
- Название
- Описание
- Кто назначил
- Исполнитель
- Клиент
- Сделка
- Крайний срок
- Напоминание
- Приоритет
По умолчанию менеджер видит только назначенные ему задачи. При добавлении задачи он не может назначить исполнителя. Менеджер может редактировать и удалять только созданные им задачи.
В установленное время на экране появляется напоминание в виде тоста.
Сущность сделки имеет следующие поля:
- Название
- Ответственный
- Клиент
- Воронка
- Этап воронки
- Сумма
- Дата закрытия
К сделке можно добавить кастомные поля.
Для редактирования, помимо кастомных, доступны стандартные поля: название, воронка, этап воронки, сумма.
К сделке можно прикрепить только одного сотрудника.
Как и при добавлении задачи, менеджер не может назначить ответственного за сделку. Менеджер может редактировать и удалять только закрепленные за ним сделки.
В карточке сделки отображаются связанные задачи. Их можно помечать выполненными и удалять, а также просматривать подробную информацию (описание, крайний срок и т.д.). Также в карточке сделки расположен чат с клиентом (для его работы необходимо настроить интеграцию). При получении нового сообщения на экране появляется тост с уведомлением.
В системе предусмотрена стандартная демо-воронка, состоящая из следующих этапов:
- Лид
- Потребность выявлена
- Договор и счет отправлены
- Счет оплачен
Любая воронка по умолчанию имеет этапы “успешно реализовано” и “закрыто и не реализовано”. Перемещенная на один из этих этапов сделка считается закрытой.
В системе предусмотрен небольшой модуль аналитики, состоящий из разделов “воронки” и “менеджеры”.
В разделе “воронки” доступна информация о движении сделок по этапам выбранной воронки, а также кол-во задач и сделок в работе, кол-во отказов и просроченных задач.
В разделе “менеджеры” отражены следующие параметры:
- закрытые сделки
- уникальные клиенты
- отказы
- средний чек
Можно выбрать любой временной период для анализа (минимум - сутки).
Представляет собой получение и отправку сообщений посредством бота.
Сообщение, отправленное боту, попадает во вкладку “входящие лиды”. Менеджер может отправлять сообщения через чат, принять или отклонить лид. При принятии лида автоматически создаётся клиент с именем, указанным в Telegram-аккаунте. Поскольку теперь в системе содержится запись о клиенте, дальнейшая переписка не будет отображаться во вкладке “входящие лиды”.