#dev branch
CRM - Система управления взаимоотношениями с клиентами (CRM, CRM-система, сокращение от англ. Customer Relationship Management) — прикладное программное обеспечение для организаций, предназначенное для автоматизации стратегий взаимодействия с заказчиками (клиентами), в частности для повышения уровня продаж, оптимизации маркетинга и улучшения обслуживания клиентов путём сохранения информации о клиентах и истории взаимоотношений с ними, установления и улучшения бизнес-процессов и последующего анализа результатов.
Описание: Страница логина содержит 2 поля для ввода логина и пароля и 2 кнопки для входа и регистрации. (смотри Страница логина/регистрации) При нажатии на кнопку регистрации открывается страница регистрации:
После успешного логина в систему, появится основная страница — Доска.
Доска содержит следующие элементы, отмеченные указателями на Доска(номера указателей совпадают с порядком перечисления элементов) :
Описание: Карточка находится на доске, в колонке, который определен статусом. На карточке есть минимальная необходимая информация — Фамилия и Имя. Статус клиента можно определить по колонке, в которой находится карточка. Красный колокольчик — уведомление, что карточка новая и не открывалась(при открытии колокольчик исчезнет). В правом верхнем углу есть кнопка(ручка), при нажатии на которую можно назначить/поменять сотрудника клиенту и произвести другие действия с клиентом. Когда сотрудник назначен, в карточке появляется соответствующая отметка (инициалы сотрудника) выше имени клиента.
Так же на карточке находится значок письма, при открытии которого открывается форма для быстрой отправки сообщения одним из шаблонов на выбор(Доска, указатель 9):
После выбора одного из шаблонов, откроется окно с способом отправки сообщения:
После открытия карточки, перед вами появится информация о клиенте:
Основные функции внутри карточки (отмечены на Информация о клиенте указателями, номера которых соответствуют перечеслению функций):
- Добавить напоминание
Описание: При нажатии на кнопку добавить напоминание, динамически откроется область для добавления напоминания (смотри Добавить напоминание ниже). Если отметить поле "Скрывать?", карточка клиента скроется из доски до времени срабатывания напоминания.
- Расширенная информация
Описание: При нажатии на данную кнопку, откроется страничка с информацией о клиенте:
Чтобы редактировать информацию, нужно нажать на кнопку редактировать (смотри Расширенная информация), затем сохранить изменения.
Около кнопки редактирования располагается кнопка «смотреть отзывы», по нажатию будет открыто следующее окно:
Кнопка «добавить отзыв», добавляет поле с 3мя ячейками (Ссылка на соц сеть, Текст отзыва, Ссылка на видео). Чтобы сохранить добавленный отзыв, нужно нажать на зеленую кнопку. Чтобы удалить - красную.
Также в расширенной информации есть возможность просмотра Истории клиента, по нажатию на кнопку «Открыть историю»:
- Взять себе карточку
Описание: При нажатии на кнопку «Взять себе карточку» карточка присваивается текущему залогиненному пользователю. После этого кнопка меняет цвет на желтый и появляется возможность открепить карточку.
- Назначить беседу в Skype Описание: При нажатии на кнопку «Назначить беседу в Skype», в случае отсутствия информации о Skype в карточке, будет предложено добавить эту информацию:
Затем появится возможность выбрать дату и время созвона, будет возможность напомнить клиенту о созвоне сообщением, а так же будет предложено выбрать ментора.
Выбор даты, времени и ментора для созвона
-
Возможность позвонить клиенту прямо из CRM, нажав на кнопку телефона (смотри Информация о клиенте, указатель 5). При звонке кнопка окрасится в зеленый цвет. Так же есть возможность просмотреть историю звонков, прослушать записанный разговор или просто скачать аудиозапись.
-
Отправить сообщение клиенту
Описание: При нажатии на кнопку «Конверт», (смотри Информация о клиенте, указатель 6) откроется окно:
При выборе любого из пунктов: После разговора, оплата за обучение и т. д., откроется окно. В поле ввода можно добавить текст, кроме того можно выбрать вид сообщения (sms, e-mail…). Также присутствуют кнопки для выбора сразу всех видов сообщений и для очистки выбранных видов.
Также есть возможность перейти в редактирование шаблонов по нажатию кнопки во 2 столбце.
-
Возможность открыть чат с пользователем во Вконтакте или другой соц.сети прямо из CRM.
-
Договор. При нажатии на кнопку откроется модальное окно для создания ссылки на оформение договора.
Создание ссылки для оформлдения договора
Чекбокс «Разовая?», если "галочка" стоит, будет оформлен разовый договор, иначе с помесячной оплатой. Чекбокс «Диплом», если "галочка" стоит, в договор будет включен пункт о выдаче диплома. Поле сумма платежа - выставление цены на услуги. При нажатии на кнопку «Сгенерировать ссылку», в соседней форме появится ссылка, по которой пользователь может заполнить форму(Форма для получения договора на гугл диск) и получить копию договора, которая будет сохранена на гугл диске
Форма для получения договора на гугл диск
Описание: Статус позволяет визуально разбить клиентов на определенные колонки и видеть текущее положение клиента по статусу(например inLearning — в процессе обучения или New Clients — новый клиент) — смотри Доска, указатель 2-3.
Для редактирования статуса на доске существует кнопка (шестеренка):
Редактирование статуса клиента
При добавлении клиента — откроется форма добавления клиента:
При удалении статуса, будет выведено подтверждение действия и в случае согласия, статус и все клиенты в нем будут удалены с доски.
Так же можно изменить название статуса, скрыть его(пропадет с доски со всеми клиентами, но не будет удален) и поменять положение, выбрав в списке существующие статусы — это можно так же сделать путем перетаскивания карточек мышкой на доске.
И, наконец, можно сделать данный статус "студентом". Если галочка выставлена, то при переносе карточек из соседних колонок в этот статус, если клиент не был студентом он им станет. То есть, его профиль появится во вкладке "Все студенты" навбара.
Добавить статус возможно в специально отведенном для этого поле ввода (смотри Доска, указатель 4)
Описание: Меню открывается по одноименной кнопке в верхнем правом углу доски (смотри Доска, указатель 5)
Меню
Список функций раздела «Меню»:
-
Просмотр скрытых статусов
-
Редактирование/удаление/деактивация сотрудника.
Описание: в разделе «Список сотрудников» перечислены их имена и существуют 3 кнопки: 1 кнопка позволяет редактировать сотрудника, 2 кнопка его деактивирует с возможностью активировать и 3 удаляет (нумерация в соответствии с номерами столбцов)
-
Возможность «принять» или «отклонить» сотрудника из списка «новые сотрудники».
-
Добавить сотрудника. Описание: При нажатии на кнопку добавить пользователя — откроется страница, в которой нужно заполнить данные сотрудника:
Окно для добавления сотрудника(пользователя)
- Отслеживаемые группы VK Описание:
Добавление новой группы в отслеживаемые группы VK
Редактирование отслеживаемой группы в VK
Данная функция нужна для отслеживания новых участников группы и отправки им сообщения, например «Привет, хочешь изучать Java?». Групп может быть несколько, данные о них можно изменять или вообще удалить.
При добавлении новой группы (Добавление новой группы в отслеживаемые группы VK), нужно указать имя группы (не обязательно, чтоб совпадало с группой Вк), id группы, токен своей группы и clientId своего приложения вконтакте. Более подробное описание есть в подсказах формы добавления. Для отправки сообщений - нужно указать свой логин и пароль от ВК страницы в vk.properties.
Изменение данных об отслеживаемой группе (Редактирование отслеживаемой группы в VK)
- Отслеживаемая трансляция YouTube Описание:
Отслеживаемая трансляция на YouTube
Отслеживание YouTube трансляции позволяет производить поиск потенциальных клиентов в группе Вк по чату во время трансляции на YouTube.
На Отслеживаемая трансляция на YouTube можно наблюдать 4 поля:
- Поле для ввода ссылки/id YouTube канала - канал, на котором будет "просматриваться" чат.
- Поле для ввода ссылки/id для группы Вконтакте - группа, в которой будет вестись поиск клиентов.
- Название YouTube канала
- Описание канала
Кнопка «отправить» добавляет канал в отслеживаемые. По окончанию трансляции, можно скачать текстовый файл с id потенциальных клиентов, по нажатию кнопки «Скачать txt файл со всеми vk id потенциальных клиентов».
- Отчёт Описание:
Для создания отчёта нужно выбрать дату, сделать сам отчёт (поле ввода растягивается на нужный для пользователя размер), затем указать Email и отправить.
Также присутствуют дополнительные настройки:
Отчет - дополнительные настройки
- Посмотреть все отзывы
Описание:
- Чекбокс на показ клиентов у которых нет отзывов
- Поле для ввода, для поиска клиентов
- Фильтрация по таблице
- редактирование отзывов
Описание: Круглая кнопка в правом верхнем углу, доступна из любой области в CRM. При нажатии на кнопку появляется выбор — Перейти в настройки, настроить профиль или выйти.
В настройках расположены следующие кнопки:
- Изменить профиль
Описание: Переход на страницу редактирования профиля текущего пользователя.
Чтобы редактировать свой профиль, нужно разрешить редактирование, нажав на кнопку «Редактировать». С вводимыми данными можно ознакомится на Настройки - Изменить профиль.
- Настройка оформления
Описание: При нажатии на кнопку «Настройка оформления» появляется окно с палитрой
Настройки - Настройка оформления
Выбираем цвет на палитре, нажимаем кнопку применить и цвет фона поменяется на выбранный.
- Авторизация вконтакте
Описание: Нажимаем кнопку получить токен, открывается окошко — копируем ссылку и вставляем в указанное поле.
Настройки - Авторизация вконтакте
- Настроить форму заявки ВК
Описание: При нажатии на кнопку открывается страница настройки, которая представляет из себя таблицу с названием поля в заявке ВК и её типом (обязательная — вся информация о клиенте или не обязательная — например заметки) Порядок строк в таблице, должен соответствовать порядку заполнения полей в заявке ВК, изменить номер строки в таблице можно путём перетаскивания мышкой. Строки можно добавлять, изменять и удалять.
Настройки - Настроить форму заявки в ВК
- Авторизация Google
Описание: Стандартная oauth авторизация в гугл. Нужна для отправки и сохранения договоров!
- Настроить автоответ
Описание: Предлагает настроить автоответ (сообщение, которое будет отправлено потенциальному клиенту), для этого нужно выбрать заранее подготовленный шаблон из списка. Чтобы отключить автоответ, нужно выбрать пункт "Не выбрано" и нажать "Применить".
Настройки - Настроить автоответ
- Настройки договора
Описание: Предлагает указать следущие установки для договора: Шаблон для рассылки(сообщение которое будет отправлено вместе с договором на email), Последний номер договора(вводится 1 раз, с каждым след. договором автоматичски увеличивается), Реквизиты
Настройки - Настройка договора
- Статусы по-умолчанию
Описание: Позволяет задать статусы новым клиентам. Смотри Настройки - Статусы по умолчанию ниже
Настройки - Статусы по-умолчанию
- Настройка оповещения
Описание: Настройки - Настройка оповещения
Настройки - Настройка оповещения
- Параметры по-умолчанию для студентов
Описание: Настройки - Параметры по-умолчанию для студентов
Настройки - Параметры по-умолчанию для студентов
- Авторизация в Telegram
Описание: Настройки - Авторизация в Telegram
Настройки - Авторизация в Telegram
Описание:
Оповещения
- По нажатию на уведомление о новом клиенте — оно пропадет с доски (красный колокольчик на карточке клиента).
- При нажатии на корзинку — удалятся все оповещения о клиентах.
Описание: смотри Доска, указатель 10. Предназначен для удобной навигации по CRM. Состоит из 6 ссылок и полей для поиска на доске (смотри Доска, указатель 8 и 10) Некоторые из них уже рассматривались в описании.
При переходе на страницу «все клиенты», выводится таблица всех клиентов с информацией о них. На странице находится поле ввода для поиска клиента. Так же присутствует фильтр:
При выставлении значений в фильтр, нажимается кнопка «Найти» и поиск клиента производится по заданному условию. При желании можно скачать данные о клиенте. Чтобы обновить список клиентов, нужно нажать enter.
На Все клиенты - фильтр можно наблюдать кнопку «Вернуть» в столбце «Скрыт?». Это означает, что клиент с данным статусом скрыт и не отображается на главное доске. Чтобы вернуть клиента на доску, нужно нажать на кнопку «Вернуть» и выбрать статус, в который вернется клиент.
У колонки "Статус" есть кнопка "шестеренка", при нажатии на которую можно задать различные цвета для клиентов с определенным статусом.
По нажатию кнопки «Добавить клиента», откроется страничка создания клиента:
Все клиенты - добавить клиента
Для добавления клиента вводим все данные и нажимаем кнопку Сохранить, у полей есть валидация, которая уменьшит % ошибок при вводе данных. После создания, на главной доске появится карточка клиента в выбранном статусе.
Функция "Массовый ввод" позволяет создавать несколько клиентов одним запросом, для этого данные клиентов вводятся в поля формы построчно. См. Все клиенты - массовый ввод ниже.
Таблица всех студентов содержит в себе информацию о студентах, которую можно редактировать (смотри скриншот выше).
Пример изменения студента с именем «Иван Федоров»:
Редактирование студента с именем "Иван Федоров""
Или удалить студента вообще, для этого нужно нажать на красный крестик. Над таблицей находится поле ввода для поиска студента. Так же есть возможность использовать фильтр, нажав на кнопку «Фильтр»:
Таблица всех студентов - "Фильтр"
В таблице статусов можно редактировать/удалять статусы (смотри скрин выше), а так же искать статус, для этого над таблицей находится поле ввода для поиска.
Над таблицей так же находится кнопка «Создать», которая позволяет создать новый статус.
Примеры создания и изменения статусов соответственно:
Статусы обучения - создание статуса
Статусы обучения - редактирование статуса
Назначение: Рассылка предназначена для отправки сообщений клиенту тремя способами:
- На электронную почту
- SMS - сообщение
- Сообщение Вконтакте.
На Рассылка указан вариант отправки на электронную почту, в поле сверху вводится текст сообщения, в поле снизу построчно вводятся адреса электронной почты получателей, каждый с новой строки.
Рассылка SMS: Аналогично отправке по электронной почте. В нижнее поле вводим номера телефонов получателей в формате "+71234567890".
Рассылка ВК: В нижнее поле вводятся id получателей по одному на строку, не более 20 в день. Также необходимо выбрать пользователя, от имени которого будет осуществляться рассылка.
Назначение: задать какой-либо шаблон рассылки для разных ситуаций (Оплата за обучение и т.д.). Шаблон можно редактировать, нажав на кнопку (1). Удалить шаблон можно нажав на кнопку (2). Пример редактирования шаблона:
Редактирование шаблона рассылки
В редакторе можно использовать различные опции форматирования, загрузить картинку и т. д.
Система автоматически обрабатывает поступающие заявки из привязанной группы ВКонтакте.
Для правильного взаимодействия с группой необходимо проделать следующие шаги:
- Настроить vk.properties
- Группа должна быть публичной, у группы должны быть активированы сообщения
- В группе необходимо установить приложение "Заявки" (https://vk.com/app5708398)
- В приложении необходимо настроить поля также, как они заданы в форме заявки ВК (Настройки для сообщений ВКонтакте - настройка полей ). См.пример ниже:
Настройки для сообщений ВКонтакте - настройка полей
- В настройках приложения необходимо активировать оповещение администратора о новых заявках. См.пример ниже:
Настройки для сообщений ВКонтакте - активация опопвещения администратора
- Из-под аккаунта администратора, которому будут пересылаться заявки, необходимо пройти авторизацию ВК в CRM. Выполняется из меню, см.Настройки - Авторизация вконтакте.
Система автоматически рассылает приглашения в друзья с промо-сообщением по списку id пользователей ВКонтакте.
Переход к функционалу осуществляется по ссылке "Продвижение" (см.Доска, пункт 10).
Для начала нужно создать новую компанию, нажав кнопку "Создать". Появится форма с полями для заполнения:
Продвижение - создание новой компании
- Название компании - используется только внутри системы, можно ввести любое.
- VK ID приложения - сюда необходимо ввести ID вашего приложения. Как его получить, написано ниже.
- Текст для запроса - сюда вводится промо сообщение, которое будет отправляться вместе с запросом в друзья.
- Допускать повторы от того же пользователя - установите галочку, если необходимо слать запросы повторно.
После нажатия "Создать", откроется следующая страница:
Продвижение - Создание компании с заданным именем
Здесь необходимо нажать кнопку "Получить токен". Заявки в друзья будут отправляться от того пользователя, под которым вы получите токен. Нажав на кнопку, необходимо дать разрешения для приложения и затем вкопировать URL из адресной строки в поле ниже.
После этого останется выбрать текстовый файл, который содержит в себе id пользователей ВКонтакте, которым будут рассылаться заявки в друзья. По одному id на строку.
После успешного создания кампании, необходимо её запустить (смотри Доска - Продвижение), для этого нужно нажать соответствующую кнопку в строке с кампанией (столбец "Действия"). Заявки в друзья рассылаются по расписанию, не более 20 заявок в день от одного пользователя (ограничение платформы vk).
Необходимо создать Standalone приложение, для этого нужно перейти по ссылке https://vk.com/editapp?act=create придумать любое название своему приложению и установить параметр "платформа" - "Standalone-приложение":
Создание Standalone приложения
Далее необходимо перейти во вкладку "Настройки" и выставить состояние "Приложение включено и доступно всем", затем нажать "Сохранить изменения":
Изменение состояния приложения (включение "Приложение включено и доступно всем")
На этой же странице находится поле "ID приложения", именно этот ID необходимо вставить в поле "VK ID приложения".
Мессенджинг через Telegram имеет функционал, аналогичный ВКонтакте - создание новых клиентов на основе поступающих сообщений, общение из карточки клиента.
Для подключения функционала Telegram необходимо скомпилировать и установить библотеку TDLib. На примере ОС Windows 10:
- Установить Microsoft Visual Studio 2015 или более новую
- Выбрать для установки компоненты (обязательно):
- Windows 8.1 SDK
- Инструменты Visual C++ для CMake
- Пакет SDK для Windows 10
- Английский языковой пакет
- Скачать и установить gperf (https://sourceforge.net/projects/gnuwin32/files/gperf/3.0.1/), добавить путь к gperf.exe к системной переменной PATH.
- Установить vcpkg (https://github.com/Microsoft/vcpkg#quick-start):
- git clone https://github.com/Microsoft/vcpkg.git
- cd vcpkg
- .\bootstrap-vcpkg.bat
- .\vcpkg integrate install
- .\vcpkg install sdl2 curl
- .\vcpkg.exe install openssl:x64-windows openssl:x86-windows zlib:x64-windows zlib:x86-windows
- Скачайте и установить CMake (https://cmake.org/download/), обязательно отметьте пункт "Add CMake to the system PATH" при установке, либо вручную добавьте путь к CMake к системной переменной PATH.
- Соберить TDLib:
- git clone https://github.com/tdlib/td.git
- cd <ПУТЬ_К_TDLib>
- mkdir jnibuild
- cd jnibuild
- cmake -DCMAKE_BUILD_TYPE=Release -DTD_ENABLE_JNI=ON -DCMAKE_INSTALL_PREFIX:PATH=../example/java/td .. –A x64 -DCMAKE_TOOLCHAIN_FILE=<ПУТЬ_К_РЕПОЗИТОРИЮ_VCPKG>/scripts/buildsystems/vcpkg.cmake
- cmake --build . --target install --config Release
- cd <ПУТЬ_К_TDLib>/example/java
- mkdir build
- cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DTd_DIR=<ПУТЬ_К_TDLib>/example/java/td/lib/cmake/Td -DCMAKE_INSTALL_PREFIX:PATH=.. ..
- cmake --build . --target install --config Release
- TDLib собран! Теперь необходимо путь <ПУТЬ_К_TDLib>/example/java/build/Release добавить к системной переменной PATH.
- Проверить TDLib:
- cd <ПУТЬ_К_TDLib>/example/java/bin
- java -Djava.library.path=. org/drinkless/tdlib/example/Example
- Если TDLib "ругается" на отсутствующие библиотеки, перейдите в <ПУТЬ_К_TDLib>/example/java/build/Release и скопируйте файлы "LIBEAY32.dll", "SSLEAY32.dll", "zlib1.dll" в папку C:\Windows.
- При необходимости, к параметрам запуска проекта добавьте настройки VM Options: "-Djava.library.path=<ПУТЬ_К_TDLib>\example\java\build\Release".
- Необходимо установить/обновить дополнительные зависимости (при их отсутствии):
- sudo apt-get update
- sudo apt-get upgrade
- sudo cp /etc/apt/sources.list /etc/apt/sources.list.BACKUP
- sudo add-apt-repository "deb http://security.debian.org/ wheezy/updates main"
- sudo add-apt-repository "deb-src http://security.debian.org/ wheezy/updates main"
- sudo add-apt-repository "deb http://ftp.us.debian.org/debian wheezy main non-free"
- sudo add-apt-repository "deb-src http://ftp.us.debian.org/debian wheezy main non-free"
- sudo add-apt-repository "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main"
- sudo apt-get update
- sudo apt-get install build-essential gcc-4.9 g++-4.9 openssl libssl-dev ccache gperf zlib1g zlib1g-dev cmake libreadline-dev git default-jre default-jdk software-properties-common oracle-java8-installer oracle-java8-set-default clang
- sudo cp /etc/apt/sources.list.BACKUP /etc/apt/sources.list
- sudo apt-get update
- Выбрать место установки TDLib и клонировать репозиторий TDLib в эту директорию, здесь для примера указан путь "/usr/lib":
- cd /usr/lib
- git clone https://github.com/tdlib/td.git
- cd td
- Собрать JNI:
- mkdir jnibuild
- cd jnibuild
- CXX=clang++ CC=clang cmake -DCMAKE_BUILD_TYPE=Release -DTD_ENABLE_JNI=ON -DCMAKE_INSTALL_PREFIX:PATH=../example/java/td ..
- CXX=clang++ CC=clang cmake --build . --target install
- Собрать TDLib:
- cd /usr/lib/td/example/java
- mkdir build
- cd build
- CXX=clang++ CC=clang cmake -DCMAKE_BUILD_TYPE=Release -DTd_DIR=/usr/lib/td/example/java/td/lib/cmake/Td -DCMAKE_INSTALL_PREFIX:PATH=.. ..
- CXX=clang++ CC=clang cmake --build . --target install
- Проект запускать со ссылкой на директорию с готовой библиотекой:
- java –Djava.library.path=/usr/lib/td/example/java/bin –jar CRM.jar
- Зарегистрируйте аккаунт Telegram
- Зайдите на https://my.telegram.org и авторизуйтесь
- Перейдите по ссылке "API development tools" и заполните поля, выберите любое название приложения, тип приложения Desktop, краткое описание.
- После успешного создания приложения, на следующие странице вы увидите данные приложения, нам необходимы "App api_id" и "App api_hash". Установите значения этих полей в конфигурационный файл telegram.properties в поля "telegram.apiId" и "telegram.apiHash".
- Запустите CRM
- После запуска CRM, зайдите под учетной записью администратора в настройки (Скриншот 24) и выберите пункт "Авторизация Telegram". Откроется диалоговое окно (Скриншот 54).
- Введите номер телефона, к которому привязан ваш аккаунт телеграм, в международном формате (+70000000000) и нажмите иконку телефона справа.
- Вам придет код (либо в Telegram, либо в SMS) для привязки приложения, введите этот код в поле и нажмите "Отправить".
- Готово! Авторизация в Telegram
класс ClientServiceTest Перед запуском теста не забудьте создать базу данных crmtest, на которой будет происходить тестирование, настройки хранятся в файле test\resources\application-test.properties,
если убрать (properties = "spring.profiles.active=test") в аннотации @SpringBootTest тестирование произодет на реальной базе проекта