Русские Блоги
Система управления взаимоотношениями с SSM + MySQL Разработка Java CRM клиента
Система управления взаимоотношениями с SSM + MySQL Разработка Java CRM клиента
Нажмите, чтобы скачать
Описание Проекта
Разные роли отличаются от разных страниц к различным функциям;
База данных только добавляет несколько пользователей других данных для импорта себя;
Импорт проекта может работать,
Рабочая среда
Технология Project (обязательно)
Файл базы данных
Ссылка: https://pan.baidu.com/s/1MXTORZ__QTBZ_S_ZLQCX3Q Пароль: TAHF
Файл пакета JAR
Сжатый пакет Web-инф / Lib
Скриншот Project (обязательно)
Запуск экрана (обязательно)
учетная запись администратора
Обычный счет клиента
Обычный счет добавляет информацию о клиентах
Меры предосторожности
1. Проект импортируется в базу данных.
Функция 2. Экспорт Excel не будет реализован
программное обеспечение CRM с открытым исходным кодом, написанное на Java [закрыто]
может ли кто-нибудь предложить мне лучшее и надежное программное обеспечение CRM, которое является открытым исходным кодом, написанным Java technologies.
прежде чем я опубликовал этот вопрос, я сделал поиск google и Stackoverflow, я получаю CRM на основе PHP, но я особенно ищу технологию Java. спасибо в dvance
3 ответов
Я получил следующие ссылки
CentraView-CentraView обеспечивает управление контактами на основе браузера, Salesforce Automation (SFA) и управление взаимоотношениями с клиентами (CRM). CentraView-это корпоративное приложение Java (J2EE), которое работает на Apache Tomcat, JBoss и использует базу данных MySQL по умолчанию.
openCRX-особенности включают в себя управление счетом, сложные юридические лица, ведет/возможности отслеживания, котировки / заказы на продажу, счета-фактуры, управление территорией, комплексные каталоги продукции, ценообразование/дисконтирование продукции и деятельность / управление задачами.
Cream-CRM, разработанный специально для удовлетворения потребностей медиа-организаций. Cream предназначен для удовлетворения уникальных потребностей издателей, включая функции, позволяющие Управление подписками, поддержку нескольких продуктов (подписки на печать, рекламу, онлайн-подписки, книги и т. д.), коммуникации с клиентами (как входящие, так и исходящие), а также простые в использовании функции отчетности и анализа.
Loopfuse-LoopFuse-это пакет автоматизации маркетинга и продаж, предоставляющий организациям возможность генерировать лиды со своего веб-сайта, оценки и маршрутов, возможности маркетинговой кампании, полную поддержку веб-аналитики. LoopFuse также предлагает возможность измерения ROI в рамках инициатив отдела маркетинга и продаж. Loopfuse построен на спящем режиме, кварце, JSF и JAAS. Он предоставляет плагины для SalesForce.com, SugarCRM и CentricCRM
Eberom-Eberom является CRM и решение для управления проектами построен с использованием Tomcat и MySQL. Он использует Hibernate, Spring, Struts, отчеты Jasper и POI HSSF
Adempiere-проект Adempiere был создан после разногласий между Compiere Inc., разработчики Compier, и сообщество, которое сформировалось вокруг этого проекта
OpenCRX хорошо выглядит и имеет мобильную поддержку, а также, вероятно, самый популярный CRM с открытым исходным кодом в Java.
Разработка своей CRM со стороны программиста.
Добрый день. Меня зовут Роман.
Занимаюсь разработкой проектов для бизнеса около 5 лет.
Хочу поделится тем, как выглядит разработка своих решений изнутри. Возможно это будет полезно тем, кто хочет организовать свой бизнес или имеет уже рабочий, но нет возможности вести учет заявок. Или для приобретения понятия как можно делать. Я не буду углубляться в особенности программирования, просто, на пальцах распишу как это работает.
Интерактивные элементы: Yandex карта и SEO. Так же на разных страницах меняется порядок блоков, на некоторых страницах есть уникальные блоки. Было дано ТЗ от SEO специалистов, по метатегам и ключевым словам.
Так вот, как это работает :
Пользователь заходит на сайт, решает подать заявку через основную, короткую форму, заявку на обратный звонок или пытается сохранить данные о кредите, рассчитанные в калькуляторе. Далее заявка попадает в CRM, где подключенная кредитная компания получает заявку и берет в работу лида.
1. Отредактировать информацию по заявке.
2. Оставить комментарий к заявке.
3. Изменить статус заявки.
4. Изменить статус отказа.
Какая информация о лиде отображается в CRM.
1. Имя.
2. Город.
3. Дата.
4. Авто.
5. Телефон.
6. Желаемая сумма.
7. Выданная сумма.
8. Источник.(форма или звонок).
9. Источник трафика(поисковик, рекламная компания и тд).
На странице отображения лидов сделаны фильтры для того, чтобы можно было упорядочить заявки по каждому из полей. Так же, есть поиск по полям и настройка количества отображаемых заявок на одной странице. Можно отображать заявки только с определенным статусом.
К CRM подключена телефония. При звонке на номер телефонии отправляет запрос с информацией о лиде на сайт, который складывается с список заявок.
Помимо CRM, есть ещё мини админка для добавления новых городов. Опять же, сделан простой интерфейс, заполняя поля в котором на выходе имеется новая страница города, генерируемая из шаблона дизайна.
Станицы генерируются из блоков. Изменяя блок в одном месте, все изменения применяться на всех страницах, где есть этот блок (страниц более 500).
В самом сайте минифицированы все скрипты и стили, ужата графика. Карта подгружается не сразу, а через некоторое время после загрузки страницы. В результате получилось сделать довольно шуструю загрузку.
На самом сайте есть калькулятор кредита, который считает суммы выплат и ежемесячный платеж по формуле аннуитетного платежа. Эту информацию можно представить в виде графика ежемесячных платежей.
Если будет интересно, то опишу другие свои проекты. Обязательно отвечу на вопросы.
Спасибо за внимание, хорошего дня!
А нас например своя телефония в виде хардварного решения и свои сервера без доступа в инет из инета, чем ваше решение лучше того же сахарка?
Занимательная арифметика для любых переговоров
Звонит мне знакомый программист на днях.
— Слушай, мы тут нашли крутого заказчика в Британии, можешь мне срочно прямо сегодня сделать для него договор на английском языке? Ну там с приложениями, все дела.
— Ну, кхм, если бросить всё и заняться прямо сейчас, то могу.
— Ок, сколько времени и денег нужно?
— Четыре часа и десять тысяч рублей.
— Блин, долго и дорого чего-то, а можешь сделать за пять тыщ, но за два часа?
В общем, работа так и не состоялась, зато у меня появился универсальный ход для любых переговоров.
Моя мини-CRM, часть 2
Прошёл год с публикации первого поста про CRM, которую я разрабатываю сам, для своего магазина запчастей и автосервиса.
С тех пор появилось много фишек, и я созрел на написание нового поста. Текст я поделил на 2 части: мои размышления о необходимости внедрения ПО, и собственно новые возможности CRM. Сразу хочу предупредить, что в ближайшее время я не намерен продавать свой софт, этот пост пишу скорее «по просьбам трудящихся», а также возможно он будет полезен тем, кто захочет сделать для себя (или для продажи) что-то подобное.
Часть 1: а зачем вообще CRM для розницы?
Почему-то принято считать, что для розницы не нужна CRM, причём так считают, видимо, и разработчики софта, и сами собственники розничного бизнеса. Я считаю, что это не так, и в этом посте расскажу, какая может быть польза от CRM.
Начнём с определения CRM: customer relationship management, то есть управление отношениями с клиентами. Именно под эту формулировку и подходит моя CRM. В первых страницы нашей «книги продаж» (что-то вроде учебника, устава, и руководства) я написал: самое главное, что есть у нашего магазина – это наши клиенты. И первый функционал CRM был создан именно для ведения учёта клиентов, ну об этом я писал в первом посте год назад. Всё остальное было создано именно на костяке клиентской базы.
Не сочтите за выпендрёж, просто статистика: я за 2016 год увеличил продажи на 30%, за 2017 год – на 48-52% (смотря как считать, с оптовыми продажами или без), и считаю что это в большей части заслуга CRM. На самом деле, до этого мы работали просто потому что вроде всё идёт нормально – вроде имелся рост процентов 10-15 к прошлому году, вроде клиенты довольны, вроде склад запчастей хороший, вроде мы молодцы. И становится обидно, когда я осознаю, сколько лет наш магазин потерял в этом состоянии вроде.
Недавно читал «Обнимите своих клиентов» Джека Митчелла – он пишет о своём магазине одежды в США. Вот что меня удивило: к мысли о необходимости внедрения современных (на то время) технологий он пришёл ещё в начале 70-го года. Тогда он обратился к IBM, и начал компьютеризировать свой магазин. И когда спустя почти 50 лет я вижу, как в магазине ведётся учёт в тетрадке или в Excel, я недоумеваю – как такие магазины вообще работают?
Ну и ещё небольшая отсылка к американским авторам: в первых же главах в «Клиентах на всю жизнь» Карл Сьюэлл пишет, что измеряет всё, что только можно измерить. Именно это я и считаю одной из важнейших способностей CRM. Вот что я знаю благодаря ПО:
— количество клиентов – общее, активное (активными считаются те, кто покупал запчасти или ремонтировался в течение года);
— количество добавленных новых клиентов – общее и в разрезе по менеджерам;
— источники новых клиентов;
— имена, номера телефонов, марки-модели их автомобилей;
— дату последнего визита клиента;
— дату покупки расходников: свечей, фильтров, ремня ГРМ;
— да вообще-то я знаю всю историю покупок и ремонтов каждого клиента;
— сумму покупок и ремонтов – общую, каждого клиента по отдельности, в разрезе марки-модели;
— среднюю частоту покупок – общую, каждого клиента по отдельности, в разрезе марки-модели;
— средний чек покупок/ремонта клиента – общий, за какой-то период, в разрезе менеджеров, марок-моделей авто;
— количество звонков: принятых, пропущенных, пропущенных и не обработанных после (по каждому пропущенному должны перезвонить);
— конверсию из звонка в покупку/заказ/ремонт – общую и в разрезе менеджеров;
— среднюю продолжительность звонка – общую и в разрезе отделов, менеджеров;
— процент выкупа заказов – с предоплатой и без (конечно, заказы с предоплатой забирают намного быстрее);
— среднюю продолжительность заказа;
— точность выполнения заказа (если обещали в пятницу – привезли ли в пятницу или опоздали) – общую и в разрезе менеджеров;
— сумму поступивших и ещё не выкупленных заказанных товаров – общую и в разрезе по менеджерам;
— эффективность рекламных кампаний (разослали рекламные СМС – через месяц смотрим, сколько клиентов совершило покупку, опять же: средний чек покупки, марки-модели клиентов, и тд);
— среднюю оценку от клиентов: общую, и в разрезе отделов, менеджеров;
— конверсию из осмотров ходовой в последующий ремонт ходовой.
Все эти показатели так или иначе важны, все они анализируются – что-то каждый день, что-то каждый месяц, что-то каждые полгода-год. Не стану описывать, зачем нужен каждый, просто приведу несколько примеров применения.
Будим «уснувших» клиентов СМС-ками вроде «Владимир Владимирович, мы заметили что Вы давно не навещали наш магазин. У нас есть для Вас подарок, заберите его до 18 марта. Кстати, на Вашей карте накоплено 500 млрд бонусных баллов». Плюс потом замеряем конверсию в покупку по таким СМС.
Видим, что у менеджера упал показатель по конверсии звонков в покупки – слушаем звонки, выявляем проблемы и работаем над устранением. И наоборот: анализируем успешные звонки, тоже делаем выводы.
Я знаю, какая модель автомобиля для меня самая прибыльная, а значит – каких клиентов мне нужно привлечь в первую очередь.
В более масштабном варианте: я знаю, какой процент клиентов магазина пользуются услугами автосервиса. А значит, я могу рассчитывать что благодаря рекламной кампании, если я получу обычных новых клиентов, определённый процент этих клиентов станет клиентами автосервиса. Могу рассчитать, сколько в среднем денег они оставят за год в магазине и сервисе, и таким образом запланировать прибыль от каждого потенциального покупателя.
Я решил что не буду объяснить, зачем нужно знать все эти цифры и как их можно применить. Если не придумаете им применение – должно быть, вам действительно это не нужно. По правде говоря, поначалу я тоже отслеживал некоторые показатели из интереса, «просто потому что могу», потом начал пытаться влиять на них, и иногда с удовольствием наблюдал, что действительно могу влиять на них.
Часть вторая: новая функциональность моей CRM
Ещё раз напомню, что продавать не намерен, обзор делаю чтобы почесать своё ЧСВ и возможно помочь кому-то, кто хочет сделать подобное. Честно, буду рад, если кому-то поможет.
В прошлом году почти сразу после написания первого поста я смог найти толкового «тыжпрограммиста» для 1С, вместе с которым мы смогли разработать связь между CRM и 1C. Да, кстати, если кто не в курсе: CRM – это веб-приложение, так что менеджеры работают и в 1С и в CRM. Многих это разочаровывает, но мои менеджеры ни разу не жаловались, да и мне кажется что всё достаточно удобно.
Теперь из 1С в CRM попадают данные о покупках клиентов, о поступлениях товаров, выгружаются остатки, ну и вдобавок мы сделали полуавтоматическую загрузку поступлений в 1С, на основе документов которые отправляют на почту.
Если раньше ребятам приходилось в CRM вручную писать список покупок, то теперь они указывают в 1С номер карты, и всё. У Джека Митчелла это заняло 15-20 лет (с момента внедрения технологий до полной записи истории покупок), у нас – 1.5 года.
Доработки системы заказов
Подружив CRM с 1C, получил немного автоматизации: теперь при проведении документа поступления CRM может сама разослать клиентам СМС о том, что их заказы пришли – раньше приходилось отмечать поступление заказов вручную.
Вдобавок недавно мы ввели внутренние бланки заказов, которые прикрепляем к товарам на полке заказов. CRM помогает и тут: когда приходят товары, она сама определяет что из этого заказное, и предлагает распечатать эти самые бланки.
Причём если поначалу бланки печатались поштучно, и иногда приходилось печатать сразу штук 15, то впоследствии печать стала автоматической, сразу всех заказов, с возможностью не печатать выбранные.
Система оценок от покупателей
Тоже внедрил прошлым летом, причём пришлось заморочиться. Смысл такой: на следующий день после покупки или ремонта клиент получает СМС с просьбой отправить в ответ оценку от 1 до 10. Проблема была в том, что отправить СМС – проще простого, а вот принят обратно и обработать – намного сложнее.
Решение реализовано не самое изящное, но работающее: на android-смартфон нашлось приложение, которое работает со своим сервером. CRM отправляет запрос на сервер, сервер отправляет запрос на смартфон: отправь СМС. Когда приходит ответное СМС от клиента, цепочка обратная: смартфон – своему серверу, сервер – в мою CRM.
Оценка от клиентов – это мой любимый показатель, который почти в реальном времени отображает качество нашей работы. Поначалу оценка была около 8.5, я звонил всем кто поставил ниже 8 и спрашивал, что не так. Обычно оценка была или 9-10, или 1-5. Жаловались в основном на срывы сроков заказов, невозможность дозвониться, и отсутствие товара на складе. Забегая вперёд, скажу что по всем 3 проблемам было найдено решение с помощью CRM.
Постепенно оценка подросла, сейчас в районе 9.7, иногда проседает где-то до 9, если кто-то остался недоволен и поставил нам «кол».
Перезваниваем всем, кто ставит ниже 9, правило такое: звонит не тот менеджер, которому поставили низкую оценку. Иногда ставят «пятёрку», имея в виду «пять из пяти», такие исправляем на «десятку». Также иногда пишут оценку текстом, или просто «всё классно».
Я ещё считаю индекс NPS по оригинальной формуле, но вопрос при этом я задаю неправильно (я просто прошу поставить оценку, а по NPS нужно сказать, какова вероятность что он посоветует нас друзьям). Я просто считаю, что если у клиента нет друзей с китайским автомобилем (а у нас, напомню, магазин для «китайцев»), то вероятность что он нас кому-то посоветует, стремится к нулю.
Система отслеживания заказов
Я отметил, что иногда на нас сердились из-за срыва сроков заказов: обещали через неделю – привезли через две. Корней у этой проблемы две: человеческий фактор – менеджер в запаре мог просто оформить заказ в CRM, но не заказать запчасть у поставщика, даже я пару раз так косячил. Вторая проблема – это отказ поставщика (кто не в курсе – иногда поставщик не может привезти запчасть, потому что её нет, или потому что она сломана, или что-то в этом роде), и мы могли не заметить этот отказ вовремя.
Решение было найдено с помощью API поставщиков. Теперь каждые 30 минут сервер запускает скрипт, который проверяет статус каждой позиции в каждом заказе. Если находит, что деталь не заказана или что стоит отказ – выводит уведомление для менеджеров, они уже реагируют на это как положено.
Выше писал, что CRM выводит уведомление о проблемах с заказом. Это часть системы уведомлений, которую я разработал сразу после отслеживания заказов – поначалу оно запускалось вручную, нужно было ждать несколько минут пока скрипт проверит все заказы, и выведет проблемные. Конечно, менеджеры забывали/забивали на это, да и в целом была нужда в оповещениях, так что я сделал простенькую систему.
Кроме уведомлений о заказах туда попадают записи о:
— новых записях на ремонт, оформленных через сайт;
— новых заказах запчастей, оформленных через сайт;
— низких или некорректных оценках от клиентов;
— необходимости выгрузить остатки из 1С после 5 часов вечера (так и не удалось нам сделать автоматическую выгрузку, приходится запускать обработку в 1С вручную);
— пропущенных звонках от клиентов (эти самые «горячие», обрабатываются в первую очередь).
Система слежения за остатками на складе
Ещё один мощный компонент, наверное самый сложный в разработке, и очень важный. Для магазина наличие запчастей – это чуть ли не самое главное, и когда клиенты не могли купить какую-то мелочь вроде патрубка системы охлаждения, я сильно расстраивался – стоит эта фигня рублей 100, а проблем много.
Сразу скажу, что на самом деле в 1С есть встроенные «точки заказов», которые для этого и созданы, но мне они не нравились из-за скупого функционала, так что я создал свою тему, с проценкой и шлюзами.
Для начала я создал список обязательного наличия, в него вошло 2 тысячи позиций. Каждую ночь CRM запускает проверку: по каждой из позиции из списка – есть ли на складе? Если есть, то достаточно ли их? Если недостаточно или нет вообще, идёт следующий цикл: а не заказано ли это уже? Если нет – последний пункт: скрипт ищет, где дешевле всего купить.
Утром я вижу список запчастей, с количеством, ценой и названием поставщика, где нужно сделать заказ.
Вот чего здесь не хватает: умного анализа для вычисления оптимального количества для заказа. То есть если втулки стабилизатора нужно ждать от поставщика 7 дней, и за эти 7 дней мы продаём в среднем 10 штук – то когда на складе остаётся 10 штук – нужно заказать ещё 10, чтобы новые пришли как раз когда кончатся старые. Но это может быть не очень точно (иногда мы продаём и 20 втулок в неделю), и мне лень это делать.
А вот что мне тоже лень делать, но я это точно сделаю, так это запись цен на эти товары. В моей сфере (запчасти для китайских автомобилей) бывает, что цена на «оригинальные» запчасти колеблется в несколько раз в течение месяца. Соответственно, если слепо доверять системе, то можно заказать прокладку стоимостью 1000 рублей, в то время как её реальная цена – 200 рублей. И наоборот, рычаг может подешеветь с 1500 рублей до 600.
Также в планах полуавтоматическое оформление заказов у поставщика – пока я этого не сделал, приходится вручную всё заказывать, а хотелось бы просто поставить галочки и оформить заказ прямо из CRM.
А вот что мне удалось связать, так это IP-телефонию и CRM. Я уже писал об этом в прошлый раз, но за это время я сделал несколько улучшений. Например, теперь в CRM везде где есть номер телефона, рядом расположена кнопка «позвонить». При нажатии CRM смотрит, какой менеджер инициировал звонок, и отправляет вызов на трубку этого менеджера. Когда он отвечает на вызов, начинается звонок клиенту. Так экономится немного времени на отсутствии необходимости набора номера телефона, да и исключаются ошибки при наборе номера.
Ещё из полезностей: при ответе на входящий звонок у того менеджера, который ответил на звонок, на экране появляется информация о звонящем клиенте, если она есть – это имя, марка-модель, последние покупки, запись на ремонт. Иногда бывает удобно, и клиентам приятно, когда его называют по имени, хотя он не представлялся.
Ну и как я уже писал, если не успеваем ответить на звонок, этот клиент тут же попадает в список «перезвонить».
Это любимая функция CRM у менеджеров, рассчитывает зарплату в реальном времени. Мы оплачиваем процент от продаж, плюс 4 KPI (ключевых показателя эффективности): общие продажи магазина, личные продажи менеджера, средний чек менеджера, общее количество проданных бонусных карт.
В рамках коммерческой тайны замазал ключевые данные.
Расписание для автосервиса
На досуге обновил модуль с расписанием, улучшил внешний вид и добавил функционал, теперь при нажатии на запись с автомобилем появляется всплывающее окошко с информацией об этом заказ-наряде. Скриншот делал в воскресенье, когда работало только 2 поста, поэтому и записи только на них.
Вот вроде и всё, о чем хотел рассказать. Надеюсь, эта информация кому-то поможет.
AllcountJS: Делаем простую CRM с веб-интерфейсом и REST API за 15 минут
Допустим моя компания кому-то звонит и что-то продаёт и мне нужна простая CRM, которая позволит вести справочник контактов и наглядно отслеживать их состояние в плане продажи.
Сейчас мы с вами сделаем такую систему с нуля за считанные минуты. Для этого мы будем использовать фрэймворк Allcountjs.
Самые нетерпеливые могут сразу же посмотреть на результат.
Что за AllcountJS?
Так как это первая статья на русском про AllcountJS, то скажу пару слов о самом фреймворке.
AllcountJS — это фреймворк c открытым исходным кодом для быстрой разработки веб и мобильных приложений на Node.js. AllcountJS построен на MEAN стеке (MongoDB, Express, AngularJS, NodeJS). Развивается поддержка не только MongoDB, но и других БД, в первую очередь SQL.
CRUD операции к сущностям, управление пользователями, настройки прав доступа, и REST API до всех функций приложения — всё это доступно сразу, без необходимости написания дополнительного кода.
Базовый веб-интерфейс приложения генерируется автоматически. Естественно его можно дорабатывать и изменять как угодно — только необходимы знания AngularJS и и языка шаблонов jade. Если возможностей фреймворка окажется недостаточно, возможно расширение функциональности через использование механизма внедрения зависимостей.
Установка и запуск
Начать работу с AllcountJS можно несколькими способами: в качестве самостоятельного приложения, как модуль другого NodeJS приложения или запустить приложение на AllcountJS.com.
Самый простой способ увидеть AllcountJS в деле — это просто запустить одно из демо-приложений в галерее.
Рассмотрим и вариант с отдельным приложением. Для этого должны быть установлены MongoDB, NodeJS и Git. (если у вас Ubuntu то вы можете посмотреть скринкаст по установке ). Для установки AllcountJS выполним:
Далее откройте app-config/main.js в директории с приложением и замените его содержимое следующим кодом:
Теперь давайте подробнее разберёмся с тем что же этот код делает.
Общие настройки приложения
Вся конфигурация приложения располагается внутри единственного метода. Название и иконка приложения задаются с помощью свойств appName и appIcon. AllcountJS использует иконки Font Awesome. Вы можете выбрать любую иконку и использовать её в приложении просто сославшись на неё по имени. При ссылке на иконку необходимо отбросить префикс fa-. Мы возьмем обычный телефонный значок для нашей «CusDev CRM».
За настройку аутентификации отвечает свойство onlyAuthenticated. Оно определяет возможность использования приложения незарегистрированными пользователями. Мы же не хотим что бы доступ до CRM был у всех, поэтому:
Далее в конфигурации идёт пункт menuItems, но мы к нему вернёмся после того как опишем сущности и их представления.
Контакты и статусы
Теперь мы готовы к тому что бы описать наши бизнес-сущности.
Опишем сущность Contact. Пусть у контакта будут два обязательных текстовых поля — Name и Company. Несколько текстовых полей с информацией о способах связи, дата последнего контакта и текущий статус контакта.
Поле status — это ссылка на сущность статус в которых может находиться контакт (например “Написали”, “Ответил”, “Готов на встречу”).
Отображение на доске
Каждая сущность может иметь представления (вью). Они задаются в свойстве view. Представления в AllcountJS похожи на представления в SQL. Они не занимают дополнительного места в БД, но вы можете работать с ними как с обычными сущностями. Представления можно использовать для того что бы обеспечить специальное поведение, интерфейс и права доступа.
В нашем случае мы будем использовать представления для того что бы сделать специальный UI в виде интерактивной доски для отображения контактов. Зададим для контакта представление FlowBoard а внутри него, в свойстве customView, UI шаблон board.
Теперь мы дошли и до меню нашего приложения. Оно задаётся в свойстве menuItems и состоит из ссылок на сущности и представления.
REST API
Если у нас есть какое-нибудь другое приложение, которое нужно интегрировать с нашей CRM, то это не будет проблемой, т.к. все функции приложения доступны через REST API.
Для начала нужно получить токен для доступа. Допустим наша CRM располагается на https://localhost:9080, в таком случае необходимо отправить HTTP POST запрос на
https://localhost:9080/api/sign-in
С таким JSON содержимым в теле:
В ответ вернётся примерно такой ответ:
Теперь можно, например, получить список всех контактов. Для этого отправим HTTP GET запрос, но уже с заголовком
X-Access-Token в который передадим полученный токен из предыдущего запроса.
На https://localhost:9080/api/entity/FlowBoard
или напрямую на https://localhost:9080/api/entity/Contact
В ответ вы получите список всех контактов в формате JSON. Естественно что вы можете также удалять, создавать и обновлять ваши контакты через API.
AllcountJS может больше
В статье, на примере простой CRM показана лишь малая часть возможностей AllcountJS. В демо-приложении кроме выше рассмотренного есть ещё и русская локализация, которую можно отключить вписав forcelocale: «en» в раздел с общими настройками. А завершает конфигурацию скрипт по добавлению тестовых данных.